[lkml]   [2008]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [BUG] unable to handle kernel paging request in next-20080516
    On Fri, 2008-05-23 at 20:34 +0100, Sitsofe Wheeler wrote:
    > <posted & mailed>
    > James Bottomley wrote:
    > > Actually, I think this is a very subtle bug; what I think is happening
    > > is that after Hannes sysfs changes, we now add scsi_bus_type to the
    > > target device. However, scsi_bus_uevent() unconditionally casts from
    > > dev to a struct scsi_device and then looks at the type entry. My theory
    > > is that in this particular config going from struct scsi_target to
    > > struct device and back to struct scsi_device actually tips us over into
    > > unmapped space for the -> type deref.
    > >
    > > Hopefully this should fix it by checking the device type before doing
    > > the deref.
    > This fixed the problem for me (it was horribly intermittant but I've done
    > 10+ consecutive reboots without seeing an oopos). I changed the patch to
    > printk everytime the condition was hit and it seems to happen twice per
    > PATA device - once after each scsi?: pata_via message and then again after
    > each scsi 0:0:0:0: Direct-Accesss ATA DISKID etc : 0 ANSI: 5 .
    > The thing I don't understand about your explanation is that it sounds like
    > the device struct is being round-tripped (but is just being cast to
    > different things along the way). If this is the case why would this problem
    > ever arise? Surely if it is really a struct scsi_device underneath there
    > should be no problem?

    The event is called for all generic device objects belonging to the
    scsi_bus_type. That means both struct scsi_device and struct
    scsi_target objects. When it's called for struct scsi_target objects,
    casting out to struct scsi_device does the wrong thing.


     \ /
      Last update: 2008-05-23 22:29    [W:0.032 / U:2.720 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site