Message ID | 1468247120-30504-1-git-send-email-tim.gardner@canonical.com |
---|---|
State | New |
Headers | show |
Clean-cherry pick, good enough for stable. Fixes a specific issue. --chris On Mon, Jul 11, 2016 at 08:25:20AM -0600, Tim Gardner wrote: > From: Ursula Braun <ubraun@linux.vnet.ibm.com> > > BugLink: http://bugs.launchpad.net/bugs/1601831 > > A qeth_card contains a napi_struct linked to the net_device during > device probing. This struct must be deleted when removing the qeth > device, otherwise Panic on oops can occur when qeth devices are > repeatedly removed and added. > > Fixes: a1c3ed4c9ca ("qeth: NAPI support for l2 and l3 discipline") > Cc: stable@vger.kernel.org # v2.6.37+ > Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> > Tested-by: Alexander Klein <ALKL@de.ibm.com> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 7831b4ff0d926e0deeaabef9db8800ed069a2757) > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > drivers/s390/net/qeth_l2_main.c | 1 + > drivers/s390/net/qeth_l3_main.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c > index 8cd15fe..4a278d4 100644 > --- a/drivers/s390/net/qeth_l2_main.c > +++ b/drivers/s390/net/qeth_l2_main.c > @@ -898,6 +898,7 @@ static void qeth_l2_remove_device(struct ccwgroup_device *cgdev) > qeth_l2_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index c882aab..02fb895 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -3334,6 +3334,7 @@ static void qeth_l3_remove_device(struct ccwgroup_device *cgdev) > qeth_l3_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > -- > 1.9.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
On Mon, Jul 11, 2016 at 08:25:20AM -0600, Tim Gardner wrote: > From: Ursula Braun <ubraun@linux.vnet.ibm.com> > > BugLink: http://bugs.launchpad.net/bugs/1601831 Ack for [P,T,V,X] but not LTS-Utopic, which is now EOL. Also noting that this will only be verifiable on X since we don't ship s390x kernels for the older versions. -Kamal > > A qeth_card contains a napi_struct linked to the net_device during > device probing. This struct must be deleted when removing the qeth > device, otherwise Panic on oops can occur when qeth devices are > repeatedly removed and added. > > Fixes: a1c3ed4c9ca ("qeth: NAPI support for l2 and l3 discipline") > Cc: stable@vger.kernel.org # v2.6.37+ > Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> > Tested-by: Alexander Klein <ALKL@de.ibm.com> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 7831b4ff0d926e0deeaabef9db8800ed069a2757) > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > drivers/s390/net/qeth_l2_main.c | 1 + > drivers/s390/net/qeth_l3_main.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c > index 8cd15fe..4a278d4 100644 > --- a/drivers/s390/net/qeth_l2_main.c > +++ b/drivers/s390/net/qeth_l2_main.c > @@ -898,6 +898,7 @@ static void qeth_l2_remove_device(struct ccwgroup_device *cgdev) > qeth_l2_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index c882aab..02fb895 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -3334,6 +3334,7 @@ static void qeth_l3_remove_device(struct ccwgroup_device *cgdev) > qeth_l3_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > -- > 1.9.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
Applied to [P,T,V,X]. -Kamal On Mon, Jul 11, 2016 at 08:25:20AM -0600, Tim Gardner wrote: > From: Ursula Braun <ubraun@linux.vnet.ibm.com> > > BugLink: http://bugs.launchpad.net/bugs/1601831 > > A qeth_card contains a napi_struct linked to the net_device during > device probing. This struct must be deleted when removing the qeth > device, otherwise Panic on oops can occur when qeth devices are > repeatedly removed and added. > > Fixes: a1c3ed4c9ca ("qeth: NAPI support for l2 and l3 discipline") > Cc: stable@vger.kernel.org # v2.6.37+ > Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> > Tested-by: Alexander Klein <ALKL@de.ibm.com> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 7831b4ff0d926e0deeaabef9db8800ed069a2757) > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > drivers/s390/net/qeth_l2_main.c | 1 + > drivers/s390/net/qeth_l3_main.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c > index 8cd15fe..4a278d4 100644 > --- a/drivers/s390/net/qeth_l2_main.c > +++ b/drivers/s390/net/qeth_l2_main.c > @@ -898,6 +898,7 @@ static void qeth_l2_remove_device(struct ccwgroup_device *cgdev) > qeth_l2_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index c882aab..02fb895 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -3334,6 +3334,7 @@ static void qeth_l3_remove_device(struct ccwgroup_device *cgdev) > qeth_l3_set_offline(cgdev); > > if (card->dev) { > + netif_napi_del(&card->napi); > unregister_netdev(card->dev); > card->dev = NULL; > } > -- > 1.9.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 8cd15fe..4a278d4 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -898,6 +898,7 @@ static void qeth_l2_remove_device(struct ccwgroup_device *cgdev) qeth_l2_set_offline(cgdev); if (card->dev) { + netif_napi_del(&card->napi); unregister_netdev(card->dev); card->dev = NULL; } diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index c882aab..02fb895 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -3334,6 +3334,7 @@ static void qeth_l3_remove_device(struct ccwgroup_device *cgdev) qeth_l3_set_offline(cgdev); if (card->dev) { + netif_napi_del(&card->napi); unregister_netdev(card->dev); card->dev = NULL; }