staging: ion: add dma_map_sg/dma_umap_sg to map_dma_buf
[firefly-linux-kernel-4.4.55.git] / net / x25 / x25_out.c
index d00649fb251d3df8bddafad81508e96d74821eb1..0144271d2184fddbc8fb4f2a0262387fc125f767 100644 (file)
@@ -68,8 +68,11 @@ int x25_output(struct sock *sk, struct sk_buff *skb)
                frontlen = skb_headroom(skb);
 
                while (skb->len > 0) {
-                       if ((skbn = sock_alloc_send_skb(sk, frontlen + max_len,
-                                                       noblock, &err)) == NULL){
+                       release_sock(sk);
+                       skbn = sock_alloc_send_skb(sk, frontlen + max_len,
+                                                  noblock, &err);
+                       lock_sock(sk);
+                       if (!skbn) {
                                if (err == -EWOULDBLOCK && noblock){
                                        kfree_skb(skb);
                                        return sent;