2008-02-07 23:13:22

by Adrian Bunk

[permalink] [raw]
Subject: parisc compile error

Commit 9e2779fa281cfda13ac060753d674bbcaa23367e broke parisc:

<-- snip -->

...
CC arch/parisc/kernel/asm-offsets.s
In file included from include/asm/pgtable.h:13,
from arch/parisc/kernel/asm-offsets.c:36:
include/linux/mm.h: In function 'is_vmalloc_addr':
include/linux/mm.h:243: error: 'VMALLOC_START' undeclared (first use in this function)
include/linux/mm.h:243: error: (Each undeclared identifier is reported only once
include/linux/mm.h:243: error: for each function it appears in.)
include/linux/mm.h:243: error: 'VMALLOC_END' undeclared (first use in this function)
make[1]: *** [arch/parisc/kernel/asm-offsets.s] Error 1

<-- snip -->

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed


2008-02-07 23:20:42

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Fri, Feb 08, 2008 at 01:12:32AM +0200, Adrian Bunk wrote:
> Commit 9e2779fa281cfda13ac060753d674bbcaa23367e broke parisc:
>
> <-- snip -->
>
> ...
> CC arch/parisc/kernel/asm-offsets.s
> In file included from include/asm/pgtable.h:13,
> from arch/parisc/kernel/asm-offsets.c:36:
> include/linux/mm.h: In function 'is_vmalloc_addr':
> include/linux/mm.h:243: error: 'VMALLOC_START' undeclared (first use in this function)
> include/linux/mm.h:243: error: (Each undeclared identifier is reported only once
> include/linux/mm.h:243: error: for each function it appears in.)
> include/linux/mm.h:243: error: 'VMALLOC_END' undeclared (first use in this function)
> make[1]: *** [arch/parisc/kernel/asm-offsets.s] Error 1
>

yes, it's in my batch of fixes.

thanks for the reminder.

cheers, kyle

2008-02-07 23:33:26

by Christoph Lameter

[permalink] [raw]
Subject: Re: parisc compile error

On Thu, 7 Feb 2008, Kyle McMartin wrote:

> yes, it's in my batch of fixes.

<big sigh of relief> So I do not have to worry about it?

2008-02-07 23:35:40

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Thu, Feb 07, 2008 at 03:33:07PM -0800, Christoph Lameter wrote:
> On Thu, 7 Feb 2008, Kyle McMartin wrote:
>
> > yes, it's in my batch of fixes.
>
> <big sigh of relief> So I do not have to worry about it?
>

haha no. i don't expect people to have to untangle the mess of includes
that is <asm-parisc/*.h> :)

cheers, kyle

2008-02-13 06:56:48

by rubisher

[permalink] [raw]
Subject: Re: parisc compile error

> On Thu, Feb 07, 2008 at 03:33:07PM -0800, Christoph Lameter wrote:
> > On Thu, 7 Feb 2008, Kyle McMartin wrote:
> >
> > > yes, it's in my batch of fixes.
> >
> > <big sigh of relief> So I do not have to worry about it?
> >
>
> haha no. i don't expect people to have to untangle the mess of includes
> that is <asm-parisc/*.h> :)
>
> cheers, kyle
> -
This move to define those symbol before including linux/mm.h seems to make the
drill:
--- include/asm-parisc/pgtable.h.Orig 2007-10-22 08:19:20.000000000 +0000
+++ include/asm-parisc/pgtable.h 2008-02-12 16:28:36.000000000 +0000
@@ -10,6 +10,12 @@
* we simulate an x86-style page table for the linux mm code
*/

+extern void *vmalloc_start;
+#define PCXL_DMA_MAP_SIZE (8*1024*1024)
+#define VMALLOC_START ((unsigned long)vmalloc_start)
+/* this is a fixmap remnant, see fixmap.h */
+#define VMALLOC_END (KERNEL_MAP_END)
+
#include <linux/mm.h> /* for vm_area_struct */
#include <linux/bitops.h>
#include <asm/processor.h>
@@ -116,14 +122,6 @@

#define FIRST_USER_ADDRESS 0

-#ifndef __ASSEMBLY__
-extern void *vmalloc_start;
-#define PCXL_DMA_MAP_SIZE (8*1024*1024)
-#define VMALLOC_START ((unsigned long)vmalloc_start)
-/* this is a fixmap remnant, see fixmap.h */
-#define VMALLOC_END (KERNEL_MAP_END)
-#endif
-
/* NB: The tlb miss handlers make certain assumptions about the order */
/* of the following bits, so be careful (One example, bits 25-31 */
/* are moved together in one instruction). */
=== <> ====

But next compile error appears there:

In file included from
/CAD/linux-2.6.25-rc1-pa-git-20080212/arch/parisc/mm/init.c:26:
include2/asm/pgalloc.h:142: error: conflicting types for 'pte_free_kernel'
include2/asm/pgalloc.h:137: error: previous definition of 'pte_free_kernel'
was here
include2/asm/pgalloc.h: In function 'pte_free_kernel':
include2/asm/pgalloc.h:144: error: expected ')' before ';' token
include2/asm/pgalloc.h:145: error: too few arguments to function 'pte_free_kernel'
include2/asm/pgalloc.h:145: error: expected ';' before '}' token
make[2]: *** [arch/parisc/mm/init.o] Error 1
make[1]: *** [arch/parisc/mm] Error 2
make: *** [sub-make] Error 2


and in include/asm-parisc/pgalloc.h we can read:

static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
{
free_page((unsigned long)pte);
}

static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte)
{
pgtable_page_dtor(pte);
pte_free_kernel(page_address((pte));
}

i.e. 2 time the definition of the same function: which is the right definition?

Cheers,
r.

---
Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
http://www.scarlet.be/

2008-02-13 13:00:29

by rubisher

[permalink] [raw]
Subject: Re: parisc compile error

> > On Thu, Feb 07, 2008 at 03:33:07PM -0800, Christoph Lameter wrote:
> > > On Thu, 7 Feb 2008, Kyle McMartin wrote:
> > >
> > > > yes, it's in my batch of fixes.
> > >
> > > <big sigh of relief> So I do not have to worry about it?
> > >
> >
> > haha no. i don't expect people to have to untangle the mess of includes
> > that is <asm-parisc/*.h> :)
> >
> > cheers, kyle
> > -
> This move to define those symbol before including linux/mm.h seems to make the
> drill:
> --- include/asm-parisc/pgtable.h.Orig 2007-10-22 08:19:20.000000000 +0000
> +++ include/asm-parisc/pgtable.h 2008-02-12 16:28:36.000000000 +0000
> @@ -10,6 +10,12 @@
> * we simulate an x86-style page table for the linux mm code
> */
>
> +extern void *vmalloc_start;
> +#define PCXL_DMA_MAP_SIZE (8*1024*1024)
> +#define VMALLOC_START ((unsigned long)vmalloc_start)
> +/* this is a fixmap remnant, see fixmap.h */
> +#define VMALLOC_END (KERNEL_MAP_END)
> +
> #include <linux/mm.h> /* for vm_area_struct */
> #include <linux/bitops.h>
> #include <asm/processor.h>
> @@ -116,14 +122,6 @@
>
> #define FIRST_USER_ADDRESS 0
>
> -#ifndef __ASSEMBLY__
> -extern void *vmalloc_start;
> -#define PCXL_DMA_MAP_SIZE (8*1024*1024)
> -#define VMALLOC_START ((unsigned long)vmalloc_start)
> -/* this is a fixmap remnant, see fixmap.h */
> -#define VMALLOC_END (KERNEL_MAP_END)
> -#endif
> -
> /* NB: The tlb miss handlers make certain assumptions about the order */
> /* of the following bits, so be careful (One example, bits 25-31 */
> /* are moved together in one instruction). */
> === <> ====
>
> But next compile error appears there:
>
> In file included from
> /CAD/linux-2.6.25-rc1-pa-git-20080212/arch/parisc/mm/init.c:26:
> include2/asm/pgalloc.h:142: error: conflicting types for 'pte_free_kernel'
> include2/asm/pgalloc.h:137: error: previous definition of 'pte_free_kernel'
> was here
> include2/asm/pgalloc.h: In function 'pte_free_kernel':
> include2/asm/pgalloc.h:144: error: expected ')' before ';' token
> include2/asm/pgalloc.h:145: error: too few arguments to function
'pte_free_kernel'
> include2/asm/pgalloc.h:145: error: expected ';' before '}' token
> make[2]: *** [arch/parisc/mm/init.o] Error 1
> make[1]: *** [arch/parisc/mm] Error 2
> make: *** [sub-make] Error 2
>
>
> and in include/asm-parisc/pgalloc.h we can read:
>
> static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
> {
> free_page((unsigned long)pte);
> }
>
> static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte)
> {
> pgtable_page_dtor(pte);
> pte_free_kernel(page_address((pte));
> }
>
Well may be is it much more what parisc need?
--- ./include/asm-parisc/pgalloc.h.Orig 2008-02-11 07:31:24.000000000 +0000
+++ ./include/asm-parisc/pgalloc.h 2008-02-13 10:02:53.000000000 +0000
@@ -138,10 +138,10 @@
free_page((unsigned long)pte);
}

-static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte)
+static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
{
pgtable_page_dtor(pte);
- pte_free_kernel(page_address((pte));
+ pte_free_kernel(mm, page_address((pte)));
}

#define check_pgt_cache() do { } while (0)
=== <> ===

And btw some more small hunk:
- sys_timerfd was gone so
--- ./arch/parisc/kernel/syscall_table.S.Orig 2007-10-22 08:18:54.000000000 +0000
+++ ./arch/parisc/kernel/syscall_table.S 2008-02-13 12:00:08.000000000 +0000
@@ -401,7 +401,7 @@
ENTRY_COMP(kexec_load) /* 300 */
ENTRY_COMP(utimensat)
ENTRY_COMP(signalfd)
- ENTRY_COMP(timerfd)
+ ENTRY_SAME(ni_syscall) /* 303 (timerfd -- dead) */
ENTRY_SAME(eventfd)
ENTRY_COMP(fallocate) /* 305 */

=== <> ===

- some lake of changes of kset to kobj:
--- ./drivers/parisc/pdc_stable.c.Orig 2008-01-28 07:09:26.000000000 +0000
+++ ./drivers/parisc/pdc_stable.c 2008-02-13 11:22:16.000000000 +0000
@@ -829,7 +829,7 @@
struct kobj_attribute *attr,
const char *buf, size_t count)
{
- return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT);
+ return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
}

/**
@@ -845,7 +845,7 @@
struct kobj_attribute *attr,
const char *buf, size_t count)
{
- return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH);
+ return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
}

/**
@@ -1066,7 +1066,7 @@
}

/* Don't forget the root entries */
- error = sysfs_create_group(stable_kobj, pdcs_attr_group);
+ error = sysfs_create_group(stable_kobj, &pdcs_attr_group);

/* register the paths kset as a child of the stable kset */
paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
=== <> ===

And the kernel build, but I don't yet try to boot it...

Hth,
r.
---
Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
http://www.scarlet.be/

2008-02-14 05:14:24

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Wed, Feb 13, 2008 at 07:49:12AM +0100, rubisher wrote:
> --- include/asm-parisc/pgtable.h.Orig 2007-10-22 08:19:20.000000000 +0000
> +++ include/asm-parisc/pgtable.h 2008-02-12 16:28:36.000000000 +0000
> +extern void *vmalloc_start;
> +#define PCXL_DMA_MAP_SIZE (8*1024*1024)
> +#define VMALLOC_START ((unsigned long)vmalloc_start)
> +/* this is a fixmap remnant, see fixmap.h */
> +#define VMALLOC_END (KERNEL_MAP_END)
> +

i moved this to fixmap.h, since i think it makes more sense there,
really.

> static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte)
> {
> pgtable_page_dtor(pte);
> pte_free_kernel(page_address((pte));
> }
>

this is a stunning bit of ignorant patching courtesy of
2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 which:

-#define pte_free(mm, page) pte_free_kernel(page_address(page))
+static inline void pte_free_kernel(struct mm_struct *mm, struct page
*pte)
+{
+ pgtable_page_dtor(pte);
+ pte_free_kernel(page_address((pte));
+}

only wrong on *two* counts.

anyway, fixed this up. sigh.

2008-02-14 05:23:09

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Wed, Feb 13, 2008 at 01:42:10PM +0100, rubisher wrote:
> - some lake of changes of kset to kobj:

thanks, i don't build this driver, somehow it made its way out of my
configs. patch looks correct though. applied.

> --- ./drivers/parisc/pdc_stable.c.Orig 2008-01-28 07:09:26.000000000 +0000
> +++ ./drivers/parisc/pdc_stable.c 2008-02-13 11:22:16.000000000 +0000
> @@ -829,7 +829,7 @@
> struct kobj_attribute *attr,
> const char *buf, size_t count)
> {
> - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT);
> + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
> }
>
> /**
> @@ -845,7 +845,7 @@
> struct kobj_attribute *attr,
> const char *buf, size_t count)
> {
> - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH);
> + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
> }
>
> /**
> @@ -1066,7 +1066,7 @@
> }
>
> /* Don't forget the root entries */
> - error = sysfs_create_group(stable_kobj, pdcs_attr_group);
> + error = sysfs_create_group(stable_kobj, &pdcs_attr_group);
>
> /* register the paths kset as a child of the stable kset */
> paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
> === <> ===
>
> And the kernel build, but I don't yet try to boot it...
>
> Hth,
> r.
> ---
> Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
> http://www.scarlet.be/
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2008-02-15 10:45:28

by rubisher

[permalink] [raw]
Subject: Re: parisc compile error

> On Wed, Feb 13, 2008 at 01:42:10PM +0100, rubisher wrote:
> > - some lake of changes of kset to kobj:
>
> thanks, i don't build this driver, somehow it made its way out of my
> configs. patch looks correct though. applied.
>
Cool ;-)

Btw, it boot fine to me on b2k and d380 running all up 32bit kernels ;-)

Cheers,
r.
---
Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
http://www.scarlet.be/

2008-02-17 22:36:19

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Wed, Feb 13, 2008 at 01:42:10PM +0100, rubisher wrote:
>

Can I get your Signed-off-by for this, Joel? (I assume you are Joel :)

cheers, Kyle

> - some lake of changes of kset to kobj:
> --- ./drivers/parisc/pdc_stable.c.Orig 2008-01-28 07:09:26.000000000 +0000
> +++ ./drivers/parisc/pdc_stable.c 2008-02-13 11:22:16.000000000 +0000
> @@ -829,7 +829,7 @@
> struct kobj_attribute *attr,
> const char *buf, size_t count)
> {
> - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT);
> + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
> }
>
> /**
> @@ -845,7 +845,7 @@
> struct kobj_attribute *attr,
> const char *buf, size_t count)
> {
> - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH);
> + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
> }
>
> /**
> @@ -1066,7 +1066,7 @@
> }
>
> /* Don't forget the root entries */
> - error = sysfs_create_group(stable_kobj, pdcs_attr_group);
> + error = sysfs_create_group(stable_kobj, &pdcs_attr_group);
>
> /* register the paths kset as a child of the stable kset */
> paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
> === <> ===
>
> And the kernel build, but I don't yet try to boot it...
>
> Hth,
> r.
> ---
> Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
> http://www.scarlet.be/
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2008-02-18 10:33:30

by rubisher

[permalink] [raw]
Subject: Re: parisc compile error

> On Wed, Feb 13, 2008 at 01:42:10PM +0100, rubisher wrote:
> >
>
> Can I get your Signed-off-by for this, Joel? (I assume you are Joel :)
>
Yes the previous account seems to be a bit old and look more and more like a
gc; I so take the opportunity of ml's change to use another pseudo ;-)

That said those 2 hunks help build (even boot my 32bit up kernel on b2k and
d380 boxes):

Signed-off-by: Joel Soete <soete dot joel at scarlet dot be>

(any advise is welcome obviously ;-)

r.

> cheers, Kyle
>
> > - some lake of changes of kset to kobj:
> > --- ./drivers/parisc/pdc_stable.c.Orig 2008-01-28 07:09:26.000000000 +0000
> > +++ ./drivers/parisc/pdc_stable.c 2008-02-13 11:22:16.000000000 +0000
> > @@ -829,7 +829,7 @@
> > struct kobj_attribute *attr,
> > const char *buf, size_t count)
> > {
> > - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT);
> > + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
> > }
> >
> > /**
> > @@ -845,7 +845,7 @@
> > struct kobj_attribute *attr,
> > const char *buf, size_t count)
> > {
> > - return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH);
> > + return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
> > }
> >
> > /**
> > @@ -1066,7 +1066,7 @@
> > }
> >
> > /* Don't forget the root entries */
> > - error = sysfs_create_group(stable_kobj, pdcs_attr_group);
> > + error = sysfs_create_group(stable_kobj, &pdcs_attr_group);
> >
> > /* register the paths kset as a child of the stable kset */
> > paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
> > === <> ===
> >
> > And the kernel build, but I don't yet try to boot it...
> >
> > Hth,
> > r.
> > ---
> > Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
> > http://www.scarlet.be/
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> -
> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
---
Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
http://www.scarlet.be/

2008-02-18 17:15:16

by Kyle McMartin

[permalink] [raw]
Subject: Re: parisc compile error

On Mon, Feb 18, 2008 at 11:32:58AM +0100, rubisher wrote:
> > On Wed, Feb 13, 2008 at 01:42:10PM +0100, rubisher wrote:
> > >
> >
> > Can I get your Signed-off-by for this, Joel? (I assume you are Joel :)
> >
> Yes the previous account seems to be a bit old and look more and more like a
> gc; I so take the opportunity of ml's change to use another pseudo ;-)
>
> That said those 2 hunks help build (even boot my 32bit up kernel on b2k and
> d380 boxes):
>

ok, good to know.

> Signed-off-by: Joel Soete <soete dot joel at scarlet dot be>
>

great, thanks!

> (any advise is welcome obviously ;-)
>

cheers, kyle