2002-07-09 14:43:52

by Holzrichter, Bruce

[permalink] [raw]
Subject: (RE: using 2.5.25 with IDE) On sparc64.....

>
> Contrary to the popular belief 2.5.25 has only Martin's IDE-93
> and has broken locking...
>
> If you want to run IDE on 2.5.25 get and apply:

I am running a Sparc64 Ultra5 with IDE [insert flame here] which uses a
CMD646 PCI controller, and since at least 2.5.20 it has not booted. I
currently run 2.5.13, which boots and runs fine, and all is well with 2.4
series.

I have tried current bk, with IDE 94,95, and 96 applied with the same
result, all hang after printing the partition list of the hard drive.

I most recently tried Jen's 2.4 forward port, with about the same result,
though the following errors were printed before the kernel hung. (BTW,
Jen's a modified asm-sparc64/ide.h is below if you want to keep with your
2.4 port)

I am running in PIO mode, and saw that may be broken? And I realize that
there is probably not much interest/need for IDE to get working on this yet,
but I am wondering if you can point to some ideas to help me along with
figuring out what's going on. I am going to insert some printk's to see if
I can narrow down where I am hanging at, and if you have any thoughts on
where's the best place to look, I'd be most appreciative.

Thanks
Bruce H.

Patch below to get 2.4 forward port of IDE to compile on Sparc64...
--- linus-2.5/include/asm-sparc64/ide.h Tue Jul 9 08:53:10 2002
+++ sparctest/include/asm-sparc64/ide.h Tue Jul 9 09:11:24 2002
@@ -64,7 +64,11 @@
for (index = 0; index < MAX_HWIFS; index++) {
ide_init_hwif_ports(&hw, ide_default_io_base(index), 0,
NULL);
hw.irq = ide_default_irq(ide_default_io_base(index));
+#if defined(CONFIG_IDE_25)
ide_register_hw(&hw);
+#elif defined(CONFIG_IDE_24)
+ ide_register_hw(&hw, NULL);
+#endif
}
#endif
}
@@ -178,6 +182,20 @@
#endif
}

+#define ide_request_irq(irq,hand,flg,dev,id)
request_irq((irq),(hand),(flg),(dev),(id))
+#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
+#define ide_check_region(from,extent) check_region((from),
(extent))
+#define ide_request_region(from,extent,name) request_region((from),
(extent), (name))
+#define ide_release_region(from,extent)
release_region((from), (extent))
+
+/*
+ * The following are not needed for the non-m68k ports
+ */
+#define ide_ack_intr(hwif) (1)
+#define ide_fix_driveid(id) do {} while (0)
+#define ide_release_lock(lock) do {} while (0)
+#define ide_get_lock(lock, hdlr, data) do {} while (0)
+
#endif /* __KERNEL__ */

#endif /* _SPARC64_IDE_H */


2002-07-10 10:48:05

by Richard Zidlicky

[permalink] [raw]
Subject: Re: (RE: using 2.5.25 with IDE) On sparc64.....

On Tue, Jul 09, 2002 at 09:46:10AM -0500, Holzrichter, Bruce wrote:

> Patch below to get 2.4 forward port of IDE to compile on Sparc64...
> --- linus-2.5/include/asm-sparc64/ide.h Tue Jul 9 08:53:10 2002
> +++ sparctest/include/asm-sparc64/ide.h Tue Jul 9 09:11:24 2002


> @@ -178,6 +182,20 @@
> #endif
> }
>
> +#define ide_request_irq(irq,hand,flg,dev,id)
> request_irq((irq),(hand),(flg),(dev),(id))
> +#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
> +#define ide_check_region(from,extent) check_region((from),
> (extent))
> +#define ide_request_region(from,extent,name) request_region((from),
> (extent), (name))
> +#define ide_release_region(from,extent)
> release_region((from), (extent))
> +
> +/*
> + * The following are not needed for the non-m68k ports
> + */
> +#define ide_ack_intr(hwif) (1)
> +#define ide_fix_driveid(id) do {} while (0)
^^^^^^^^^^^^^^^

the comment is misleading, this is actually needed on more than m68k
so not a big surprise it doesn't work. Cut&paste from 2.4.

Richard

2002-07-10 10:58:38

by Jens Axboe

[permalink] [raw]
Subject: Re: (RE: using 2.5.25 with IDE) On sparc64.....

On Wed, Jul 10 2002, Richard Zidlicky wrote:
> On Tue, Jul 09, 2002 at 09:46:10AM -0500, Holzrichter, Bruce wrote:
>
> > Patch below to get 2.4 forward port of IDE to compile on Sparc64...
> > --- linus-2.5/include/asm-sparc64/ide.h Tue Jul 9 08:53:10 2002
> > +++ sparctest/include/asm-sparc64/ide.h Tue Jul 9 09:11:24 2002
>
>
> > @@ -178,6 +182,20 @@
> > #endif
> > }
> >
> > +#define ide_request_irq(irq,hand,flg,dev,id)
> > request_irq((irq),(hand),(flg),(dev),(id))
> > +#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
> > +#define ide_check_region(from,extent) check_region((from),
> > (extent))
> > +#define ide_request_region(from,extent,name) request_region((from),
> > (extent), (name))
> > +#define ide_release_region(from,extent)
> > release_region((from), (extent))
> > +
> > +/*
> > + * The following are not needed for the non-m68k ports
> > + */
> > +#define ide_ack_intr(hwif) (1)
> > +#define ide_fix_driveid(id) do {} while (0)
> ^^^^^^^^^^^^^^^
>
> the comment is misleading, this is actually needed on more than m68k
> so not a big surprise it doesn't work. Cut&paste from 2.4.

Bruce,

I checked in your previous patch already. Care to really forward port
asm-sparc64/ide.h from 2.4.19-pre10-rc2 and send me an incremental
patch?

--
Jens Axboe

Subject: Re: (RE: using 2.5.25 with IDE) On sparc64.....


While at it Jens, 2.4 code has endianness problems (or already fixed?)
would you mind porting my 2.5 patch?

On Wed, 10 Jul 2002, Jens Axboe wrote:

> On Wed, Jul 10 2002, Richard Zidlicky wrote:
> > On Tue, Jul 09, 2002 at 09:46:10AM -0500, Holzrichter, Bruce wrote:
> >
> > > Patch below to get 2.4 forward port of IDE to compile on Sparc64...
> > > --- linus-2.5/include/asm-sparc64/ide.h Tue Jul 9 08:53:10 2002
> > > +++ sparctest/include/asm-sparc64/ide.h Tue Jul 9 09:11:24 2002
> >
> >
> > > @@ -178,6 +182,20 @@
> > > #endif
> > > }
> > >
> > > +#define ide_request_irq(irq,hand,flg,dev,id)
> > > request_irq((irq),(hand),(flg),(dev),(id))
> > > +#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
> > > +#define ide_check_region(from,extent) check_region((from),
> > > (extent))
> > > +#define ide_request_region(from,extent,name) request_region((from),
> > > (extent), (name))
> > > +#define ide_release_region(from,extent)
> > > release_region((from), (extent))
> > > +
> > > +/*
> > > + * The following are not needed for the non-m68k ports
> > > + */
> > > +#define ide_ack_intr(hwif) (1)
> > > +#define ide_fix_driveid(id) do {} while (0)
> > ^^^^^^^^^^^^^^^
> >
> > the comment is misleading, this is actually needed on more than m68k
> > so not a big surprise it doesn't work. Cut&paste from 2.4.
>
> Bruce,
>
> I checked in your previous patch already. Care to really forward port
> asm-sparc64/ide.h from 2.4.19-pre10-rc2 and send me an incremental
> patch?
>
> --
> Jens Axboe
>

2002-07-10 17:25:02

by Jens Axboe

[permalink] [raw]
Subject: Re: (RE: using 2.5.25 with IDE) On sparc64.....

On Wed, Jul 10 2002, Bartlomiej Zolnierkiewicz wrote:
>
> While at it Jens, 2.4 code has endianness problems (or already fixed?)
> would you mind porting my 2.5 patch?

Cool thanks, I will add that to the next version.

--
Jens Axboe

2002-07-10 21:41:48

by Holzrichter, Bruce

[permalink] [raw]
Subject: RE: (RE: using 2.5.25 with IDE) On sparc64.....


> Bruce,
>
> I checked in your previous patch already. Care to really forward port
> asm-sparc64/ide.h from 2.4.19-pre10-rc2 and send me an incremental
> patch?
>

I have done some Preliminary work on this, but not had a lot of time to look
at it. In comparing the sparc64 old/new to i386, I replaced a couple of the
#define's with the static __inline__ that were in the 2.4.19 sparc64
version.

At this point, I say Preliminary, as it DOESN'T work yet on sparc64, and
this is the first IDE code I've really looked at. It will compile, but
right now, it's falling down at the partition check still, but displaying
"unknown partition" and also a "bad csum" for the sun label.

Jen's can you take a quick look at this, and let me know what your thoughts
are on this patch? Again, it doesn't do much right now...

This is an interim diff against your updated ide24 bk tree...

--- spideclean/include/asm-sparc64/ide.h Wed Jul 10 13:44:03 2002
+++ sparctest/include/asm-sparc64/ide.h Wed Jul 10 12:18:54 2002
@@ -182,19 +182,132 @@
#endif
}

-#define ide_request_irq(irq,hand,flg,dev,id)
request_irq((irq),(hand),(flg),(dev),(id))
-#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
-#define ide_check_region(from,extent) check_region((from),
(extent))
-#define ide_request_region(from,extent,name) request_region((from),
(extent), (name))
-#define ide_release_region(from,extent) release_region((from),
(extent))
+#if defined(CONFIG_IDE_24)
+static __inline__ void ide_fix_driveid(struct hd_driveid *id)
+{
+ int i;
+ u16 *stringcast;
+
+ id->config = __le16_to_cpu(id->config);
+ id->cyls = __le16_to_cpu(id->cyls);
+ id->reserved2 = __le16_to_cpu(id->reserved2);
+ id->heads = __le16_to_cpu(id->heads);
+ id->track_bytes = __le16_to_cpu(id->track_bytes);
+ id->sector_bytes = __le16_to_cpu(id->sector_bytes);
+ id->sectors = __le16_to_cpu(id->sectors);
+ id->vendor0 = __le16_to_cpu(id->vendor0);
+ id->vendor1 = __le16_to_cpu(id->vendor1);
+ id->vendor2 = __le16_to_cpu(id->vendor2);
+ stringcast = (u16 *)&id->serial_no[0];
+ for (i = 0; i < (20/2); i++)
+ stringcast[i] = __le16_to_cpu(stringcast[i]);
+ id->buf_type = __le16_to_cpu(id->buf_type);
+ id->buf_size = __le16_to_cpu(id->buf_size);
+ id->ecc_bytes = __le16_to_cpu(id->ecc_bytes);
+ stringcast = (u16 *)&id->fw_rev[0];
+ for (i = 0; i < (8/2); i++)
+ stringcast[i] = __le16_to_cpu(stringcast[i]);
+ stringcast = (u16 *)&id->model[0];
+ for (i = 0; i < (40/2); i++)
+ stringcast[i] = __le16_to_cpu(stringcast[i]);
+ id->dword_io = __le16_to_cpu(id->dword_io);
+ id->reserved50 = __le16_to_cpu(id->reserved50);
+ id->field_valid = __le16_to_cpu(id->field_valid);
+ id->cur_cyls = __le16_to_cpu(id->cur_cyls);
+ id->cur_heads = __le16_to_cpu(id->cur_heads);
+ id->cur_sectors = __le16_to_cpu(id->cur_sectors);
+ id->cur_capacity0 = __le16_to_cpu(id->cur_capacity0);
+ id->cur_capacity1 = __le16_to_cpu(id->cur_capacity1);
+ id->lba_capacity = __le32_to_cpu(id->lba_capacity);
+ id->dma_1word = __le16_to_cpu(id->dma_1word);
+ id->dma_mword = __le16_to_cpu(id->dma_mword);
+ id->eide_pio_modes = __le16_to_cpu(id->eide_pio_modes);
+ id->eide_dma_min = __le16_to_cpu(id->eide_dma_min);
+ id->eide_dma_time = __le16_to_cpu(id->eide_dma_time);
+ id->eide_pio = __le16_to_cpu(id->eide_pio);
+ id->eide_pio_iordy = __le16_to_cpu(id->eide_pio_iordy);
+ for (i = 0; i < 2; i++)
+ id->words69_70[i] = __le16_to_cpu(id->words69_70[i]);
+ for (i = 0; i < 4; i++)
+ id->words71_74[i] = __le16_to_cpu(id->words71_74[i]);
+ id->queue_depth = __le16_to_cpu(id->queue_depth);
+ for (i = 0; i < 4; i++)
+ id->words76_79[i] = __le16_to_cpu(id->words76_79[i]);
+ id->major_rev_num = __le16_to_cpu(id->major_rev_num);
+ id->minor_rev_num = __le16_to_cpu(id->minor_rev_num);
+ id->command_set_1 = __le16_to_cpu(id->command_set_1);
+ id->command_set_2 = __le16_to_cpu(id->command_set_2);
+ id->cfsse = __le16_to_cpu(id->cfsse);
+ id->cfs_enable_1 = __le16_to_cpu(id->cfs_enable_1);
+ id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2);
+ id->csf_default = __le16_to_cpu(id->csf_default);
+ id->dma_ultra = __le16_to_cpu(id->dma_ultra);
+ id->word89 = __le16_to_cpu(id->word89);
+ id->word90 = __le16_to_cpu(id->word90);
+ id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues);
+ id->word92 = __le16_to_cpu(id->word92);
+ id->hw_config = __le16_to_cpu(id->hw_config);
+ id->acoustic = __le16_to_cpu(id->acoustic);
+ for (i = 0; i < 5; i++)
+ id->words95_99[i] = __le16_to_cpu(id->words95_99[i]);
+ id->lba_capacity_2 = __le64_to_cpu(id->lba_capacity_2);
+ for (i = 0; i < 22; i++)
+ id->words104_125[i] = __le16_to_cpu(id->words104_125[i]);
+ id->last_lun = __le16_to_cpu(id->last_lun);
+ id->word127 = __le16_to_cpu(id->word127);
+ id->dlf = __le16_to_cpu(id->dlf);
+ id->csfo = __le16_to_cpu(id->csfo);
+ for (i = 0; i < 26; i++)
+ id->words130_155[i] = __le16_to_cpu(id->words130_155[i]);
+ id->word156 = __le16_to_cpu(id->word156);
+ for (i = 0; i < 3; i++)
+ id->words157_159[i] = __le16_to_cpu(id->words157_159[i]);
+ id->cfa_power = __le16_to_cpu(id->cfa_power);
+ for (i = 0; i < 14; i++)
+ id->words161_175[i] = __le16_to_cpu(id->words161_175[i]);
+ for (i = 0; i < 31; i++)
+ id->words176_205[i] = __le16_to_cpu(id->words176_205[i]);
+ for (i = 0; i < 48; i++)
+ id->words206_254[i] = __le16_to_cpu(id->words206_254[i]);
+ id->integrity_word = __le16_to_cpu(id->integrity_word);
+}
+
+static __inline__ int ide_request_irq(unsigned int irq,
+ void (*handler)(int, void *, struct
pt_regs *),
+ unsigned long flags, const char
*name, void *devid)
+{
+ return request_irq(irq, handler, SA_SHIRQ, name, devid);
+}
+
+static __inline__ void ide_free_irq(unsigned int irq, void *dev_id)
+{
+ free_irq(irq, dev_id);
+}
+
+static __inline__ int ide_check_region(ide_ioreg_t base, unsigned int size)
+{
+ return check_region(base, size);
+}
+
+static __inline__ void ide_request_region(ide_ioreg_t base, unsigned int
size,
+ const char *name)
+{
+ request_region(base, size, name);
+}
+
+static __inline__ void ide_release_region(ide_ioreg_t base, unsigned int
size)
+{
+ release_region(base, size);
+}

/*
* The following are not needed for the non-m68k ports
*/
#define ide_ack_intr(hwif) (1)
-#define ide_fix_driveid(id) do {} while (0)
#define ide_release_lock(lock) do {} while (0)
#define ide_get_lock(lock, hdlr, data) do {} while (0)
+
+#endif /* CONFIG_IDE_24 */

#endif /* __KERNEL__ */

2002-07-10 22:14:48

by Andre Hedrick

[permalink] [raw]
Subject: RE: (RE: using 2.5.25 with IDE) On sparc64.....


The locking code is broken because the port forward fail to carry all
issues.

On Wed, 10 Jul 2002, Holzrichter, Bruce wrote:

>
> > Bruce,
> >
> > I checked in your previous patch already. Care to really forward port
> > asm-sparc64/ide.h from 2.4.19-pre10-rc2 and send me an incremental
> > patch?
> >
>
> I have done some Preliminary work on this, but not had a lot of time to look
> at it. In comparing the sparc64 old/new to i386, I replaced a couple of the
> #define's with the static __inline__ that were in the 2.4.19 sparc64
> version.
>
> At this point, I say Preliminary, as it DOESN'T work yet on sparc64, and
> this is the first IDE code I've really looked at. It will compile, but
> right now, it's falling down at the partition check still, but displaying
> "unknown partition" and also a "bad csum" for the sun label.
>
> Jen's can you take a quick look at this, and let me know what your thoughts
> are on this patch? Again, it doesn't do much right now...
>
> This is an interim diff against your updated ide24 bk tree...
>
> --- spideclean/include/asm-sparc64/ide.h Wed Jul 10 13:44:03 2002
> +++ sparctest/include/asm-sparc64/ide.h Wed Jul 10 12:18:54 2002
> @@ -182,19 +182,132 @@
> #endif
> }
>
> -#define ide_request_irq(irq,hand,flg,dev,id)
> request_irq((irq),(hand),(flg),(dev),(id))
> -#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
> -#define ide_check_region(from,extent) check_region((from),
> (extent))
> -#define ide_request_region(from,extent,name) request_region((from),
> (extent), (name))
> -#define ide_release_region(from,extent) release_region((from),
> (extent))
> +#if defined(CONFIG_IDE_24)
> +static __inline__ void ide_fix_driveid(struct hd_driveid *id)
> +{
> + int i;
> + u16 *stringcast;
> +
> + id->config = __le16_to_cpu(id->config);
> + id->cyls = __le16_to_cpu(id->cyls);
> + id->reserved2 = __le16_to_cpu(id->reserved2);
> + id->heads = __le16_to_cpu(id->heads);
> + id->track_bytes = __le16_to_cpu(id->track_bytes);
> + id->sector_bytes = __le16_to_cpu(id->sector_bytes);
> + id->sectors = __le16_to_cpu(id->sectors);
> + id->vendor0 = __le16_to_cpu(id->vendor0);
> + id->vendor1 = __le16_to_cpu(id->vendor1);
> + id->vendor2 = __le16_to_cpu(id->vendor2);
> + stringcast = (u16 *)&id->serial_no[0];
> + for (i = 0; i < (20/2); i++)
> + stringcast[i] = __le16_to_cpu(stringcast[i]);
> + id->buf_type = __le16_to_cpu(id->buf_type);
> + id->buf_size = __le16_to_cpu(id->buf_size);
> + id->ecc_bytes = __le16_to_cpu(id->ecc_bytes);
> + stringcast = (u16 *)&id->fw_rev[0];
> + for (i = 0; i < (8/2); i++)
> + stringcast[i] = __le16_to_cpu(stringcast[i]);
> + stringcast = (u16 *)&id->model[0];
> + for (i = 0; i < (40/2); i++)
> + stringcast[i] = __le16_to_cpu(stringcast[i]);
> + id->dword_io = __le16_to_cpu(id->dword_io);
> + id->reserved50 = __le16_to_cpu(id->reserved50);
> + id->field_valid = __le16_to_cpu(id->field_valid);
> + id->cur_cyls = __le16_to_cpu(id->cur_cyls);
> + id->cur_heads = __le16_to_cpu(id->cur_heads);
> + id->cur_sectors = __le16_to_cpu(id->cur_sectors);
> + id->cur_capacity0 = __le16_to_cpu(id->cur_capacity0);
> + id->cur_capacity1 = __le16_to_cpu(id->cur_capacity1);
> + id->lba_capacity = __le32_to_cpu(id->lba_capacity);
> + id->dma_1word = __le16_to_cpu(id->dma_1word);
> + id->dma_mword = __le16_to_cpu(id->dma_mword);
> + id->eide_pio_modes = __le16_to_cpu(id->eide_pio_modes);
> + id->eide_dma_min = __le16_to_cpu(id->eide_dma_min);
> + id->eide_dma_time = __le16_to_cpu(id->eide_dma_time);
> + id->eide_pio = __le16_to_cpu(id->eide_pio);
> + id->eide_pio_iordy = __le16_to_cpu(id->eide_pio_iordy);
> + for (i = 0; i < 2; i++)
> + id->words69_70[i] = __le16_to_cpu(id->words69_70[i]);
> + for (i = 0; i < 4; i++)
> + id->words71_74[i] = __le16_to_cpu(id->words71_74[i]);
> + id->queue_depth = __le16_to_cpu(id->queue_depth);
> + for (i = 0; i < 4; i++)
> + id->words76_79[i] = __le16_to_cpu(id->words76_79[i]);
> + id->major_rev_num = __le16_to_cpu(id->major_rev_num);
> + id->minor_rev_num = __le16_to_cpu(id->minor_rev_num);
> + id->command_set_1 = __le16_to_cpu(id->command_set_1);
> + id->command_set_2 = __le16_to_cpu(id->command_set_2);
> + id->cfsse = __le16_to_cpu(id->cfsse);
> + id->cfs_enable_1 = __le16_to_cpu(id->cfs_enable_1);
> + id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2);
> + id->csf_default = __le16_to_cpu(id->csf_default);
> + id->dma_ultra = __le16_to_cpu(id->dma_ultra);
> + id->word89 = __le16_to_cpu(id->word89);
> + id->word90 = __le16_to_cpu(id->word90);
> + id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues);
> + id->word92 = __le16_to_cpu(id->word92);
> + id->hw_config = __le16_to_cpu(id->hw_config);
> + id->acoustic = __le16_to_cpu(id->acoustic);
> + for (i = 0; i < 5; i++)
> + id->words95_99[i] = __le16_to_cpu(id->words95_99[i]);
> + id->lba_capacity_2 = __le64_to_cpu(id->lba_capacity_2);
> + for (i = 0; i < 22; i++)
> + id->words104_125[i] = __le16_to_cpu(id->words104_125[i]);
> + id->last_lun = __le16_to_cpu(id->last_lun);
> + id->word127 = __le16_to_cpu(id->word127);
> + id->dlf = __le16_to_cpu(id->dlf);
> + id->csfo = __le16_to_cpu(id->csfo);
> + for (i = 0; i < 26; i++)
> + id->words130_155[i] = __le16_to_cpu(id->words130_155[i]);
> + id->word156 = __le16_to_cpu(id->word156);
> + for (i = 0; i < 3; i++)
> + id->words157_159[i] = __le16_to_cpu(id->words157_159[i]);
> + id->cfa_power = __le16_to_cpu(id->cfa_power);
> + for (i = 0; i < 14; i++)
> + id->words161_175[i] = __le16_to_cpu(id->words161_175[i]);
> + for (i = 0; i < 31; i++)
> + id->words176_205[i] = __le16_to_cpu(id->words176_205[i]);
> + for (i = 0; i < 48; i++)
> + id->words206_254[i] = __le16_to_cpu(id->words206_254[i]);
> + id->integrity_word = __le16_to_cpu(id->integrity_word);
> +}
> +
> +static __inline__ int ide_request_irq(unsigned int irq,
> + void (*handler)(int, void *, struct
> pt_regs *),
> + unsigned long flags, const char
> *name, void *devid)
> +{
> + return request_irq(irq, handler, SA_SHIRQ, name, devid);
> +}
> +
> +static __inline__ void ide_free_irq(unsigned int irq, void *dev_id)
> +{
> + free_irq(irq, dev_id);
> +}
> +
> +static __inline__ int ide_check_region(ide_ioreg_t base, unsigned int size)
> +{
> + return check_region(base, size);
> +}
> +
> +static __inline__ void ide_request_region(ide_ioreg_t base, unsigned int
> size,
> + const char *name)
> +{
> + request_region(base, size, name);
> +}
> +
> +static __inline__ void ide_release_region(ide_ioreg_t base, unsigned int
> size)
> +{
> + release_region(base, size);
> +}
>
> /*
> * The following are not needed for the non-m68k ports
> */
> #define ide_ack_intr(hwif) (1)
> -#define ide_fix_driveid(id) do {} while (0)
> #define ide_release_lock(lock) do {} while (0)
> #define ide_get_lock(lock, hdlr, data) do {} while (0)
> +
> +#endif /* CONFIG_IDE_24 */
>
> #endif /* __KERNEL__ */
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Andre Hedrick
LAD Storage Consulting Group

Subject: RE: (RE: using 2.5.25 with IDE) On sparc64.....


Don't waste your time ;-)
Jens was already sent my old patch to fix endianness..

--
Bartlomiej


2002-07-11 05:46:43

by Jens Axboe

[permalink] [raw]
Subject: Re: (RE: using 2.5.25 with IDE) On sparc64.....

On Wed, Jul 10 2002, Andre Hedrick wrote:
>
> The locking code is broken because the port forward fail to carry all
> issues.

Where is it broken? The 2.4 forward port has the exact same locking as
the 2.4 base. And I do mean identical.

--
Jens Axboe