Bug#758115: Disabled wait state X'32EE' on IPL of zIPL
On Sun, Aug 24, 2014 at 08:05:45PM +0200, Bastian Blank wrote:
> On Fri, Aug 22, 2014 at 07:21:31PM -0400, Stephen Powell wrote:
> > 32ea: a7 f4 00 01 j 32ec <sclp_wait_for_int+0x84>
> > 32ee: 07 07 nopr %r7
> gcc 4.9 decides that this must never happen and adds a trap in this
> location, so this a is deliberate way to stop the process.
I found the culprit: The tree-isolate-paths pass in gcc 4.9. If I
disable this pass I get:
static inline int wait(void)
{
do {
load_wait_psw(0x0102000180000000ULL, &S390_lowcore.external_new_psw);
32d6: e3 20 d0 00 00 04 lg %r2,0(%r13)
32dc: a7 39 01 b0 lghi %r3,432
32e0: c0 e5 ff ff fb b8 brasl %r14,2a50 <load_wait_psw>
if (S390_lowcore.ext_int_code == 0x1004U)
32e6: 48 10 00 86 lh %r1,134
32ea: bd 13 d0 0a clm %r1,3,10(%r13)
32ee: a7 84 00 0c je 3306 <sclp_wait_for_int+0x9e>
return ETIMEOUT;
} while (S390_lowcore.ext_int_code != 0x2401U);
32f2: 48 10 00 86 lh %r1,134
32f6: bd 13 d0 08 clm %r1,3,8(%r13)
32fa: a7 74 ff ee jne 32d6 <sclp_wait_for_int+0x6e>
return 0;
32fe: a7 28 00 00 lhi %r2,0
3302: a7 f4 00 04 j 330a <sclp_wait_for_int+0xa2>
This pass seems to declare the null-pointer-access as invalid.
Bastian
--
In the strict scientific sense we all feed on death -- even vegetarians.
-- Spock, "Wolf in the Fold", stardate 3615.4
Reply to: