|
|
Re: [PATCH net] net/neigh: move neigh cleanup routine to neigh_destroy |
From: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> Date: Mon, 23 Apr 2012 18:34:42 +0300 > From: Shlomo Pongratz <shlomop@xxxxxxxxxxxx> > > Move call the neigh_cleanup call to be done from neigh_destroy, this > ensures the cleanup callback is invoked only when the neighbour reference > count becomes zero (e.g in the same manner as ndo_neigh_destory). > > Note that with this change neigh_destroy will truly revert the action of > neigh_create, as neigh_release which calls neigh_destroy is called directly > from various code paths, and thus neigh->parms->neigh_cleanup is not called > for these code paths. > > Also, with commit 7d26bb103 "bonding: emit event when bonding changes MAC" that > triggers netdev address change event, a race was introduced since neigh cleanup > can be called when there's reference on the neighbour. > > Signed-off-by: Shlomo Pongratz <shlomop@xxxxxxxxxxxx> > Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> With IPOIB, the neigh_cleanup purges references to the neigh when it liberates the SKBs in the neigh resolution TX backlog during ipoib_neigh_free(). Therefore, with your change, IPOIB neighs will never be destroyed if they have any SKBs in their neigh resolution queues. I'm not applying this, it's buggy. -- 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]
![]() |
![]() |