diff options
Diffstat (limited to 'drivers/firewire/core-device.c')
-rw-r--r-- | drivers/firewire/core-device.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c index 9f661e06931..812cea37a5b 100644 --- a/drivers/firewire/core-device.c +++ b/drivers/firewire/core-device.c | |||
@@ -995,6 +995,10 @@ static void fw_device_init(struct work_struct *work) | |||
995 | ret = idr_pre_get(&fw_device_idr, GFP_KERNEL) ? | 995 | ret = idr_pre_get(&fw_device_idr, GFP_KERNEL) ? |
996 | idr_get_new(&fw_device_idr, device, &minor) : | 996 | idr_get_new(&fw_device_idr, device, &minor) : |
997 | -ENOMEM; | 997 | -ENOMEM; |
998 | if (minor >= 1 << MINORBITS) { | ||
999 | idr_remove(&fw_device_idr, minor); | ||
1000 | minor = -ENOSPC; | ||
1001 | } | ||
998 | up_write(&fw_device_rwsem); | 1002 | up_write(&fw_device_rwsem); |
999 | 1003 | ||
1000 | if (ret < 0) | 1004 | if (ret < 0) |