summaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorMichael Brown2010-09-19 18:35:53 +0200
committerMichael Brown2010-09-21 03:12:06 +0200
commit26a50c3a11f7858753c643dce7076f2e7349465d (patch)
tree80afb2c000f1d8b381f681a4d96d9fb12ffd85f7 /src/drivers
parent[infiniband] Avoid leaving uninitialised lists in struct ib_device (diff)
downloadipxe-26a50c3a11f7858753c643dce7076f2e7349465d.tar.gz
ipxe-26a50c3a11f7858753c643dce7076f2e7349465d.tar.xz
ipxe-26a50c3a11f7858753c643dce7076f2e7349465d.zip
[infiniband] Add the notion of an Ethernet queue pair type
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/net/ipoib.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c
index 52ac5f03..09c89bdc 100644
--- a/src/drivers/net/ipoib.c
+++ b/src/drivers/net/ipoib.c
@@ -485,6 +485,7 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
struct ipoib_mac ll_src;
struct ipoib_peer *src;
+ /* Record errors */
if ( rc != 0 ) {
netdev_rx_err ( netdev, iobuf, rc );
return;
@@ -499,6 +500,12 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
return;
}
ipoib_hdr = iobuf->data;
+ if ( ! av ) {
+ DBGC ( ipoib, "IPoIB %p received packet without address "
+ "vector\n", ipoib );
+ netdev_rx_err ( netdev, iobuf, -ENOTTY );
+ return;
+ }
/* Parse source address */
if ( av->gid_present ) {