Re: bgmac: fix a missing check for build_skb

From: Felix Fietkau
Date: Wed Jan 13 2016 - 05:58:05 EST


On 2016-01-13 11:25, Weidong Wang wrote:
> On 2016/1/13 16:34, Paolo Abeni wrote:
>> On Wed, 2016-01-13 at 11:06 +0800, Weidong Wang wrote:
>>> when build_skb failed, it may occure a NULL pointer.
>>> So add a 'NULL check' for it.
>>>
>>> Signed-off-by: Weidong Wang <wangweidong1@xxxxxxxxxx>
>>> ---
>>> drivers/net/ethernet/broadcom/bgmac.c | 5 +++++
>>> 1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
>>> index 21e3c38..d75180a 100644
>>> --- a/drivers/net/ethernet/broadcom/bgmac.c
>>> +++ b/drivers/net/ethernet/broadcom/bgmac.c
>>> @@ -466,6 +466,11 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
>>> len -= ETH_FCS_LEN;
>>>
>>> skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE);
>>> + if (unlikely(skb)) {
>>
>> Should that be instead:
>>
>> if (unlikely(!skb)) {
>>
>> ?
>>
>
> What to instead of it?
Your patch has a logic error (missing the !), and it's breaking the
ethernet driver completely instead of fixing anything.
Did you even test this?

Dave, why did you apply this patch so fast without any chance of review?

- Felix