Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 4 Dec 2002 19:13:00 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 4 Dec 2002 19:13:00 -0500 Received: from holomorphy.com ([66.224.33.161]:29063 "EHLO holomorphy") by vger.kernel.org with ESMTP id ; Wed, 4 Dec 2002 19:12:59 -0500 Date: Wed, 4 Dec 2002 16:20:23 -0800 From: William Lee Irwin III To: Matthew Dobson Cc: Linus Torvalds , Trivial Patch Monkey , linux-kernel@vger.kernel.org Subject: Re: [patch] fix broken topology functions Message-ID: <20021205002023.GC9882@holomorphy.com> Mail-Followup-To: William Lee Irwin III , Matthew Dobson , Linus Torvalds , Trivial Patch Monkey , linux-kernel@vger.kernel.org References: <3DEE959F.7080600@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3DEE959F.7080600@us.ibm.com> User-Agent: Mutt/1.3.25i Organization: The Domain of Holomorphy Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2026 Lines: 52 On Wed, Dec 04, 2002 at 03:54:07PM -0800, Matthew Dobson wrote: > Linus, > The register_(node|memblk)_driver functions are broken. Pat Mochel > recently updated sysfs to make sure that when you register a driver that > it's associated devclass is already registered. The way node/memblk > registration is done now is backwards and causes panic's on NUMA > systems. Please apply this patch to fix it. > Cheers! That didn't check the return value of devclass_register(): Reorder devclass_register() and driver_register() so these things stop oopsing. memblk.c | 4 ++-- node.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff -urpN mm1-2.5.50/drivers/base/memblk.c mm1-2.5.50-1/drivers/base/memblk.c --- mm1-2.5.50/drivers/base/memblk.c 2002-11-27 14:36:23.000000000 -0800 +++ mm1-2.5.50-1/drivers/base/memblk.c 2002-12-04 12:53:59.000000000 -0800 @@ -49,7 +49,7 @@ int __init register_memblk(struct memblk static int __init register_memblk_type(void) { - driver_register(&memblk_driver); - return devclass_register(&memblk_devclass); + int error = devclass_register(&memblk_devclass); + return error ? error : driver_register(&memblk_driver); } postcore_initcall(register_memblk_type); diff -urpN mm1-2.5.50/drivers/base/node.c mm1-2.5.50-1/drivers/base/node.c --- mm1-2.5.50/drivers/base/node.c 2002-11-27 14:35:50.000000000 -0800 +++ mm1-2.5.50-1/drivers/base/node.c 2002-12-04 12:53:05.000000000 -0800 @@ -93,7 +93,7 @@ int __init register_node(struct node *no static int __init register_node_type(void) { - driver_register(&node_driver); - return devclass_register(&node_devclass); + int error = devclass_register(&node_devclass); + return error ? error : driver_register(&node_driver); } postcore_initcall(register_node_type); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/