Le vendredi 16 juillet 2010 à 11:56 +0200, Eric Dumazet a écrit : > [PATCH] ehea: ehea_get_stats() should use GFP_KERNEL > > ehea_get_stats() is called in process context and should use GFP_KERNEL > allocation instead of GFP_ATOMIC. > > Clearing stats at beginning of ehea_get_stats() is racy in case of > concurrent stat readers. > > get_stats() can also use netdev net_device_stats, instead of a private > copy. > > Reported-by: divya <dipra...@linux.vnet.ibm.com> > Signed-off-by: Eric Dumazet <eric.duma...@gmail.com> > --- > drivers/net/ehea/ehea.h | 1 - > drivers/net/ehea/ehea_main.c | 6 ++---- > 2 files changed, 2 insertions(+), 5 deletions(-) > >
Hmm, net-next-2.6 contains following patch : commit 3d8009c780ee90fccb5c171caf30aff839f13547 Author: Brian King <brk...@linux.vnet.ibm.com> Date: Wed Jun 30 11:59:12 2010 +0000 ehea: Allocate stats buffer with GFP_KERNEL Since ehea_get_stats calls ehea_h_query_ehea_port, which can sleep, we can also sleep when allocating a page in this function. This fixes some memory allocation failure warnings seen under low memory conditions. Signed-off-by: Brian King <brk...@linux.vnet.ibm.com> Signed-off-by: David S. Miller <da...@davemloft.net> diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 8b92acb..3beba70 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -335,7 +335,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev) memset(stats, 0, sizeof(*stats)); - cb2 = (void *)get_zeroed_page(GFP_ATOMIC); + cb2 = (void *)get_zeroed_page(GFP_KERNEL); if (!cb2) { ehea_error("no mem for cb2"); goto out; _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev