On Tue, May 21, 2013 at 10:13 AM, Oskar Andero <[email protected]> wrote: > Add a VM_BUG_ON to catch any illegal value from the shrinkers. It's a > potential bug if scan_objects returns a negative other than -1 and > would lead to undefined behaviour. > > Cc: Glauber Costa <[email protected]> > Cc: Dave Chinner <[email protected]> > Cc: Andrew Morton <[email protected]> > Cc: Hugh Dickins <[email protected]> > Cc: Greg Kroah-Hartman <[email protected]> > Signed-off-by: Oskar Andero <[email protected]> > --- > mm/vmscan.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 6bac41e..63fec86 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -293,6 +293,7 @@ shrink_slab_one(struct shrinker *shrinker, struct > shrink_control *shrinkctl, > ret = shrinker->scan_objects(shrinker, shrinkctl); > if (ret == -1) > break; > + VM_BUG_ON(ret < -1);
It seems to me relaxing the shrinker API restrictions and changing the "ret == -1" to "ret < 0" would be a much more robust approach... > freed += ret; > > count_vm_events(SLABS_SCANNED, nr_to_scan); > -- > 1.8.1.5 > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to [email protected]. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"[email protected]"> [email protected] </a> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

