summary refs log tree commit diff
path: root/fs/locks.c
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-07 12:34:13 +0900
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-19 15:56:18 +0900
commitb9ee95010bee6c0e17d18bc9d9c0cfab6e8cb73a (patch)
treed1fd6706e054bb337d3ac79e96e32d2ec5145047 /fs/locks.c
parent5eeae35b9a2e304fc4ae3d9eed63afeea23b482c (diff)
downloadlinux-b9ee95010bee6c0e17d18bc9d9c0cfab6e8cb73a.tar.gz
wimax/i2400m: fix deadlock: don't do BUS reset under i2400m->init_mutex
Since the addition of the pre/post reset handlers, it became clear
that we cannot do a I2400M-RT-BUS type reset while holding the
init_mutex, as in the case of USB, it will deadlock when trying to
call i2400m_pre_reset().

Thus, the following changes:

 - clarify the fact that calling bus_reset() w/ I2400M_RT_BUS while
   holding init_mutex is a no-no.

 - i2400m_dev_reset_handle() will do a BUS reset to recover a gone
   device after unlocking init_mutex.

 - in the USB reset implementation, when cold and warm reset fails,
   fallback to QUEUING a usb reset, not executing a USB reset, so it
   happens from another context and does not deadlock.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'fs/locks.c')
0 files changed, 0 insertions, 0 deletions