diff --git a/linux/drivers/isdn/capi/core.c b/linux/drivers/isdn/capi/core.c index 9199849..072002c 100644 --- a/linux/drivers/isdn/capi/core.c +++ b/linux/drivers/isdn/capi/core.c @@ -28,8 +28,8 @@ #include -struct capi_device* capi_devices_table[CAPI_MAX_DEVS]; -spinlock_t capi_devices_table_lock; +static struct capi_device* capi_devices_table[CAPI_MAX_DEVS]; +static spinlock_t capi_devices_table_lock; atomic_t nr_capi_devices = ATOMIC_INIT(0); @@ -102,8 +102,11 @@ free_capi_device(struct class_device* cd) { struct capi_device* dev = to_capi_device(cd); - if (likely(dev->id)) + if (likely(dev->id)) { + spin_lock(&capi_devices_table_lock); capi_devices_table[dev->id - 1] = NULL; + spin_unlock(&capi_devices_table_lock); + } kfree(dev); }