From: Larry Finger <Larry.Finger@lwfinger.net>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: LKML <linux-kernel@vger.kernel.org>,
Thorsten Leemhuis <regressions@leemhuis.info>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3
Date: Sat, 24 Jun 2017 12:29:23 -0500 [thread overview]
Message-ID: <3e093314-5148-2e14-33a9-e5d67bd2e7cf@lwfinger.net> (raw)
In-Reply-To: <20170623202943.GS10672@ZenIV.linux.org.uk>
On 06/23/2017 03:29 PM, Al Viro wrote:
> On Fri, Jun 23, 2017 at 01:49:16PM -0500, Larry Finger wrote:
>
>>> BTW, could you try to check what happens if you kill the
>>> if (__builtin_constant_p(n) && (n <= 8))
>>> bits in raw_copy_{to,from}_user()? The usefulness of those (in __copy_from_user()
>>> originally) had always been dubious and the things are simpler without them.
>>> If _that_ turns out to cure breakage, I would be very surprised, though.
>>>
>> Sorry I was gone so long. Installing jessie on this box resulted in a crash
>> on boot. Lubuntu 14.04 yielded a desktop with a functioning cursor, but
>> nothing else. Finally, Ubuntu 12.04 resulted in a working system. I hate
>> Unity, but I guess I'm stuck for now.
>
> Ho-hum... Jessie is 3.16, so whatever is crashing there, it's something
> different... Ubuntu 12.04 is what, 3.2?
>
>> I know how easy it is to screw up a long bisection by booting the wrong
>> kernel. To help that problem and to work around the yaconf/yboot nonsense on
>> the MAC, my /etc/yaconf has always had generic kernel stanzas with only
>> default, old, and original kernels mentioned. From there I use a local
>> script to finish a kernel installation by moving the default links to the
>> old ones and creating the new default links pointing to the current kernel.
>> With those long-tested scripts, I'm sure that I am booting the one I want.
>>
>> With the new installation, kernel 4.12-rc6 failed, as did 3448890c with the
>> backported 46f401c4 added.
>>
>> Replacing "if (__builtin_constant_p(n) && (n <= 8))" with "if (0)" had no effect.
>
> OK, that simplifies things a bit. Just to make sure we are on the same page:
>
> * f2ed8bebee69 + cherry-pick of 46f401c4 boots (Ubuntu 12.04 userland)
> * 3448890c32c3 + cherry-pick of 46f401c4 fails (Ubuntu 12.04 userland), ditto
> with removal of constant-size bits in raw_copy_..._user(). Failure appears
> to be on udev getting EFAULT on some syscalls.
> * straight Ubuntu 12.04 works
> * jessie crashes on boot.
I made a break through. If I turn off inline copy to/from users for 32-bit ppc
with the following patch, then the system boots:
diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
index 5c0d8a8cdae5..1e6a8723f497 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -267,12 +267,7 @@ do {
\
extern unsigned long __copy_tofrom_user(void __user *to,
const void __user *from, unsigned long size);
-#ifndef __powerpc64__
-
-#define INLINE_COPY_FROM_USER
-#define INLINE_COPY_TO_USE
-
-#else /* __powerpc64__ */
+#ifdef __powerpc64__
static inline unsigned long
raw_copy_in_user(void __user *to, const void __user *from, unsigned long n)
It seems whatever problem I am seeing is in the inline version of
_copy_to_user() and _copy_from_user() on the 32-bit ppc. The only other
difference between the two versions is the placement of the __user macro, which
looks to be wrong in the non-inlined version of _copy_to_user() in
lib/usercopy.c, but that is the one that works.
To me, this looks like a compiler error. On the PowerBook, 'gcc --version'
reports "gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".
I will prepare a proper patch that I will send to you privately. If you agree
with it, it can be send through normal channels in time for the release of 4.12.
Larry
next prev parent reply other threads:[~2017-06-24 17:29 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-01 16:39 Regression in kernel 4.12-rc1 for Powerpc 32 - partially bisected Larry Finger
2017-06-21 15:10 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Larry Finger
2017-06-21 21:22 ` Al Viro
2017-06-21 21:31 ` Larry Finger
2017-06-21 21:34 ` Al Viro
2017-06-21 21:49 ` Larry Finger
2017-06-22 14:12 ` Al Viro
2017-06-22 14:19 ` Larry Finger
2017-06-22 19:25 ` Al Viro
2017-06-22 21:41 ` Al Viro
2017-06-23 18:49 ` Larry Finger
2017-06-23 20:29 ` Al Viro
2017-06-24 17:29 ` Larry Finger [this message]
2017-06-25 9:53 ` Al Viro
2017-06-25 11:14 ` Al Viro
2017-06-25 20:53 ` gcc 4.6.3 miscompile on ppc32 (was Re: Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3) Al Viro
2017-06-25 21:44 ` Segher Boessenkool
2017-06-25 22:21 ` Al Viro
2017-06-26 13:37 ` Michael Ellerman
2017-06-26 13:40 ` Regression in kernel 4.12-rc1 for Powerpc 32 - bisected to commit 3448890c32c3 Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3e093314-5148-2e14-33a9-e5d67bd2e7cf@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=regressions@leemhuis.info \
--cc=viro@ZenIV.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®