|
@@ -485,6 +485,7 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
|
485
|
485
|
struct ipoib_mac ll_src;
|
486
|
486
|
struct ipoib_peer *src;
|
487
|
487
|
|
|
488
|
+ /* Record errors */
|
488
|
489
|
if ( rc != 0 ) {
|
489
|
490
|
netdev_rx_err ( netdev, iobuf, rc );
|
490
|
491
|
return;
|
|
@@ -499,6 +500,12 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
|
499
|
500
|
return;
|
500
|
501
|
}
|
501
|
502
|
ipoib_hdr = iobuf->data;
|
|
503
|
+ if ( ! av ) {
|
|
504
|
+ DBGC ( ipoib, "IPoIB %p received packet without address "
|
|
505
|
+ "vector\n", ipoib );
|
|
506
|
+ netdev_rx_err ( netdev, iobuf, -ENOTTY );
|
|
507
|
+ return;
|
|
508
|
+ }
|
502
|
509
|
|
503
|
510
|
/* Parse source address */
|
504
|
511
|
if ( av->gid_present ) {
|