|
|
Re: [PATCH net-next 1/2] ieee802154: sparse warnings: make symbols static |
Hi Eric, just a several questions: >> > >> > static DEFINE_SPINLOCK(flist_lock); >> >> >> and of course commit 768f7c7c121e80f4 (6lowpan: add missing >> spin_lock_init() ) must be reverted. Do I need to create 2 separate patches: one for revert and second to initialize spinlock correctly, or I can combine these changes in one patch? > > You should validate this code with LOCKDEP Nothing was shown by LOCKDEP for 6lowpan. :-( I've selected the following options: -*- Spinlock and rw-lock debugging: basic checks -*- Mutex debugging: basic checks -*- Lock debugging: detect incorrect freeing of live locks [*] Lock usage statistics [*] Lock dependency engine debugging > > lowpan_dellink() does a spin_lock(&flist_lock); > while same lock can be taken by lowpan_fragment_timer_expired() from > timer irq, -> deadlock. What would be the best way to solve this context mismatch? Can I do something like following: 1. create some 6lowpan internal workqueue 2. replace lowpan_fragment_timer_expired() body by queue_work() with current list_deleting routine 3. when 6lowpan is going to be deleted - I'll flush the queue and remove all the timers and respective fragments Alex -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Kernel Discussion] [Ethernet Bridging] [Linux Wireless Networking] [Linux Bluetooth Networking] [Linux Networking Users] [VLAN] [Git] [IETF Annouce] [Linux Assembly] [Security] [Bugtraq] [Photo] [Singles Social Networking] [Yosemite Information] [MIPS Linux] [ARM Linux Kernel] [ARM Linux] [Linux Virtualization] [Linux Security] [Linux IDE] [Linux RAID] [Linux SCSI] [Free Dating]
![]() |
![]() |