lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 13 Dec 2010 00:46:11 +0100 (CET) From: Andi Kleen <andi@...stfloor.org> To: kamezawa.hiroyu@...fujitsu.com, fengguang.wu@...el.com, mhocko@...e.cz, mel@....ul.ie, akpm@...ux-foundation.org, torvalds@...ux-foundation.org, gregkh@...e.de, ak@...ux.intel.com, linux-kernel@...r.kernel.org, stable@...nel.org Subject: [PATCH] [73/223] mm: fix is_mem_section_removable() page_order BUG_ON check 2.6.35-longterm review patch. If anyone has any objections, please let me know. ------------------ From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com> commit 572438f9b52236bd8938b1647cc15e027d27ef55 upstream. page_order() is called by memory hotplug's user interface to check the section is removable or not. (is_mem_section_removable()) It calls page_order() withoug holding zone->lock. So, even if the caller does if (PageBuddy(page)) ret = page_order(page) ... The caller may hit BUG_ON(). For fixing this, there are 2 choices. 1. add zone->lock. 2. remove BUG_ON(). is_mem_section_removable() is used for some "advice" and doesn't need to be 100% accurate. This is_removable() can be called via user program.. We don't want to take this important lock for long by user's request. So, this patch removes BUG_ON(). Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com> Acked-by: Wu Fengguang <fengguang.wu@...el.com> Acked-by: Michal Hocko <mhocko@...e.cz> Acked-by: Mel Gorman <mel@....ul.ie> Signed-off-by: Andrew Morton <akpm@...ux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@...e.de> Signed-off-by: Andi Kleen <ak@...ux.intel.com> --- mm/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux/mm/internal.h =================================================================== --- linux.orig/mm/internal.h +++ linux/mm/internal.h @@ -62,7 +62,7 @@ extern bool is_free_buddy_page(struct pa */ static inline unsigned long page_order(struct page *page) { - VM_BUG_ON(!PageBuddy(page)); + /* PageBuddy() must be checked by the caller */ return page_private(page); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists