Re: stable-3.0: s390 build breakage [was: Linux 3.0.24]

From: Jiri Slaby
Date: Fri Mar 16 2012 - 08:52:32 EST


On 03/15/2012 05:51 PM, Jiri Slaby wrote:
> On 03/15/2012 05:49 PM, Willy Tarreau wrote:
>> On Thu, Mar 15, 2012 at 09:46:24AM -0700, Greg KH wrote:
>>> On Thu, Mar 15, 2012 at 05:27:26PM +0100, Jiri Slaby wrote:
>>>> On 03/15/2012 11:48 AM, Jiri Slaby wrote:
>>>>> On 03/12/2012 09:34 PM, Greg KH wrote:
>>>>>> I'm announcing the release of the 3.0.24 kernel.
>>>>> ...
>>>>>> Heiko Carstens (1): compat: fix compile breakage on s390
>>>>>
>>>>> It looks like we need the same fix as for 2.6.32.59:
>>>>> arch/s390/kernel/setup.c: In function 'setup_addressing_mode':
>>>>> arch/s390/kernel/setup.c:328: error: 'PSW32_ASC_PRIMARY' undeclared
>>>>> (first use in this function)
>>>>> arch/s390/kernel/setup.c:328: error: (Each undeclared identifier is
>>>>> reported only once
>>>>> arch/s390/kernel/setup.c:328: error: for each function it appears in.)
>>>>
>>>> And when that one is fixed, there is another error:
>>>> drivers/s390/char/fs3270.c: In function 'fs3270_ioctl':
>>>> drivers/s390/char/fs3270.c:335: error: implicit declaration of function
>>>> 'compat_ptr'
>>>> drivers/s390/char/fs3270.c:335: warning: assignment makes pointer from
>>>> integer without a cast
>>>
>>> Ick, have a patch for this?
>>
>> This one is declared in arch/s390/include/asm/compat.h:
>>
>> static inline void __user *compat_ptr(compat_uptr_t uptr)
>> {
>> return (void __user *)(unsigned long)(uptr & 0x7fffffffUL);
>> }
>>
>> In 2.6.32, fs3270.c include linux/compat.h. In 3.0 it includes asm/compat.h
>> instead. I would have thought the later would have been enough.
>
> But it was changed to linux/compat.h in 3.0.24 -- that's why it doesn't
> build. So the same fix as for setup.c should help here.

It is attached. With that patch (and the previous one), s390 builds fine
now.

thanks,
--
js
From: Jiri Slaby <jslaby@xxxxxxx>
Date: Mon, 5 Mar 2012 14:06:38 +0100
Subject: compat: Re-add missing asm/compat.h include to fix compile breakage on s390

For 3.0 stable kernel the backport of 048cd4e51d24ebf7f3552226d03c769d6ad91658
"compat: fix compile breakage on s390" breaks compilation...

Re-add a single #include <asm/compat.h> in order to fix this.

This patch is _not_ necessary for upstream, only for stable kernels
which include the "build fix" mentioned above.

One fix for arch/s390/kernel/setup.c was already sent and applied. But
we need a similar patch for drivers/s390/char/fs3270.c.

Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
---
drivers/s390/char/fs3270.c | 1 +
2 files changed, 2 insertions(+)

--- a/drivers/s390/char/fs3270.c
+++ b/drivers/s390/char/fs3270.c
@@ -16,6 +16,7 @@
#include <linux/types.h>
#include <linux/compat.h>

+#include <asm/compat.h>
#include <asm/ccwdev.h>
#include <asm/cio.h>
#include <asm/ebcdic.h>