In the case when the loop breaks at line 390, the txq lock is not
released. Added an unlock statement before the break statement.

Signed-off-by: Salil Kapur <salilkapu...@gmail.com>
---
 net/core/netpoll.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index fc75c9e..9124f76 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -386,8 +386,10 @@ void netpoll_send_skb_on_dev(struct netpoll *np, struct 
sk_buff *skb,
                                            
!vlan_hw_offload_capable(netif_skb_features(skb),
                                                                     
skb->vlan_proto)) {
                                                skb = __vlan_put_tag(skb, 
skb->vlan_proto, vlan_tx_tag_get(skb));
-                                               if (unlikely(!skb))
+                                               if (unlikely(!skb)) {
+                                                       __netif_tx_unlock(txq);
                                                        break;
+                                               }
                                                skb->vlan_tci = 0;
                                        }
 
-- 
1.9.1

Reply via email to