Message ID | 1424621346-7822-1-git-send-email-vincent.stehle@laposte.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Vincent, Thank you for the patch. On Sunday 22 February 2015 17:09:06 Vincent Stehlé wrote: > LPAE iommu page table makes sense only for ARM architecture. Add the > corresponding dependency in Kconfig. > > This fixes the following runtime warnings on PA-RISC architecture: I suppose this is caused by the selftest code ? > WARNING: at drivers/iommu/io-pgtable-arm.c:413 > Modules linked in: > CPU: 0 PID: 1 Comm: swapper/0 Not tainted > 3.19.0-next-20150222-00002-gc420256 #2 task: 17ca0000 ti: 17ca8000 task.ti: > 17ca8000 > > YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI > PSW: 00000000000001001111111100001111 Not tainted > r00-03 0004ff0f 0000001b 104871b0 17ca83c0 > r04-07 00001000 00000000 00000000 00000000 > r08-11 00000000 40001000 1013b36c 17ca8248 > r12-15 00000080 17e712c0 00000000 17c5e100 > r16-19 0000000c 105d8eb0 40001000 ffffffff > r20-23 00000000 00800020 1048717c 00000000 > r24-27 00001000 00000000 00000009 10774ce0 > r28-31 00000000 00000027 17ca8480 10486d44 > sr00-03 00000000 00000000 00000000 00000000 > sr04-07 00000000 00000000 00000000 00000000 > > IASQ: 00000000 00000000 IAOQ: 10486df4 10486df8 > IIR: 03ffe01f ISR: 00000000 IOR: 17c86e54 > CPU: 0 CR30: 17ca8000 CR31: 00000002 > ORIG_R28: 00000001 > IAOQ[0]: __arm_lpae_unmap+0x144/0x4cc > IAOQ[1]: __arm_lpae_unmap+0x148/0x4cc > RP(r2): arm_lpae_unmap+0x34/0x6c > Backtrace: > [<104871b0>] arm_lpae_unmap+0x34/0x6c > [<10127944>] 0x10127944 > [<10168ee0>] do_one_initcall+0x128/0x1dc > [<101028fc>] 0x101028fc > [<10161b48>] kernel_init+0x1c/0x118 > [<1015d01c>] end_fault_vector+0x1c/0x24 > [<101762ec>] save_stack_trace+0x28/0x60 > > Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Will Deacon <will.deacon@arm.com> > --- > > > Hi, > > This can be seen with e.g. Linux next-20150222 on parisc with allmodconfig. > > Best regards, > > V. > > > drivers/iommu/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig > index baa0d97..c73fd72 100644 > --- a/drivers/iommu/Kconfig > +++ b/drivers/iommu/Kconfig > @@ -22,6 +22,7 @@ config IOMMU_IO_PGTABLE > > config IOMMU_IO_PGTABLE_LPAE > bool "ARMv7/v8 Long Descriptor Format" > + depends on ARM How about ARM || COMPILE_TEST ? It can still be useful to compile the module on other architectures. > select IOMMU_IO_PGTABLE > help > Enable support for the ARM long descriptor pagetable format.
On 02/23/2015 05:52 PM, Laurent Pinchart wrote: (runtime warning) > I suppose this is caused by the selftest code ? Hi Laurent, Thanks for your feedback. You are right, this is the selftest code. Here are the traces just before the first warnings: arm-lpae io-pgtable: selftest: pgsize_bitmap 0x40201000, IAS 32^M arm-lpae io-pgtable: selftest: pgsize_bitmap 0x40201000, IAS 36^M arm-lpae io-pgtable: selftest: pgsize_bitmap 0x40201000, IAS 40^M There are a number of failed selftests and warnings, and in the end the PA-RISC machine won't boot. .. > How about ARM || COMPILE_TEST ? It can still be useful to compile the module > on other architectures. I think you are right and this is how it should be; thank you for the tips, I did not know about COMPILE_TEST. I'll resend a patch v2 right away. Best regards, V.
On Mon, Feb 23, 2015 at 5:52 PM, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > On Sunday 22 February 2015 17:09:06 Vincent Stehlé wrote: >> LPAE iommu page table makes sense only for ARM architecture. Add the >> corresponding dependency in Kconfig. >> >> This fixes the following runtime warnings on PA-RISC architecture: > > I suppose this is caused by the selftest code ? > >> WARNING: at drivers/iommu/io-pgtable-arm.c:413 >> Modules linked in: >> CPU: 0 PID: 1 Comm: swapper/0 Not tainted >> 3.19.0-next-20150222-00002-gc420256 #2 task: 17ca0000 ti: 17ca8000 task.ti: >> 17ca8000 >> >> YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI >> PSW: 00000000000001001111111100001111 Not tainted >> r00-03 0004ff0f 0000001b 104871b0 17ca83c0 >> r04-07 00001000 00000000 00000000 00000000 >> r08-11 00000000 40001000 1013b36c 17ca8248 >> r12-15 00000080 17e712c0 00000000 17c5e100 >> r16-19 0000000c 105d8eb0 40001000 ffffffff >> r20-23 00000000 00800020 1048717c 00000000 >> r24-27 00001000 00000000 00000009 10774ce0 >> r28-31 00000000 00000027 17ca8480 10486d44 >> sr00-03 00000000 00000000 00000000 00000000 >> sr04-07 00000000 00000000 00000000 00000000 >> >> IASQ: 00000000 00000000 IAOQ: 10486df4 10486df8 >> IIR: 03ffe01f ISR: 00000000 IOR: 17c86e54 >> CPU: 0 CR30: 17ca8000 CR31: 00000002 >> ORIG_R28: 00000001 >> IAOQ[0]: __arm_lpae_unmap+0x144/0x4cc >> IAOQ[1]: __arm_lpae_unmap+0x148/0x4cc >> RP(r2): arm_lpae_unmap+0x34/0x6c >> Backtrace: >> [<104871b0>] arm_lpae_unmap+0x34/0x6c >> [<10127944>] 0x10127944 >> [<10168ee0>] do_one_initcall+0x128/0x1dc >> [<101028fc>] 0x101028fc >> [<10161b48>] kernel_init+0x1c/0x118 >> [<1015d01c>] end_fault_vector+0x1c/0x24 >> [<101762ec>] save_stack_trace+0x28/0x60 >> >> Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> >> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> >> Cc: Will Deacon <will.deacon@arm.com> >> --- >> >> >> Hi, >> >> This can be seen with e.g. Linux next-20150222 on parisc with allmodconfig. >> >> Best regards, >> >> V. >> >> >> drivers/iommu/Kconfig | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig >> index baa0d97..c73fd72 100644 >> --- a/drivers/iommu/Kconfig >> +++ b/drivers/iommu/Kconfig >> @@ -22,6 +22,7 @@ config IOMMU_IO_PGTABLE >> >> config IOMMU_IO_PGTABLE_LPAE >> bool "ARMv7/v8 Long Descriptor Format" >> + depends on ARM > > How about ARM || COMPILE_TEST ? It can still be useful to compile the module > on other architectures. COMPILE_TEST is meant for test-compiling drivers or subsystems that are not useful on all platforms. IMHO COMPILE_TEST kernels are still supposed to boot without ill effects. Now, I understand the issue on PA-RISC is with the selftest, not with the actual IOMMU_IO_PGTABLE_LPAE module? Then IOMMU_IO_PGTABLE_LPAE can depend on ARM || COMPILE_TEST (|| ARM64, cfr. Laurent's later email). But the selftest should protect itself against running on non-ARM, either by making IOMMU_IO_PGTABLE_LPAE_SELFTEST depend on ARM(64) (without "|| COMPILE_TEST"), or by adding a check to arm_lpae_do_selftests(), to please all compile-testers. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Tue, Feb 24, 2015 at 10:33:02AM +0000, Geert Uytterhoeven wrote: > On Mon, Feb 23, 2015 at 5:52 PM, Laurent Pinchart > <laurent.pinchart@ideasonboard.com> wrote: > > On Sunday 22 February 2015 17:09:06 Vincent Stehlé wrote: > >> LPAE iommu page table makes sense only for ARM architecture. Add the > >> corresponding dependency in Kconfig. > >> > >> This fixes the following runtime warnings on PA-RISC architecture: > > > > I suppose this is caused by the selftest code ? > > > >> WARNING: at drivers/iommu/io-pgtable-arm.c:413 > >> Modules linked in: > >> CPU: 0 PID: 1 Comm: swapper/0 Not tainted > >> 3.19.0-next-20150222-00002-gc420256 #2 task: 17ca0000 ti: 17ca8000 task.ti: > >> 17ca8000 > >> > >> YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI > >> PSW: 00000000000001001111111100001111 Not tainted > >> r00-03 0004ff0f 0000001b 104871b0 17ca83c0 > >> r04-07 00001000 00000000 00000000 00000000 > >> r08-11 00000000 40001000 1013b36c 17ca8248 > >> r12-15 00000080 17e712c0 00000000 17c5e100 > >> r16-19 0000000c 105d8eb0 40001000 ffffffff > >> r20-23 00000000 00800020 1048717c 00000000 > >> r24-27 00001000 00000000 00000009 10774ce0 > >> r28-31 00000000 00000027 17ca8480 10486d44 > >> sr00-03 00000000 00000000 00000000 00000000 > >> sr04-07 00000000 00000000 00000000 00000000 > >> > >> IASQ: 00000000 00000000 IAOQ: 10486df4 10486df8 > >> IIR: 03ffe01f ISR: 00000000 IOR: 17c86e54 > >> CPU: 0 CR30: 17ca8000 CR31: 00000002 > >> ORIG_R28: 00000001 > >> IAOQ[0]: __arm_lpae_unmap+0x144/0x4cc > >> IAOQ[1]: __arm_lpae_unmap+0x148/0x4cc > >> RP(r2): arm_lpae_unmap+0x34/0x6c > >> Backtrace: > >> [<104871b0>] arm_lpae_unmap+0x34/0x6c > >> [<10127944>] 0x10127944 > >> [<10168ee0>] do_one_initcall+0x128/0x1dc > >> [<101028fc>] 0x101028fc > >> [<10161b48>] kernel_init+0x1c/0x118 > >> [<1015d01c>] end_fault_vector+0x1c/0x24 > >> [<101762ec>] save_stack_trace+0x28/0x60 > >> > >> Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> > >> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > >> Cc: Will Deacon <will.deacon@arm.com> > >> --- > >> > >> > >> Hi, > >> > >> This can be seen with e.g. Linux next-20150222 on parisc with allmodconfig. > >> > >> Best regards, > >> > >> V. > >> > >> > >> drivers/iommu/Kconfig | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig > >> index baa0d97..c73fd72 100644 > >> --- a/drivers/iommu/Kconfig > >> +++ b/drivers/iommu/Kconfig > >> @@ -22,6 +22,7 @@ config IOMMU_IO_PGTABLE > >> > >> config IOMMU_IO_PGTABLE_LPAE > >> bool "ARMv7/v8 Long Descriptor Format" > >> + depends on ARM > > > > How about ARM || COMPILE_TEST ? It can still be useful to compile the module > > on other architectures. > > COMPILE_TEST is meant for test-compiling drivers or subsystems that are not > useful on all platforms. IMHO COMPILE_TEST kernels are still supposed to boot > without ill effects. > > Now, I understand the issue on PA-RISC is with the selftest, not with the actual > IOMMU_IO_PGTABLE_LPAE module? Then IOMMU_IO_PGTABLE_LPAE > can depend on ARM || COMPILE_TEST (|| ARM64, cfr. Laurent's later email). > > But the selftest should protect itself against running on non-ARM, either > by making IOMMU_IO_PGTABLE_LPAE_SELFTEST depend on ARM(64) > (without "|| COMPILE_TEST"), or by adding a check to arm_lpae_do_selftests(), > to please all compile-testers. Perhaps, but actually the issues reported by the self-test are *real* bugs that I've now got fixes for. They just don't show up on arm platforms because of different right shift behaviour. Will
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index baa0d97..c73fd72 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -22,6 +22,7 @@ config IOMMU_IO_PGTABLE config IOMMU_IO_PGTABLE_LPAE bool "ARMv7/v8 Long Descriptor Format" + depends on ARM select IOMMU_IO_PGTABLE help Enable support for the ARM long descriptor pagetable format.
LPAE iommu page table makes sense only for ARM architecture. Add the corresponding dependency in Kconfig. This fixes the following runtime warnings on PA-RISC architecture: WARNING: at drivers/iommu/io-pgtable-arm.c:413 Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-next-20150222-00002-gc420256 #2 task: 17ca0000 ti: 17ca8000 task.ti: 17ca8000 YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI PSW: 00000000000001001111111100001111 Not tainted r00-03 0004ff0f 0000001b 104871b0 17ca83c0 r04-07 00001000 00000000 00000000 00000000 r08-11 00000000 40001000 1013b36c 17ca8248 r12-15 00000080 17e712c0 00000000 17c5e100 r16-19 0000000c 105d8eb0 40001000 ffffffff r20-23 00000000 00800020 1048717c 00000000 r24-27 00001000 00000000 00000009 10774ce0 r28-31 00000000 00000027 17ca8480 10486d44 sr00-03 00000000 00000000 00000000 00000000 sr04-07 00000000 00000000 00000000 00000000 IASQ: 00000000 00000000 IAOQ: 10486df4 10486df8 IIR: 03ffe01f ISR: 00000000 IOR: 17c86e54 CPU: 0 CR30: 17ca8000 CR31: 00000002 ORIG_R28: 00000001 IAOQ[0]: __arm_lpae_unmap+0x144/0x4cc IAOQ[1]: __arm_lpae_unmap+0x148/0x4cc RP(r2): arm_lpae_unmap+0x34/0x6c Backtrace: [<104871b0>] arm_lpae_unmap+0x34/0x6c [<10127944>] 0x10127944 [<10168ee0>] do_one_initcall+0x128/0x1dc [<101028fc>] 0x101028fc [<10161b48>] kernel_init+0x1c/0x118 [<1015d01c>] end_fault_vector+0x1c/0x24 [<101762ec>] save_stack_trace+0x28/0x60 Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Will Deacon <will.deacon@arm.com> --- Hi, This can be seen with e.g. Linux next-20150222 on parisc with allmodconfig. Best regards, V. drivers/iommu/Kconfig | 1 + 1 file changed, 1 insertion(+)