2002-09-16 06:28:00

by Skip Ford

[permalink] [raw]
Subject: 2.5.35 undefined reference to `wait_task_inactive'

A call to wait_task_inactive was added to fs/exec.c but that function is
not defined for UP.

ld -m elf_i386 -T arch/i386/vmlinux.lds.s -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/init.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o security/built-in.o /usr/local/src/linux/arch/i386/lib/lib.a lib/lib.a /usr/local/src/linux/arch/i386/lib/lib.a drivers/built-in.o sound/sound.o arch/i386/pci/pci.o net/network.o --end-group -o vmlinux
fs/fs.o: In function `flush_old_exec':
fs/fs.o(.text+0x8cb7): undefined reference to `wait_task_inactive'
make: *** [vmlinux] Error 1

--
Skip


2002-09-17 14:26:35

by Kirk Reiser

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

Skip Ford <[email protected]> writes:

> A call to wait_task_inactive was added to fs/exec.c but that function is
> not defined for UP.

I haven't seen a fix for this yet?

Kirk

--

Kirk Reiser The Computer Braille Facility
e-mail: [email protected] University of Western Ontario
phone: (519) 661-3061

2002-09-17 14:47:46

by Roberto Nibali

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

>>A call to wait_task_inactive was added to fs/exec.c but that function is
>>not defined for UP.
> I haven't seen a fix for this yet?

Err, I've done and sent a possible patch to LKML, I'm simply not sure if
this is the right thing to do:

--- linux-2.5.35/kernel/sched.c Mon Sep 16 04:18:24 2002
+++ linux-2.5.35-ratz/kernel/sched.c Mon Sep 16 13:29:28 2002
@@ -331,8 +331,6 @@
#endif
}

-#ifdef CONFIG_SMP
-
/*
* wait_task_inactive - wait for a thread to unschedule.
*
@@ -366,7 +364,6 @@
task_rq_unlock(rq, &flags);
preempt_enable();
}
-#endif

/*
* kick_if_running - kick the remote CPU if the task is running currently.

BTW, ACPI needs a few tunings too to be able to compile the stuff as
modules, but I'm sure that also here it's not the right thing to do, I
simply did a quick hack to have a running and bootable 2.5.35 kernel:

diff -ur linux-2.5.35/drivers/acpi/hardware/hwgpe.c
linux-2.5.35-ratz/drivers/acpi/hardwar
e/hwgpe.c
--- linux-2.5.35/drivers/acpi/hardware/hwgpe.c Mon Sep 16 04:18:17 2002
+++ linux-2.5.35-ratz/drivers/acpi/hardware/hwgpe.c Mon Sep 16
12:49:40 2002
@@ -28,7 +28,9 @@
#include "acevents.h"

#define _COMPONENT ACPI_HARDWARE
+#ifdef MODULE
ACPI_MODULE_NAME ("hwgpe")
+#endif



/******************************************************************************
diff -ur linux-2.5.35/drivers/acpi/namespace/nsxfname.c
linux-2.5.35-ratz/drivers/acpi/nam
espace/nsxfname.c
--- linux-2.5.35/drivers/acpi/namespace/nsxfname.c Mon Sep 16
04:18:23 2002
+++ linux-2.5.35-ratz/drivers/acpi/namespace/nsxfname.c Mon Sep 16
13:00:34 2002
@@ -30,7 +30,9 @@


#define _COMPONENT ACPI_NAMESPACE
+#ifdef MODULE
ACPI_MODULE_NAME ("nsxfname")
+#endif



/****************************************************************************
diff -ur linux-2.5.35/drivers/acpi/namespace/nsxfobj.c
linux-2.5.35-ratz/drivers/acpi/name
space/nsxfobj.c
--- linux-2.5.35/drivers/acpi/namespace/nsxfobj.c Mon Sep 16
04:18:15 2002
+++ linux-2.5.35-ratz/drivers/acpi/namespace/nsxfobj.c Mon Sep 16
13:00:52 2002
@@ -30,7 +30,9 @@


#define _COMPONENT ACPI_NAMESPACE
+#ifdef MODULE
ACPI_MODULE_NAME ("nsxfobj")
+#endif


/*******************************************************************************
*
diff -ur linux-2.5.35/drivers/acpi/resources/rsdump.c
linux-2.5.35-ratz/drivers/acpi/resou
rces/rsdump.c
--- linux-2.5.35/drivers/acpi/resources/rsdump.c Mon Sep 16
04:18:30 2002
+++ linux-2.5.35-ratz/drivers/acpi/resources/rsdump.c Mon Sep 16
13:01:26 2002
@@ -28,7 +28,9 @@
#include "acresrc.h"

#define _COMPONENT ACPI_RESOURCES
+#ifdef MODULE
ACPI_MODULE_NAME ("rsdump")
+#endif


#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
diff -ur linux-2.5.35/drivers/acpi/utilities/utdebug.c
linux-2.5.35-ratz/drivers/acpi/util
ities/utdebug.c
--- linux-2.5.35/drivers/acpi/utilities/utdebug.c Mon Sep 16
04:18:38 2002
+++ linux-2.5.35-ratz/drivers/acpi/utilities/utdebug.c Mon Sep 16
13:02:12 2002
@@ -27,7 +27,9 @@
#include "acpi.h"

#define _COMPONENT ACPI_UTILITIES
+#ifdef MODULE
ACPI_MODULE_NAME ("utdebug")
+#endif


#ifdef ACPI_DEBUG_OUTPUT
diff -ur linux-2.5.35/drivers/usb/storage/transport.c
linux-2.5.35-ratz/drivers/usb/storag
e/transport.c
--- linux-2.5.35/drivers/usb/storage/transport.c Mon Sep 16
04:18:26 2002
+++ linux-2.5.35-ratz/drivers/usb/storage/transport.c Mon Sep 16
12:46:47 2002
@@ -55,6 +55,8 @@
#include <linux/errno.h>
#include <linux/slab.h>

+extern void show_trace(unsigned long* esp);
+
/***********************************************************************
* Helper routines
***********************************************************************/

Best regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc

2002-09-17 14:58:56

by Roberto Nibali

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

Roberto Nibali wrote:
>>> A call to wait_task_inactive was added to fs/exec.c but that function is
>>> not defined for UP.
>>
>> I haven't seen a fix for this yet?
>
>
> Err, I've done and sent a possible patch to LKML, I'm simply not sure if
> this is the right thing to do:
>
> --- linux-2.5.35/kernel/sched.c Mon Sep 16 04:18:24 2002
> +++ linux-2.5.35-ratz/kernel/sched.c Mon Sep 16 13:29:28 2002
> @@ -331,8 +331,6 @@

Actually the correct fix seems to be already in Linus' tree:

[email protected], 2002-09-15 22:53:19-07:00, [email protected]
[PATCH] Remove CONFIG_SMP around wait_task_inactive()

So after all, my patch wasn't all that wrong, just a little ... ;).

As it seems also the ieee1394 patches went in and the USB storage
compilation problem is also fixed.

Best regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc

2002-09-17 15:03:30

by Benjamin LaHaise

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

On Tue, Sep 17, 2002 at 04:54:35PM +0200, Roberto Nibali wrote:
> BTW, ACPI needs a few tunings too to be able to compile the stuff as
> modules, but I'm sure that also here it's not the right thing to do, I
> simply did a quick hack to have a running and bootable 2.5.35 kernel:
...
> +#ifdef MODULE
> ACPI_MODULE_NAME ("hwgpe")
> +#endif

Btw, why not put the #ifdef in the header file that defines
ACPI_MODULE_NAME(x) instead of littering more #ifdefs around code?

-ben

2002-09-17 15:08:37

by Kirk Reiser

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

Roberto Nibali <[email protected]> writes:

> Roberto Nibali wrote:
> Actually the correct fix seems to be already in Linus' tree:
>
> [email protected], 2002-09-15 22:53:19-07:00, [email protected]
> [PATCH] Remove CONFIG_SMP around wait_task_inactive()
>
> So after all, my patch wasn't all that wrong, just a little ... ;).

Thanks Roberto for the quick responce.

Kirk

--

Kirk Reiser The Computer Braille Facility
e-mail: [email protected] University of Western Ontario
phone: (519) 661-3061

2002-09-17 15:14:59

by Roberto Nibali

[permalink] [raw]
Subject: Re: 2.5.35 undefined reference to `wait_task_inactive'

>>+#ifdef MODULE
>> ACPI_MODULE_NAME ("hwgpe")
>>+#endif
>
> Btw, why not put the #ifdef in the header file that defines
> ACPI_MODULE_NAME(x) instead of littering more #ifdefs around code?

Right, stupid me. With that I even catch those modules I didn't
explicitly set to 'm' in the ACPI subtree. But I guess this is up to the
Intel guys anyway. If they don't patch it by 2.5.36 I'll submit a clean
patch myself.

Regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc