diff --git a/kernel.spec b/kernel.spec index c3ede6896..2a506a580 100644 --- a/kernel.spec +++ b/kernel.spec @@ -649,6 +649,9 @@ Patch504: sunrpc-remove-incorrect-HMAC-request-initialization.patch # rhbz 1549316 Patch505: ipmi-fixes.patch +# rhbz 1566510 +Patch506: net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch + # END OF PATCH DEFINITIONS %endif @@ -1898,6 +1901,9 @@ fi # # %changelog +* Mon Apr 16 2018 Laura Abbott +- Fix for hang on removal of macsec module (rhbz 1566410) + * Thu Apr 12 2018 Peter Robinson - Disable tps65217-charger on BeagleBone to fix USB-OTG port rhbz 1487399 diff --git a/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch b/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch new file mode 100644 index 000000000..f3af83782 --- /dev/null +++ b/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch @@ -0,0 +1,57 @@ +From patchwork Mon Apr 16 10:17:50 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [net] Revert "macsec: missing dev_put() on error in macsec_newlink()" +X-Patchwork-Submitter: Dan Carpenter +X-Patchwork-Id: 898556 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <20180416101750.GA19613@mwanda> +To: Laura Abbott , Sabrina Dubroca +Cc: "David S. Miller" , + Linux Kernel Mailing List , + netdev@vger.kernel.org +Date: Mon, 16 Apr 2018 13:17:50 +0300 +From: Dan Carpenter +List-Id: + +This patch is just wrong, sorry. I was trying to fix a static checker +warning and misread the code. The reference taken in macsec_newlink() +is released in macsec_free_netdev() when the netdevice is destroyed. + +This reverts commit 5dcd8400884cc4a043a6d4617e042489e5d566a9. + +Reported-by: Laura Abbott +Fixes: 5dcd8400884c ("macsec: missing dev_put() on error in macsec_newlink()") +Signed-off-by: Dan Carpenter +Acked-by: Sabrina Dubroca +--- +I sent this earlier but I messed up the CC list. I've updated the +commit message as well. + + drivers/net/macsec.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c +index 9cbb0c8a896a..7de88b33d5b9 100644 +--- a/drivers/net/macsec.c ++++ b/drivers/net/macsec.c +@@ -3277,7 +3277,7 @@ static int macsec_newlink(struct net *net, struct net_device *dev, + + err = netdev_upper_dev_link(real_dev, dev, extack); + if (err < 0) +- goto put_dev; ++ goto unregister; + + /* need to be already registered so that ->init has run and + * the MAC addr is set +@@ -3316,8 +3316,7 @@ static int macsec_newlink(struct net *net, struct net_device *dev, + macsec_del_dev(macsec); + unlink: + netdev_upper_dev_unlink(real_dev, dev); +-put_dev: +- dev_put(real_dev); ++unregister: + unregister_netdevice(dev); + return err; + }