Search Linux Wireless

Re: deadlock on sdata->u.mgd.mtx between worker thread an 'ip'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2010-10-04 at 22:27 -0700, Ben Greear wrote:

> I think the deadlock might be between kworker and ip, on the
> sdata->u.mgd.mtx v/s iflist_mtx lock.  It seems both processes
> have ifmgd->mtx held, and worker is trying to grab it again but
> blocks.
> 
> I think maybe the ip process has locked a different sdata than
> 'forsdata', so that is why this nested lock attempt by the worker thread
> to all of the !forsdata objects blocks?
> 
> void ieee80211_recalc_smps(struct ieee80211_local *local,
> 			   struct ieee80211_sub_if_data *forsdata)
> ...
> 		if (sdata != forsdata) {
> 			/*
> 			 * This nested is ok -- we are holding the iflist_mtx
> 			 * so can't get here twice or so. But it's required
> 			 * since normally we acquire it first and then the
> 			 * iflist_mtx.
> 			 */
> 			mutex_lock_nested(&sdata->u.mgd.mtx, SINGLE_DEPTH_NESTING);
> 			count += check_mgd_smps(&sdata->u.mgd, &smps_mode);
> 			mutex_unlock(&sdata->u.mgd.mtx);
> 		} else

I just debugged the same based on your other mail ...

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux