Re: [PATCH] Missing return check against Null for return value of netdev_alloc_dev_skb()

From: David Miller
Date: Sun Jun 15 2014 - 02:53:11 EST


From: Nick <xerofoify@xxxxxxxxx>
Date: Sun, 15 Jun 2014 00:05:39 -0400

> Signed-off-by: Nick <xerofoify@xxxxxxxxx>
> ---
> drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
> index 73e6683..704cf63 100644
> --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
> +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
> @@ -1515,6 +1515,8 @@ static void pch_gbe_alloc_tx_buffers(struct pch_gbe_adapter *adapter,
> for (i = 0; i < tx_ring->count; i++) {
> buffer_info = &tx_ring->buffer_info[i];
> skb = netdev_alloc_skb(adapter->netdev, bufsz);
> + if (!skb)
> + return NULL;

You didn't even compile test this.

The function has a void return type, you can't return NULL.

Furthermore, you have to adjust things so that the caller knows that
this operation failed, because the device cannot be brought up
successfully unless all the TX buffer slots get allocated properly.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/