All of lore.kernel.org
 help / color / mirror / Atom feed
* re: list_lru: per-node list infrastructure
@ 2013-06-28 14:22 Dan Carpenter
  2013-07-17 11:20 ` Dan Carpenter
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2013-06-28 14:22 UTC (permalink / raw)
  To: dchinner; +Cc: linux-mm

Hi Dave,

The patch a8739514fa91: "list_lru: per-node list infrastructure" in -mm
has a signedness bug.

include/linux/list_lru.h
   116  static inline unsigned long
   117  list_lru_walk(struct list_lru *lru, list_lru_walk_cb isolate,
   118                void *cb_arg, unsigned long nr_to_walk)
   119  {
   120          long isolated = 0;
   121          int nid;
   122  
   123          for_each_node_mask(nid, lru->active_nodes) {
   124                  isolated += list_lru_walk_node(lru, nid, isolate,
   125                                                 cb_arg, &nr_to_walk);
   126                  if (nr_to_walk <= 0)
                            ^^^^^^^^^^^^^^^
nr_to_walk is unsigned so the timeout value from list_lru_walk_node() is
ULONG_MAX (it's not zero).

   127                          break;
   128          }
   129          return isolated;
   130  }

regards,
dan carpenter

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: list_lru: per-node list infrastructure
  2013-06-28 14:22 list_lru: per-node list infrastructure Dan Carpenter
@ 2013-07-17 11:20 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2013-07-17 11:20 UTC (permalink / raw)
  To: dchinner; +Cc: linux-mm

Ping?

Btw, here is the code from list_lru_walk_node():

		if ((*nr_to_walk)-- == 0)
			break;

As you can see it wraps to ULONG_MAX before returning.

regards,
dan carpenter

On Fri, Jun 28, 2013 at 05:22:02PM +0300, Dan Carpenter wrote:
> Hi Dave,
> 
> The patch a8739514fa91: "list_lru: per-node list infrastructure" in -mm
> has a signedness bug.
> 
> include/linux/list_lru.h
>    116  static inline unsigned long
>    117  list_lru_walk(struct list_lru *lru, list_lru_walk_cb isolate,
>    118                void *cb_arg, unsigned long nr_to_walk)
>    119  {
>    120          long isolated = 0;
>    121          int nid;
>    122  
>    123          for_each_node_mask(nid, lru->active_nodes) {
>    124                  isolated += list_lru_walk_node(lru, nid, isolate,
>    125                                                 cb_arg, &nr_to_walk);
>    126                  if (nr_to_walk <= 0)
>                             ^^^^^^^^^^^^^^^
> nr_to_walk is unsigned so the timeout value from list_lru_walk_node() is
> ULONG_MAX (it's not zero).
> 
>    127                          break;
>    128          }
>    129          return isolated;
>    130  }
> 
> regards,
> dan carpenter

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-07-17 11:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-28 14:22 list_lru: per-node list infrastructure Dan Carpenter
2013-07-17 11:20 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.