[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [UNIKRAFT PATCH] lib/uknetdev: netdev register fails on lib param
Hi Sharan, Thanks for the patch. Tested and all good. Reviewed-by: Alexander Jung <a.jung@xxxxxxxxxxx> On 17.08.20, 01:35, "Minios-devel on behalf of Sharan Santhanam" <minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of sharan.santhanam@xxxxxxxxx> wrote: einfo returns error when the user does not provide the library parameters. Signed-off-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx> --- lib/uknetdev/netdev.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/uknetdev/netdev.c b/lib/uknetdev/netdev.c index 74be618..87322c7 100644 --- a/lib/uknetdev/netdev.c +++ b/lib/uknetdev/netdev.c @@ -120,18 +120,16 @@ static struct uk_netdev_einfo *_alloc_einfo(struct uk_alloc *a) { struct uk_netdev_einfo *_einfo = NULL; - if (ipv4_addr || ipv4_subnet_mask || ipv4_gw_addr) { - _einfo = uk_zalloc(a, sizeof(*_einfo)); - if (!_einfo) { - uk_pr_warn("Failed to allocate memory for netdev config\n"); - return NULL; - } - - _einfo->ipv4_addr = _parse_ipv4_addr(); - _einfo->ipv4_net_mask = _parse_ipv4_net_mask(); - _einfo->ipv4_gw_addr = _parse_ipv4_gw_addr(); + _einfo = uk_zalloc(a, sizeof(*_einfo)); + if (!_einfo) { + uk_pr_warn("Failed to allocate memory for netdev config\n"); + return ERR2PTR(-ENOMEM); } + _einfo->ipv4_addr = _parse_ipv4_addr(); + _einfo->ipv4_net_mask = _parse_ipv4_net_mask(); + _einfo->ipv4_gw_addr = _parse_ipv4_gw_addr(); + return _einfo; } @@ -162,9 +160,11 @@ int uk_netdev_drv_register(struct uk_netdev *dev, struct uk_alloc *a, if (!dev->_data) return -ENOMEM; - dev->_einfo = _alloc_einfo(a); - if (!dev->_einfo) - return -ENOMEM; + if (ipv4_addr || ipv4_subnet_mask || ipv4_gw_addr) { + dev->_einfo = _alloc_einfo(a); + if (PTRISERR(dev->_einfo)) + return PTR2ERR(dev->_einfo); + } UK_TAILQ_INSERT_TAIL(&uk_netdev_list, dev, _list); uk_pr_info("Registered netdev%"PRIu16": %p (%s)\n", -- 2.7.4
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |