Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: net_netdev: Fix error handling in ntb_netdev_init_module()

The ntb_netdev_init_module() returns the ntb_transport_register_client()
directly without checking its return value, if
ntb_transport_register_client() failed, the NTB client device is not
unregistered.

Fix by unregister NTB client device when ntb_transport_register_client()
failed.

Fixes: 548c237c0a99 ("net: Add support for NTB virtual ethernet device")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Yuan Can and committed by
David S. Miller
b8f79dcc 46fb6512

+8 -1
+8 -1
drivers/net/ntb_netdev.c
··· 484 484 rc = ntb_transport_register_client_dev(KBUILD_MODNAME); 485 485 if (rc) 486 486 return rc; 487 - return ntb_transport_register_client(&ntb_netdev_client); 487 + 488 + rc = ntb_transport_register_client(&ntb_netdev_client); 489 + if (rc) { 490 + ntb_transport_unregister_client_dev(KBUILD_MODNAME); 491 + return rc; 492 + } 493 + 494 + return 0; 488 495 } 489 496 module_init(ntb_netdev_init_module); 490 497