Re: linux-3.10+: unable to boot 31bit builds

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

 



On Wed 22 Jan 2014 08:55:36 Heiko Carstens wrote:
> On Tue, Jan 21, 2014 at 12:58:36PM +0100, Heiko Carstens wrote:
> > On Tue, Jan 21, 2014 at 12:22:52PM +0100, Heiko Carstens wrote:
> > > On Tue, Jan 21, 2014 at 04:57:39AM -0500, Mike Frysinger wrote:
> > > > hmm, doesn't seem to work for me.  don't get a crash, just a "virtual
> > > > machine is placed in CP mode due to a SIGP initial C".  whatever that
> > > > means :).> > 
> > > Ah, that probably happened because the kernel failed to mount the
> > > root file system and killed all CPUs before printing a nice error
> > > message.
> > 
> > Ok, that's not correct. Just bisected it down to:
> > 
> > commit 14556b33f2a5d6a3bc75cd33b709452a31555b25
> > Author: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx>
> > Date:   Sat Apr 13 13:03:54 2013 +0200
> > 
> >     s390/css: introduce cio_register_early_subchannels
> >     
> >     Use cio_register_early_subchannels to register early subchannels
> >     which are already in use. Call this function before we do the
> >     actual subchannel scanning loop. This helps us to get rid of some
> >     more special cases regarding the console subchannel.
> >     
> >     Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxxxxxxx>
> >     Signed-off-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx>
> >     Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> > 
> > For some non-obvious reason this kills 31 bit with your config under z/VM.
> 
> The patch below fixes this for me...
> The difference for 64 vs 32 bit was probably that even if cdev->drv was a
> NULL pointer, dereferencing cdev->drv->path_event was also NULL by
> coincidence. While on 32 bit it is not NULL and the kernel jumped to
> somehere...
> 
> With all three patches within this thread s390 with CONFIG_64BIT=n ipl's
> again, and the 32 bit native statfs64 syscall works as well.
> 
> However I would strongly suggest to use CONFIG_64BIT=y with CONFIG_COMPAT=y
> instead for (now) obvious reasons ;)
> 
> diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
> index c7638c543250..b19ab38a5e9a 100644
> --- a/drivers/s390/cio/device_fsm.c
> +++ b/drivers/s390/cio/device_fsm.c
> @@ -484,7 +484,7 @@ static void ccw_device_report_path_events(struct
> ccw_device *cdev) if (mask & cdev->private->pgid_reset_mask & sch->vpm)
>  			path_event[chp] |= PE_PATHGROUP_ESTABLISHED;
>  	}
> -	if (cdev->online && cdev->drv->path_event)
> +	if (cdev->online && cdev->drv && cdev->drv->path_event)
>  		cdev->drv->path_event(cdev, path_event);
>  }

looks like this patch was dropped somewhere ?  i had to re-apply it to my 3.14 
build to get it to boot ...
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux