Re: broken dpt_i2o in 2.6.23 (was: ext2 check page: bad entry in directory) (fwd)

Andrew Morton
2007-12-12T19:17:15Z

On Wed, 12 Dec 2007 14:43:42 +0100 Anders Henke <anders.henke@1und1.de> wrote:

> Am 12.12.2007 schrieb Miquel van Smoorenburg:
> > On Wed, 2007-12-12 at 03:38 -0800, Andrew Morton wrote:
> > > On Wed, 12 Dec 2007 11:58:41 +0100 Anders Henke <anders.henke@1und1.de> wrote:
> > >
> > > > Hi,
> > > >
> > > > I'd like to let you now that my boxes are running a 32-bit kernel, so
> > > > the 64-bit-uncleanliness shouldn't apply to my boxes; however,
> > > >
> > > > http://www.miquels.cistron.nl/linux/dpt_i2o-64bit-2.6.23.patch
> > > >
> > > > fixed the issue on my testbox.
> > > >
> > > > I took a clean 2.6.23, applied patch, recompiled the kernel, reboot: works.
> > >
> > > What a huge patch :(
> > >
> > > We already reverted the offening patch so I assume that 2.6.24-rc5 is
> > > working for you?
> > >
> > > I guess we need to look at restoring "dpt_i2o: convert to SCSI hotplug
> > > model" and then absorbing what Miquel has done there.
> >
> > This was just a patch I had lying around, if it worked it would confirm
> > my suspicion, which it has.
> >
> > The minimal patch which is suitable for 2.6.23-stable and 2.6.24 would
> > be the attached one-liner. The "dpt_i2o: convert to SCSI hotplug model"
> > patch could be restored then.
> >
> > (if the list eats the attachment, it's also available here:
> > http://www.miquels.cistron.nl/linux/linux-2.6.23+24-dpt_i2o-dma64.patch
> > )
> >
> > Anders, does this one-liner patch work for you ?
>
> Got it - and it works!
>
> I took a clean 2.6.23, applied the patch, recompiled the kernel and
> rebooted my testbox: came up with the fresh-compiled kernel
> (verified by "uname -a").
>

That looks appropriate for 2.6.23.x:

--- linux-2.6.23.9.orig/drivers/scsi/dpt_i2o.c 2007-11-26 18:51:43.000000000 +0100
+++ linux-2.6.23.9/drivers/scsi/dpt_i2o.c 2007-12-12 13:21:05.000000000 +0100
@@ -905,8 +905,7 @@
}

pci_set_master(pDev);
- if (pci_set_dma_mask(pDev, DMA_64BIT_MASK) &&
- pci_set_dma_mask(pDev, DMA_32BIT_MASK))
+ if (pci_set_dma_mask(pDev, DMA_32BIT_MASK))
return -EINVAL;

base_addr0_phys = pci_resource_start(pDev,0);

However it is a bit mystifying that
55d9fcf57ba5ec427544fca7abc335cf3da78160 would cause a dma mask problem
(isn't it?)

The scsi people might want to restore
55d9fcf57ba5ec427544fca7abc335cf3da78160 and then apply Miquel's patch on
top for 2.6.24, or do it for 2.6.25?