IPoIB: Make sure struct ipoib_neigh.queue is always initialized

Move the initialization of ipoib_neigh's skb_queue into
ipoib_neigh_alloc(), since commit 2745b5b7 ("IPoIB: Fix skb leak when
freeing neighbour") will make iterate over the skb_queue to free any
packets left over when freeing the ipoib_neigh structure.

This fixes a crash when freeing ipoib_neigh structures allocated in
ipoib_mcast_send(), which otherwise don't have their skb_queue
initialized.

Signed-off-by: Roland Dreier <rolandd@cisco.com>

+1 -2
+1 -2
drivers/infiniband/ulp/ipoib/ipoib_main.c
··· 497 497 return; 498 498 } 499 499 500 - skb_queue_head_init(&neigh->queue); 501 - 502 500 /* 503 501 * We can only be called from ipoib_start_xmit, so we're 504 502 * inside tx_lock -- no need to save/restore flags. ··· 804 806 805 807 neigh->neighbour = neighbour; 806 808 *to_ipoib_neigh(neighbour) = neigh; 809 + skb_queue_head_init(&neigh->queue); 807 810 808 811 return neigh; 809 812 }