connector: fix skb double free in cn_rx_skb()

When a skb is delivered to a registered callback, cn_call_callback()
incorrectly returns -ENODEV after freeing the skb, causing cn_rx_skb()
to free the skb a second time.

Reported-by: Eric B Munson <emunson@mgebm.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Tested-by: Eric B Munson <emunson@mgebm.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Patrick McHardy and committed by David S. Miller 0e087858 192910a6

+1
+1
drivers/connector/connector.c
··· 142 142 cbq->callback(msg, nsp); 143 143 kfree_skb(skb); 144 144 cn_queue_release_callback(cbq); 145 + err = 0; 145 146 } 146 147 147 148 return err;