[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: