2012-05-10 21:10:22

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 0/5] PA-RISC: fix compile

Since d66acc39c7cee323733c8503b9de1821a56dff7e (bitops: Optimise get_order())
getorder.h includes log2.h which leads to an include loop on PA-RISC, bringing
a bunch of other breakage to light. This patchset fixes the compilation of the
current state of 3.4 on HPPA.

Unchanged against the first version, just added an Ack by Grant.

Rolf Eike Beer (5):
parisc: add missing includes in asm/spinlock.h
parisc: add missing forward declarations in asm/hardware.h
parisc: drop include of asm/pdc.h from asm/hardware.h
parisc: add missing include of asm/page.h to asm/pgtable.h
parisc: move definition of PAGE0 to asm/page.h

arch/parisc/include/asm/hardware.h | 3 ++-
arch/parisc/include/asm/page.h | 6 ++++++
arch/parisc/include/asm/pdc.h | 7 -------
arch/parisc/include/asm/pgtable.h | 2 ++
arch/parisc/include/asm/spinlock.h | 2 ++
arch/parisc/kernel/pdc_cons.c | 1 +
arch/parisc/kernel/time.c | 1 +
drivers/parisc/sba_iommu.c | 1 +
drivers/video/console/sticore.c | 2 ++
include/asm-generic/getorder.h | 2 +-
10 files changed, 18 insertions(+), 9 deletions(-)

--
1.7.9.2


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.

2012-05-10 21:09:57

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 4/5] parisc: add missing include of asm/page.h to asm/pgtable.h

Fixes these errors:

In file included from /home/buildbot/repos/linux/arch/parisc/include/asm/io.h:5:0,
from /home/buildbot/repos/linux/include/linux/io.h:22,
from /home/buildbot/repos/linux/include/linux/pci.h:54,
from /home/buildbot/repos/linux/arch/parisc/kernel/setup.c:35:
/home/buildbot/repos/linux/arch/parisc/include/asm/pgtable.h:92:6: warning: "PAGE_SHIFT" is not defined [-Wundef]
/home/buildbot/repos/linux/arch/parisc/include/asm/pgtable.h:92:6: warning: "PAGE_SHIFT" is not defined [-Wundef]
/home/buildbot/repos/linux/arch/parisc/include/asm/pgtable.h:92:6: warning: "BITS_PER_PTE_ENTRY" is not defined [-Wundef]

Signed-off-by: Rolf Eike Beer <[email protected]>
---
arch/parisc/include/asm/pgtable.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
index 22dadeb..ee99f23 100644
--- a/arch/parisc/include/asm/pgtable.h
+++ b/arch/parisc/include/asm/pgtable.h
@@ -44,6 +44,8 @@ struct vm_area_struct;

#endif /* !__ASSEMBLY__ */

+#include <asm/page.h>
+
#define pte_ERROR(e) \
printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
#define pmd_ERROR(e) \
--
1.7.9.2

2012-05-10 21:11:06

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 1/5] parisc: add missing includes in asm/spinlock.h

This leads to this errors:

In file included from /home/buildbot/repos/linux/arch/parisc/include/asm/atomic.h:20:0,
from /home/buildbot/repos/linux/include/linux/atomic.h:4,
from /home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h:56,
from /home/buildbot/repos/linux/include/linux/bitops.h:22,
from /home/buildbot/repos/linux/include/linux/kernel.h:19,
from /home/buildbot/repos/linux/include/linux/sched.h:55,
from /home/buildbot/repos/linux/arch/parisc/kernel/asm-offsets.c:31:
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h: In function ‘arch_spin_is_locked’:
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:9:2: error: implicit declaration of function ‘__ldcw_align’ [-Werror=implicit-function-declaration]
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:9:29: warning: initialization makes pointer from integer without a cast [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h: In function ‘arch_spin_lock_flags’:
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:22:2: error: implicit declaration of function ‘mb’ [-Werror=implicit-function-declaration]
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:23:4: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:24:2: error: implicit declaration of function ‘__ldcw’ [-Werror=implicit-function-declaration]

Signed-off-by: Rolf Eike Beer <[email protected]>
---
arch/parisc/include/asm/spinlock.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/parisc/include/asm/spinlock.h b/arch/parisc/include/asm/spinlock.h
index 804aa28..3516e0b 100644
--- a/arch/parisc/include/asm/spinlock.h
+++ b/arch/parisc/include/asm/spinlock.h
@@ -1,6 +1,8 @@
#ifndef __ASM_SPINLOCK_H
#define __ASM_SPINLOCK_H

+#include <asm/barrier.h>
+#include <asm/ldcw.h>
#include <asm/processor.h>
#include <asm/spinlock_types.h>

--
1.7.9.2

2012-05-10 21:09:56

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 5/5] parisc: move definition of PAGE0 to asm/page.h

This was defined in asm/pdc.h which needs to include asm/page.h for
__PAGE_OFFSET. This leads to an include loop so that page.h eventually will
include pdc.h again. While this is no problem because of header guards, it is
a problem because some symbols may be undefined. Such an error is this:

In file included from /home/buildbot/repos/linux/include/linux/bitops.h:35:0,
from /home/buildbot/repos/linux/include/asm-generic/getorder.h:7,
from /home/buildbot/repos/linux/arch/parisc/include/asm/page.h:162,
from /home/buildbot/repos/linux/arch/parisc/include/asm/pdc.h:346,
from /home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:16,
from /home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:6,
from /home/buildbot/repos/linux/arch/parisc/include/asm/atomic.h:20,
from /home/buildbot/repos/linux/include/linux/atomic.h:4,
from /home/buildbot/repos/linux/include/linux/sysfs.h:20,
from /home/buildbot/repos/linux/include/linux/kobject.h:21,
from /home/buildbot/repos/linux/include/linux/device.h:17,
from /home/buildbot/repos/linux/include/linux/eisa.h:5,
from /home/buildbot/repos/linux/arch/parisc/kernel/pci.c:11:
/home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h: In function ‘set_bit’:
/home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h:82:2: error: implicit declaration of function ‘_atomic_spin_lock_irqsave’ [-Werror=implicit-function-declaration]
/home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h:84:2: error: implicit declaration of function ‘_atomic_spin_unlock_irqrestore’ [-Werror=implicit-function-declaration]

Signed-off-by: Rolf Eike Beer <[email protected]>
---
arch/parisc/include/asm/page.h | 6 ++++++
arch/parisc/include/asm/pdc.h | 7 -------
arch/parisc/kernel/pdc_cons.c | 1 +
arch/parisc/kernel/time.c | 1 +
drivers/parisc/sba_iommu.c | 1 +
drivers/video/console/sticore.c | 2 ++
6 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/parisc/include/asm/page.h b/arch/parisc/include/asm/page.h
index a84cc1f..4e0e7db 100644
--- a/arch/parisc/include/asm/page.h
+++ b/arch/parisc/include/asm/page.h
@@ -160,5 +160,11 @@ extern int npmem_ranges;

#include <asm-generic/memory_model.h>
#include <asm-generic/getorder.h>
+#include <asm/pdc.h>
+
+#define PAGE0 ((struct zeropage *)__PAGE_OFFSET)
+
+/* DEFINITION OF THE ZERO-PAGE (PAG0) */
+/* based on work by Jason Eckhardt ([email protected]) */

#endif /* _PARISC_PAGE_H */
diff --git a/arch/parisc/include/asm/pdc.h b/arch/parisc/include/asm/pdc.h
index 4ca510b..7f0f2d2 100644
--- a/arch/parisc/include/asm/pdc.h
+++ b/arch/parisc/include/asm/pdc.h
@@ -343,8 +343,6 @@

#ifdef __KERNEL__

-#include <asm/page.h> /* for __PAGE_OFFSET */
-
extern int pdc_type;

/* Values for pdc_type */
@@ -677,11 +675,6 @@ static inline char * os_id_to_string(u16 os_id) {

#endif /* __KERNEL__ */

-#define PAGE0 ((struct zeropage *)__PAGE_OFFSET)
-
-/* DEFINITION OF THE ZERO-PAGE (PAG0) */
-/* based on work by Jason Eckhardt ([email protected]) */
-
/* flags of the device_path */
#define PF_AUTOBOOT 0x80
#define PF_AUTOSEARCH 0x40
diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c
index 4f00459..9bbd2a5 100644
--- a/arch/parisc/kernel/pdc_cons.c
+++ b/arch/parisc/kernel/pdc_cons.c
@@ -50,6 +50,7 @@
#include <linux/init.h>
#include <linux/major.h>
#include <linux/tty.h>
+#include <asm/page.h> /* for PAGE0 */
#include <asm/pdc.h> /* for iodc_call() proto and friends */

static DEFINE_SPINLOCK(pdc_console_lock);
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
index 7c07743..70e105d 100644
--- a/arch/parisc/kernel/time.c
+++ b/arch/parisc/kernel/time.c
@@ -29,6 +29,7 @@
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/irq.h>
+#include <asm/page.h>
#include <asm/param.h>
#include <asm/pdc.h>
#include <asm/led.h>
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index 8644d53..42cfcd9 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -44,6 +44,7 @@
#include <asm/ropes.h>
#include <asm/mckinley.h> /* for proc_mckinley_root */
#include <asm/runway.h> /* for proc_runway_root */
+#include <asm/page.h> /* for PAGE0 */
#include <asm/pdc.h> /* for PDC_MODEL_* */
#include <asm/pdcpat.h> /* for is_pdc_pat() */
#include <asm/parisc-device.h>
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c
index 6468a29..39571f9 100644
--- a/drivers/video/console/sticore.c
+++ b/drivers/video/console/sticore.c
@@ -22,7 +22,9 @@
#include <linux/font.h>

#include <asm/hardware.h>
+#include <asm/page.h>
#include <asm/parisc-device.h>
+#include <asm/pdc.h>
#include <asm/cacheflush.h>
#include <asm/grfioctl.h>

--
1.7.9.2

2012-05-10 21:11:45

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 2/5] parisc: add missing forward declarations in asm/hardware.h

Fixes this warnings:

In file included from /home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:15:0,
from /home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:4,
from /home/buildbot/repos/linux/arch/parisc/include/asm/atomic.h:20,
from /home/buildbot/repos/linux/include/linux/atomic.h:4,
from /home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h:11,
from /home/buildbot/repos/linux/include/linux/bitops.h:22,
from /home/buildbot/repos/linux/include/linux/kernel.h:19,
from /home/buildbot/repos/linux/include/linux/sched.h:55,
from /home/buildbot/repos/linux/arch/parisc/kernel/asm-offsets.c:31:
/home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:106:10: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:106:10: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:116:59: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:118:47: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]
/home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:119:57: warning: ‘struct hardware_path’ declared inside parameter list [enabled by default]

Signed-off-by: Rolf Eike Beer <[email protected]>
---
arch/parisc/include/asm/hardware.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/parisc/include/asm/hardware.h b/arch/parisc/include/asm/hardware.h
index 4e96268..036e703 100644
--- a/arch/parisc/include/asm/hardware.h
+++ b/arch/parisc/include/asm/hardware.h
@@ -95,12 +95,14 @@ struct bc_module {
#define HPHW_MC 15
#define HPHW_FAULTY 31

+struct parisc_device_id;

/* hardware.c: */
extern const char *parisc_hardware_description(struct parisc_device_id *id);
extern enum cpu_type parisc_get_cpu_type(unsigned long hversion);

struct pci_dev;
+struct hardware_path;

/* drivers.c: */
extern struct parisc_device *alloc_pa_dev(unsigned long hpa,
--
1.7.9.2

2012-05-10 21:12:02

by Rolf Eike Beer

[permalink] [raw]
Subject: [PATCH 3/5] parisc: drop include of asm/pdc.h from asm/hardware.h

It seems none of the symbols defined by pdc.h is needed, but it introduces an
include loop causing compile errors:

In file included from /home/buildbot/repos/linux/arch/parisc/include/asm/spinlock.h:4:0,
from /home/buildbot/repos/linux/arch/parisc/include/asm/atomic.h:20,
from /home/buildbot/repos/linux/include/linux/atomic.h:4,
from /home/buildbot/repos/linux/arch/parisc/include/asm/bitops.h:56,
from /home/buildbot/repos/linux/include/linux/bitops.h:35,
from /home/buildbot/repos/linux/include/asm-generic/getorder.h:7,
from /home/buildbot/repos/linux/arch/parisc/include/asm/page.h:162,
from /home/buildbot/repos/linux/arch/parisc/include/asm/pdc.h:346,
from /home/buildbot/repos/linux/arch/parisc/include/asm/hardware.h:5,
from /home/buildbot/repos/linux/arch/parisc/kernel/hardware.c:30:
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:74:16: error: field ‘cpu_type’ has incomplete type
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:77:20: error: field ‘model’ has incomplete type
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h: In function ‘parisc_requires_coherency’:
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:349:36: error: ‘mako’ undeclared (first use in this function)
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:349:36: note: each undeclared identifier is reported only once for each function it appears in
/home/buildbot/repos/linux/arch/parisc/include/asm/processor.h:350:30: error: ‘mako2’ undeclared (first use in this function)

Signed-off-by: Rolf Eike Beer <[email protected]>
Acked-by: Grant Grundler <[email protected]>
---
arch/parisc/include/asm/hardware.h | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/parisc/include/asm/hardware.h b/arch/parisc/include/asm/hardware.h
index 036e703..d1d864b 100644
--- a/arch/parisc/include/asm/hardware.h
+++ b/arch/parisc/include/asm/hardware.h
@@ -2,7 +2,6 @@
#define _PARISC_HARDWARE_H

#include <linux/mod_devicetable.h>
-#include <asm/pdc.h>

#define HWTYPE_ANY_ID PA_HWTYPE_ANY_ID
#define HVERSION_ANY_ID PA_HVERSION_ANY_ID
--
1.7.9.2

2012-05-10 22:24:00

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 0/5] PA-RISC: fix compile

On Thu, May 10, 2012 at 1:50 PM, Rolf Eike Beer <[email protected]> wrote:
>
> ?arch/parisc/include/asm/hardware.h | ? ?3 ++-
> ?arch/parisc/include/asm/page.h ? ? | ? ?6 ++++++
> ?arch/parisc/include/asm/pdc.h ? ? ?| ? ?7 -------
> ?arch/parisc/include/asm/pgtable.h ?| ? ?2 ++
> ?arch/parisc/include/asm/spinlock.h | ? ?2 ++
> ?arch/parisc/kernel/pdc_cons.c ? ? ?| ? ?1 +
> ?arch/parisc/kernel/time.c ? ? ? ? ?| ? ?1 +
> ?drivers/parisc/sba_iommu.c ? ? ? ? | ? ?1 +
> ?drivers/video/console/sticore.c ? ?| ? ?2 ++
> ?include/asm-generic/getorder.h ? ? | ? ?2 +-
> ?10 files changed, 18 insertions(+), 9 deletions(-)

The diffstat doesn't match the actual patches - there are no getorder.h changes.

Hmm?

Linus

2012-05-10 22:44:22

by Rolf Eike Beer

[permalink] [raw]
Subject: Re: [PATCH 0/5] PA-RISC: fix compile

Linus Torvalds wrote:
> On Thu, May 10, 2012 at 1:50 PM, Rolf Eike Beer <[email protected]>
wrote:
> > arch/parisc/include/asm/hardware.h | 3 ++-
> > arch/parisc/include/asm/page.h | 6 ++++++
> > arch/parisc/include/asm/pdc.h | 7 -------
> > arch/parisc/include/asm/pgtable.h | 2 ++
> > arch/parisc/include/asm/spinlock.h | 2 ++
> > arch/parisc/kernel/pdc_cons.c | 1 +
> > arch/parisc/kernel/time.c | 1 +
> > drivers/parisc/sba_iommu.c | 1 +
> > drivers/video/console/sticore.c | 2 ++
> > include/asm-generic/getorder.h | 2 +-
> > 10 files changed, 18 insertions(+), 9 deletions(-)
>
> The diffstat doesn't match the actual patches - there are no getorder.h
> changes.
>
> Hmm?

Yes, sorry. That diffstat is of the old patch series that included the
getorder.h patch I now sent to you seperately as it doesn't have to do with
the compile breakage itself.

Eike


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.