[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070420.162756.78644819.davem@davemloft.net>
Date: Fri, 20 Apr 2007 16:27:56 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: mostrows@...thlink.net
Cc: florz@...rz.de, netdev@...r.kernel.org
Subject: Re: [PATCH 4/4] PPPoE: race between interface going down and
release()
From: Michal Ostrowski <mostrows@...thlink.net>
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists