diff options
Diffstat (limited to 'drivers/net/ethernet/marvell/prestera/prestera_router.c')
-rw-r--r-- | drivers/net/ethernet/marvell/prestera/prestera_router.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router.c b/drivers/net/ethernet/marvell/prestera/prestera_router.c index 5f64b05b7259..124172c833f2 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_router.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_router.c @@ -5,10 +5,12 @@ #include <linux/types.h> #include "prestera.h" +#include "prestera_router_hw.h" int prestera_router_init(struct prestera_switch *sw) { struct prestera_router *router; + int err; router = kzalloc(sizeof(*sw->router), GFP_KERNEL); if (!router) @@ -17,7 +19,15 @@ int prestera_router_init(struct prestera_switch *sw) sw->router = router; router->sw = sw; + err = prestera_router_hw_init(sw); + if (err) + goto err_router_lib_init; + return 0; + +err_router_lib_init: + kfree(sw->router); + return err; } void prestera_router_fini(struct prestera_switch *sw) |