From bcbd6e6cfe3b259d05a4d27ef53551f24118feb5 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Mon, 20 Jan 2014 20:48:10 -0600 Subject: [PATCH] intel_extreme: Fix crash of driver on multiple open * open_count only got raised on initial open, subsequent opens didn't increment the counter thus when they exited the driver unloaded causing app_server to crash * Thanks to hamishm for pointing out that the if checks the pre-increment number * Resolves #10452 --- src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp index 5aa448c08e..0b981f1d14 100644 --- a/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp +++ b/src/add-ons/kernel/drivers/graphics/intel_extreme/device.cpp @@ -124,7 +124,7 @@ device_open(const char* name, uint32 /*flags*/, void** _cookie) mutex_lock(&gLock); - if (info->open_count == 0) { + if (info->open_count++ == 0) { // this device has been opened for the first time, so // we allocate needed resources and initialize the structure info->init_status = intel_extreme_init(*info); @@ -133,8 +133,6 @@ device_open(const char* name, uint32 /*flags*/, void** _cookie) add_debugger_command("ie_reg", getset_register, "dumps or sets the specified intel_extreme register"); #endif - - info->open_count++; } }