Fix sys_mount not to free_page(0)
Subsystems (2)
PATCH 1/1 Fix sys_mount not to free_page(0)
Linus/Alan,
Could you please take this patch into the 2.2 and 2.3 streams? It basically prevents sys_mount() from trying to invoke free_page(0). Note that copy_mount_options() might return 0 both in the case where it allocates a page, and in the case it does not.
Thanks.
Kanoj
[email protected]
super.c renamed from usr/tmp/p_rdiff_a005Eo/super.c +6 -3
@@ -1037,7 +1037,8 @@ retval =do_remount (dir_name, new_flags & ~MS_MGC_MSK & ~MS_REMOUNT , (char *) page); -free_page (page); +if (page) +free_page (page); goto out; }
@@ -1045,7 +1046,8 @@if (retval <0 ) goto out; fstype =get_fs_type ((char *) page); -free_page (page); +if (page) +free_page (page); retval = -ENODEV ;if (!fstype) goto out;
@@ -1099,7 +1101,8 @@ } retval =do_mount (dev, dev_name, dir_name, fstype->name, flags, (void *) page); -free_page (page); +if (page) +free_page (page);if (retval) goto clean_up;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
Quoted 3 lines · Kanoj Sarcar
Could you please take this patch into the 2.2 and 2.3 streams? It basically prevents
sys_mount()from trying to invokefree_page(0).
Hmm..
free_page(0) is actually supposed to work. Doesn't it?
Linus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
Quoted 14 lines · Kanoj Sarcar
Quoted 3 lines
Could you please take this patch into the 2.2 and 2.3 streams? It basically prevents
sys_mount()from trying to invokefree_page(0).Hmm..
free_page(0)is actually supposed to work. Doesn't it?Linus
Umm, it does ... I was thinking it was happenstance, and not by design. I ran into a panic with some code I am trying to write and ran into this ... maybe I should fix my code ...
Is it worthwhile to clean this up, or do other places in the code rely on this behavior of free_page?
Kanoj
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
Quoted 4 lines · Kanoj Sarcar
Quoted 2 lines
free_page(0)is actually supposed to work. Doesn't it?Umm, it does ... I was thinking it was happenstance, and not by design.
It's by design - I am of the religion that thinks that
free(malloc());
is always legal, even when the malloc() fails.
Quoted 2 lines
Is it worthwhile to clean this up, or do other places in the code rely on this behavior of
free_page?
There might be any number of places who just free a page, it doesn't even slow down free_page(), because the 0 case just falls out quite naturally from having to test for out-of-range and reserved pages anyway.
Linus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/