Messages in this thread | | | Date | Wed, 12 Dec 2007 07:18:32 -0800 (PST) | Subject | Re: [PATCH 6/7] [NETDEV]: tehuti Fix possible causing oops of net_rx_action | From | David Miller <> |
| |
From: "Joonwoo Park" <joonwpark81@gmail.com> Date: Wed, 12 Dec 2007 13:01:27 +0900
> @@ -305,6 +305,8 @@ static int bdx_poll(struct napi_struct *napi, int budget) > > netif_rx_complete(dev, napi); > bdx_enable_interrupts(priv); > + if (unlikely(work_done == napi->weight)) > + return work_done - 1; > } > return work_done; > }
Any time your trying to make a caller "happy" by adjusting a return value forcefully, it's a hack.
And I stated this in another reply about this issue.
Please do not fix the problem this way.
The correct way to fix this is, if we did process a full "weight" or work, we should not netif_rx_complete() and we should not re-enable chip interrupts.
Instead we should return the true "work_done" value and allow the caller to thus poll us one more time.
| |