1
0
Fork 0
alistair23-linux/drivers/uwb
Thomas Pugliese 1fc671b3be uwb: move mutex_lock to error case in uwbd_evt_handle_rc_bp_slot_change
Only acquire rc->uwb_dev.mutex in the error case in
uwbd_evt_handle_rc_bp_slot_change.  This fixes a bug where establishing
a reservation on a new channel will fail if we were unable to establish
a reservation on the previous channel due to DRP conflict.

If rc->uwb_dev.mutex is acquired in the non-error case when the uwb
system is attempting to start beaconing, it will block because the start
beaconing code is holding this mutex.  This prevents any other
notifications from the URC from being processed.  In particular, the
DRP_AVAILABILITY notification will not be processed during the start
beaconing process which can result in a failure to establish a
reservation.  It is safe to not hold the mutex in the non-error
case since the only other place rc->uwb_dev.beacon_slot is accessed is
in the same worker thread that uwbd_evt_handle_rc_bp_slot_change
executes in.

Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-20 12:19:44 -08:00
..
i1480 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
Kconfig drivers/uwb: remove depends on CONFIG_EXPERIMENTAL 2012-11-15 17:39:03 -08:00
Makefile uwb: Remove the WLP subsystem and drivers 2010-10-25 14:03:45 +01:00
address.c uwb: use '%pM' format to print MAC address 2010-10-22 10:21:40 -07:00
allocator.c uwb: use for_each_clear_bit() 2012-03-23 16:58:34 -07:00
beacon.c uwb: move mutex_lock to error case in uwbd_evt_handle_rc_bp_slot_change 2013-12-20 12:19:44 -08:00
driver.c Fix common misspellings 2011-03-31 11:26:23 -03:00
drp-avail.c uwb: improved MAS allocator and reservation conflict handling 2008-12-12 13:00:06 +00:00
drp-ie.c uwb: Staticize local symbols 2013-08-19 17:08:16 -07:00
drp.c usb: uwb: use correct locking calls for rc data 2013-05-21 11:48:03 -07:00
est.c uwb: use %*ph specifier to dump buffer 2013-06-03 14:33:26 -07:00
hwa-rc.c HWA RC: fix a kernel panic when unplugging the HWA dongle 2013-08-12 15:41:08 -07:00
ie-rcv.c uwb: infrastructure for handling Relinquish Request IEs 2008-11-04 15:53:29 +00:00
ie.c uwb: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:19 -04:00
lc-dev.c UWB: clean up attribute use by using ATTRIBUTE_GROUPS() 2013-10-29 16:43:36 -07:00
lc-rc.c driver-core: constify data for class_find_device() 2013-02-06 12:18:56 -08:00
neh.c uwb: fix use of del_timer_sync() in interrupt 2012-04-18 13:15:51 -07:00
pal.c UWB: fix sysfs warning on HWA device unplug. 2013-08-12 15:41:09 -07:00
radio.c uwb: whitespace and comment cleanups 2013-12-20 12:19:13 -08:00
reset.c uwb: fix uwb_dev_unlock() missed at an error path in uwb_rc_cmd_async() 2012-11-26 15:58:43 -08:00
rsv.c uwb: use uwb_rsv_callback instead of calling rsv->callback directly 2013-12-20 12:19:13 -08:00
scan.c drivers/uwb: fix implicit use of stat.h 2011-10-31 19:32:18 -04:00
umc-bus.c uwb: Use dev_is_pci() to check whether it is pci device 2013-12-08 18:01:56 -08:00
umc-dev.c uwb: umc-dev: add missing put_device call 2013-12-19 10:26:46 -08:00
umc-drv.c uwb: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:19 -04:00
uwb-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
uwb-internal.h USB: HWA: fix device probe failure 2013-06-24 16:20:43 -07:00
uwbd.c uwb: Fix misspelling of neighbourhood in comment 2011-07-21 14:03:41 +02:00
whc-rc.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
whci.c uwb/whci: Use module_pci_driver to register driver 2013-05-21 11:48:03 -07:00