lkml.org 
[lkml]   [2010]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[095/117] WAN: flush tx_queue in hdlc_ppp to prevent panic on rmmod hw_driver.
    2.6.33-stable review patch.  If anyone has any objections, please let us know.

    ------------------


    From: Krzysztof Halasa <khc@pm.waw.pl>

    [ Upstream commit 31f634a63de7068c6a5dcb0d7b09b24b61a5cf88 ]

    tx_queue is used as a temporary queue when not allowed to queue skb
    directly to the hw device driver (which may sleep). Most paths flush
    it before returning, but ppp_start() currently cannot. Make sure we
    don't leave skbs pointing to a non-existent device.

    Thanks to Michael Barkowski for reporting this problem.

    Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    drivers/net/wan/hdlc_ppp.c | 6 ++++++
    1 file changed, 6 insertions(+)

    --- a/drivers/net/wan/hdlc_ppp.c
    +++ b/drivers/net/wan/hdlc_ppp.c
    @@ -628,9 +628,15 @@ static void ppp_stop(struct net_device *
    ppp_cp_event(dev, PID_LCP, STOP, 0, 0, 0, NULL);
    }

    +static void ppp_close(struct net_device *dev)
    +{
    + ppp_tx_flush();
    +}
    +
    static struct hdlc_proto proto = {
    .start = ppp_start,
    .stop = ppp_stop,
    + .close = ppp_close,
    .type_trans = ppp_type_trans,
    .ioctl = ppp_ioctl,
    .netif_rx = ppp_rx,



    \
     
     \ /
      Last update: 2010-05-12 10:09    [W:0.021 / U:0.192 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site