From: Michal Ostrowski <[EMAIL PROTECTED]> Date: Sun, 11 Mar 2007 21:36:56 -0500
> Attached below is my take on how to address this problem. > This addresses any concerns you may have had about checking > po->pppoe_dev==NULL, > because accesses to this field are now synchronized with pppoe_hash_lock. > > Once we can settle on a fix for this, I'll deal with the SID==0 issue > (trying to do that now would just cause patch conflicts). This patch doesn't apply becuase in the actual pppoe.c code: > - read_lock_bh(&pppoe_hash_lock); > + write_lock_bh(&pppoe_hash_lock); > for (hash = 0; hash < PPPOE_HASH_SIZE; hash++) { > struct pppox_sock *po = item_hash_table[hash]; > > while (po != NULL) { > - if (po->pppoe_dev == dev) { > - struct sock *sk = sk_pppox(po); > - > - sock_hold(sk); > - > - /* We hold a reference to SK, now drop the > - * hash table lock so that we may attempt > - * to lock the socket (which can sleep). > - */ That code doesn't look like that. At the end, instead there is: sock_hold(sk); po->pppoe_dev = NULL; and that goes back all the way to 2.6.12 and beyond before we moved over to GIT. So I'm having trouble figuring out what tree you generated that patch against :-) Perhaps there was an earlier patch I missed or something. But I won't second guess and leave it to you to let me know what I should actually apply. Thanks. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html