* [patch] fix broken topology functions
@ 2002-12-04 23:54 Matthew Dobson
2002-12-05 0:20 ` William Lee Irwin III
0 siblings, 1 reply; 3+ messages in thread
From: Matthew Dobson @ 2002-12-04 23:54 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Trivial Patch Monkey, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 349 bytes --]
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!
-Matt
[-- Attachment #2: topo_ordering-2.5.50.patch --]
[-- Type: text/plain, Size: 1104 bytes --]
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.50-vanilla/drivers/base/memblk.c linux-2.5.50-topo_ordering/drivers/base/memblk.c
--- linux-2.5.50-vanilla/drivers/base/memblk.c Wed Nov 27 14:36:23 2002
+++ linux-2.5.50-topo_ordering/drivers/base/memblk.c Wed Dec 4 15:50:52 2002
@@ -49,7 +49,7 @@
static int __init register_memblk_type(void)
{
- driver_register(&memblk_driver);
- return devclass_register(&memblk_devclass);
+ devclass_register(&memblk_devclass);
+ return driver_register(&memblk_driver);
}
postcore_initcall(register_memblk_type);
diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.50-vanilla/drivers/base/node.c linux-2.5.50-topo_ordering/drivers/base/node.c
--- linux-2.5.50-vanilla/drivers/base/node.c Wed Nov 27 14:35:50 2002
+++ linux-2.5.50-topo_ordering/drivers/base/node.c Wed Dec 4 15:50:52 2002
@@ -93,7 +93,7 @@
static int __init register_node_type(void)
{
- driver_register(&node_driver);
- return devclass_register(&node_devclass);
+ devclass_register(&node_devclass);
+ return driver_register(&node_driver);
}
postcore_initcall(register_node_type);
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] fix broken topology functions
2002-12-04 23:54 [patch] fix broken topology functions Matthew Dobson
@ 2002-12-05 0:20 ` William Lee Irwin III
2002-12-05 21:35 ` Matthew Dobson
0 siblings, 1 reply; 3+ messages in thread
From: William Lee Irwin III @ 2002-12-05 0:20 UTC (permalink / raw)
To: Matthew Dobson; +Cc: Linus Torvalds, Trivial Patch Monkey, linux-kernel
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);
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] fix broken topology functions
2002-12-05 0:20 ` William Lee Irwin III
@ 2002-12-05 21:35 ` Matthew Dobson
0 siblings, 0 replies; 3+ messages in thread
From: Matthew Dobson @ 2002-12-05 21:35 UTC (permalink / raw)
To: William Lee Irwin III; +Cc: Linus Torvalds, Trivial Patch Monkey, linux-kernel
William Lee Irwin III wrote:
> 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.
Even better. Thanks Bill!
Cheers!
-Matt
>
> 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);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-12-05 21:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-04 23:54 [patch] fix broken topology functions Matthew Dobson
2002-12-05 0:20 ` William Lee Irwin III
2002-12-05 21:35 ` Matthew Dobson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).