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); } -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html