/* Attach the packet to the socket's receive queue as an sk_buff. */
        skb = alloc_skb(size, GFP_ATOMIC);
-       if (skb) {
-               /* sk_receive_skb() will do a sock_put(), so hold here. */
-               sock_hold(sk);
-               skb_put(skb, size);
-               memcpy(skb->data, dg, size);
-               sk_receive_skb(sk, skb, 0);
-       }
+       if (!skb)
+               return VMCI_ERROR_NO_MEM;
+
+       /* sk_receive_skb() will do a sock_put(), so hold here. */
+       sock_hold(sk);
+       skb_put(skb, size);
+       memcpy(skb->data, dg, size);
+       sk_receive_skb(sk, skb, 0);
 
        return VMCI_SUCCESS;
 }