| From foo@baz Thu Dec 14 11:45:40 CET 2017 |
| From: Julian Wiedmann <jwi@linux.vnet.ibm.com> |
| Date: Wed, 18 Oct 2017 17:40:17 +0200 |
| Subject: s390/qeth: fix early exit from error path |
| |
| From: Julian Wiedmann <jwi@linux.vnet.ibm.com> |
| |
| |
| [ Upstream commit 83cf79a2fec3cf499eb6cb9eb608656fc2a82776 ] |
| |
| When the allocation of the addr buffer fails, we need to free |
| our refcount on the inetdevice before returning. |
| |
| Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/s390/net/qeth_l3_main.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/s390/net/qeth_l3_main.c |
| +++ b/drivers/s390/net/qeth_l3_main.c |
| @@ -1553,7 +1553,7 @@ static void qeth_l3_free_vlan_addresses4 |
| |
| addr = qeth_l3_get_addr_buffer(QETH_PROT_IPV4); |
| if (!addr) |
| - return; |
| + goto out; |
| |
| spin_lock_bh(&card->ip_lock); |
| |
| @@ -1567,6 +1567,7 @@ static void qeth_l3_free_vlan_addresses4 |
| spin_unlock_bh(&card->ip_lock); |
| |
| kfree(addr); |
| +out: |
| in_dev_put(in_dev); |
| } |
| |
| @@ -1591,7 +1592,7 @@ static void qeth_l3_free_vlan_addresses6 |
| |
| addr = qeth_l3_get_addr_buffer(QETH_PROT_IPV6); |
| if (!addr) |
| - return; |
| + goto out; |
| |
| spin_lock_bh(&card->ip_lock); |
| |
| @@ -1606,6 +1607,7 @@ static void qeth_l3_free_vlan_addresses6 |
| spin_unlock_bh(&card->ip_lock); |
| |
| kfree(addr); |
| +out: |
| in6_dev_put(in6_dev); |
| #endif /* CONFIG_QETH_IPV6 */ |
| } |