Re: [RFC 4/4] cxgb4: drop __GFP_NOFAIL allocation

From: Michal Hocko
Date: Tue Mar 03 2015 - 08:18:38 EST


On Tue 03-03-15 21:22:22, Tetsuo Handa wrote:
> Michal Hocko wrote:
> > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> > index ccf3436024bc..f351920fc293 100644
> > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> > @@ -1220,6 +1220,10 @@ static int set_filter_wr(struct adapter *adapter, int fidx)
> > struct fw_filter_wr *fwr;
> > unsigned int ftid;
> >
> > + skb = alloc_skb(sizeof(*fwr), GFP_KERNEL);
> > + if (!skb)
> > + return -ENOMEM;
> > +
> > /* If the new filter requires loopback Destination MAC and/or VLAN
> > * rewriting then we need to allocate a Layer 2 Table (L2T) entry for
> > * the filter.
> > @@ -1227,19 +1231,21 @@ static int set_filter_wr(struct adapter *adapter, int fidx)
> > if (f->fs.newdmac || f->fs.newvlan) {
> > /* allocate L2T entry for new filter */
> > f->l2t = t4_l2t_alloc_switching(adapter->l2t);
> > - if (f->l2t == NULL)
> > + if (f->l2t == NULL) {
> > + kfree(skb);
>
> I think we need to use kfree_skb() than kfree() for memory allocated by alloc_skb().

Definitely! Good point, thanks!

Andrew, I've noticed you have picked up the patch. Should I resend or
the below incremental one is good enough?
---