The return value of vnic_dev_notify_set() is silently ignored in
enic_dev_init(), so a memory allocation failure or hardware command
error goes unnoticed and the driver continues with uninitialized
notification state.
Check the return value and propagate the error to abort probe when
notification setup fails.
Fixes: fefed3d1e62c ("enic: new driver")
Cc: [email protected]
Signed-off-by: Alexey Simakov <[email protected]>
---
v2 changes: validate return code of vnic_dev_notify_set()
in driver init section
v1 link:
https://patches.dpdk.org/project/dpdk/patch/[email protected]/
drivers/net/enic/enic_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 2696fa77d4..f46f429135 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1887,7 +1887,9 @@ static int enic_dev_init(struct enic *enic)
LIST_INIT(&enic->flows);
/* set up link status checking */
- vnic_dev_notify_set(enic->vdev, -1); /* No Intr for notify */
+ err = vnic_dev_notify_set(enic->vdev, -1); /* No Intr for notify */
+ if (err)
+ return err;
enic->overlay_offload = false;
/*
--
2.34.1