* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
@ 2007-06-05 21:31 Mikael Pettersson
2007-06-05 21:52 ` Jeff Garzik
0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2007-06-05 21:31 UTC (permalink / raw)
To: akpm, david, htejun, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds
Cc: linux-kernel, mikpe
On Tue, 05 Jun 2007 17:14:46 +0100, David Greaves <david@dgreaves.com> wrote:
>[Tejun, Jeff, added you since the bisect points to your patch.]
>
>Sorry, mail glitch means I lost a couple of emails...
>
>I said:
>Compile warnings and a new regression: hang on boot during sata_promise
>detection...
>
>It turns out that the hang times out; it does boot after a while. It's missing 4
>of my SATA disks though.
>[in turn this means I can't test the hibernate regression against -rc4. But
>testing that regression against a862b5c8cd5d847779a049a5fc8cf5b1e6f5fa07 shows
>it is still there. Do I get a bonus for finding 2 regressions?]]
>
>I also bisected and got:
>Bisecting: 0 revisions left to test after this
>[464cf177df7727efcc5506322fc5d0c8b896f545] libata: always use polling SETXFER
>
>According to marc, Mikail said:
That's Mikael, not Mikail.
>Please give us some details about your sata_promise problem:
>- describe your hardware (Promise chip version, mainboard, chipset, etc)
>I have a Promise TX-4 and onboard via-sata.
>0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host
>Bridge (rev 80)
>0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
>0000:00:0d.0 Unknown mass storage controller: Promise Technology, Inc. PDC20318
>(SATA150 TX4) (rev 02)
>0000:00:0f.1 IDE interface: VIA Technologies, Inc.
>VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
>
>- which was the last kernel version prior to 2.6.22-rc4 that worked
>2.6.22-rc3
>- the kernel messages up to the hang, if you can capture them
>Easier once I learned patience...
>
>sata_promise 0000:00:0d.0: version 2.07
>ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 16 (level, low) -> IRQ 17
>scsi0 : sata_promise
>scsi1 : sata_promise
>scsi2 : sata_promise
>scsi3 : sata_promise
>ata1: SATA max UDMA/133 cmd 0xf880a200 ctl 0xf880a238 bmdma 0x00000000 irq 0
>ata2: SATA max UDMA/133 cmd 0xf880a280 ctl 0xf880a2b8 bmdma 0x00000000 irq 0
>ata3: SATA max UDMA/133 cmd 0xf880a300 ctl 0xf880a338 bmdma 0x00000000 irq 0
>ata4: SATA max UDMA/133 cmd 0xf880a380 ctl 0xf880a3b8 bmdma 0x00000000 irq 0
>ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>ata1.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
>ata1.00: ATA-7: Maxtor 6B250S0, BANC19J0, max UDMA/133
>ata1.00: 490234752 sectors, multi 0: LBA48 NCQ (depth 0/32)
>ata1.00: qc timeout (cmd 0xef)
>ata1.00: failed to set xfermode (err_mask=0x4)
http://bugzilla.kernel.org/show_bug.cgi?id=8587 has a similar
report: it lists 2.6.22-rc3-git7 as OK but 2.6.22-rc4 as broken.
I can easily reproduce the problem in 2.6.22-rc4. There are no
sata_promise changes between rc3 and rc4, but Tejun's libata
polling SETXFER change was included in rc4. Reverting it makes
sata_promise work again for me.
I suspect that sata_promise.c:pdc_interrupt() should detect
a qc w/ ATA_TFLAG_POLLING, treat the interrupt as spurious,
and just call ata_chk_status(qc), similar to how sata_inic162x.c,
sata_nv.c, sata_sil.c, and sata_vsc.c do things.
Jeff/Tejun: comments?
/Mikael
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
2007-06-05 21:31 Linux 2.6.22-rc4 - sata_promise regression since -rc3 Mikael Pettersson
@ 2007-06-05 21:52 ` Jeff Garzik
2007-06-05 23:37 ` walt
2007-06-06 6:56 ` Tejun Heo
0 siblings, 2 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-06-05 21:52 UTC (permalink / raw)
To: Mikael Pettersson
Cc: akpm, david, htejun, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
On Tue, Jun 05, 2007 at 11:31:46PM +0200, Mikael Pettersson wrote:
> I can easily reproduce the problem in 2.6.22-rc4. There are no
> sata_promise changes between rc3 and rc4, but Tejun's libata
> polling SETXFER change was included in rc4. Reverting it makes
> sata_promise work again for me.
Ugh.
> I suspect that sata_promise.c:pdc_interrupt() should detect
> a qc w/ ATA_TFLAG_POLLING, treat the interrupt as spurious,
> and just call ata_chk_status(qc), similar to how sata_inic162x.c,
> sata_nv.c, sata_sil.c, and sata_vsc.c do things.
Yes, highly likely.
SFF-like controllers (and in this case, Promise is included in that
list) with their own interrupt handlers need their own polling handling
code.
Jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
2007-06-05 21:52 ` Jeff Garzik
@ 2007-06-05 23:37 ` walt
2007-06-06 6:56 ` Tejun Heo
1 sibling, 0 replies; 15+ messages in thread
From: walt @ 2007-06-05 23:37 UTC (permalink / raw)
To: linux-kernel
Jeff Garzik wrote:
> On Tue, Jun 05, 2007 at 11:31:46PM +0200, Mikael Pettersson wrote:
>> I can easily reproduce the problem in 2.6.22-rc4. There are no
>> sata_promise changes between rc3 and rc4, but Tejun's libata
>> polling SETXFER change was included in rc4. Reverting it makes
>> sata_promise work again for me.
>
> Ugh.
Reverting Tejun's patch also fixed my boot failure.
00:08.0 RAID bus controller: Promise Technology, Inc. PDC20376 (FastTrak
376) (rev 02)
Subsystem: ASUSTeK Computer Inc. A7V8X motherboard
Flags: bus master, 66MHz, medium devsel, latency 96, IRQ 16
I/O ports at d400 [size=64]
I/O ports at d000 [size=16]
I/O ports at b800 [size=128]
Memory at f6800000 (32-bit, non-prefetchable) [size=4K]
Memory at f6000000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [60] Power Management version 2
00:11.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if
8a [Master SecP PriP])
Subsystem: ASUSTeK Computer Inc. A7V8X / A7V333 motherboard
Flags: bus master, medium devsel, latency 32, IRQ 255
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
I/O ports at a400 [size=16]
Capabilities: [c0] Power Management version 2
The problem is that the controller can't be initialized properly, so
the kernel keeps trying every 5 seconds. I gave up after about five
failures. If the actual boot error messages would help I'll need to
copy them by hand -- just say the word.
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
2007-06-05 21:52 ` Jeff Garzik
2007-06-05 23:37 ` walt
@ 2007-06-06 6:56 ` Tejun Heo
2007-06-06 10:21 ` [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands Tejun Heo
1 sibling, 1 reply; 15+ messages in thread
From: Tejun Heo @ 2007-06-06 6:56 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mikael Pettersson, akpm, david, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
Hello,
Jeff Garzik wrote:
> On Tue, Jun 05, 2007 at 11:31:46PM +0200, Mikael Pettersson wrote:
>> I can easily reproduce the problem in 2.6.22-rc4. There are no
>> sata_promise changes between rc3 and rc4, but Tejun's libata
>> polling SETXFER change was included in rc4. Reverting it makes
>> sata_promise work again for me.
>
> Ugh.
Ugh...
>> I suspect that sata_promise.c:pdc_interrupt() should detect
>> a qc w/ ATA_TFLAG_POLLING, treat the interrupt as spurious,
>> and just call ata_chk_status(qc), similar to how sata_inic162x.c,
>> sata_nv.c, sata_sil.c, and sata_vsc.c do things.
>
> Yes, highly likely.
I'm not sure whether that will work. I'll give a shot at it here.
> SFF-like controllers (and in this case, Promise is included in that
> list) with their own interrupt handlers need their own polling handling
> code.
One thing I don't understand is why IDENTIFY works. IDENTIFY uses
polling too. Hmm...
--
tejun
^ permalink raw reply [flat|nested] 15+ messages in thread
* [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 6:56 ` Tejun Heo
@ 2007-06-06 10:21 ` Tejun Heo
2007-06-06 15:42 ` walt
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Tejun Heo @ 2007-06-06 10:21 UTC (permalink / raw)
To: Jeff Garzik
Cc: Mikael Pettersson, akpm, david, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
sata_promise uses two different command modes - packet and TF. Packet
mode is intelligent low-overhead mode while TF is the same old
taskfile interface. As with other advanced interface (ahci/sil24),
ATA_TFLAG_POLLING has no effect in packet mode. However, PIO commands
are issued using TF interface in polling mode, so pdc_interrupt()
considers interrupts spurious if ATA_TFLAG_POLLING is set.
This is broken for polling NODATA commands because command is issued
using packet mode but the interrupt handler ignores it due to
ATA_TFLAG_POLLING. Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA
commands are issued using TF interface if ATA_TFLAG_POLLING is set.
This patch fixes detection failure introduced by polling SETXFERMODE.
Signed-off-by: Tejun Heo <htejun@gmail.com>
---
David, please verify this patch. Mikael, does this look okay? Please
push this upstream after David and Mikael's ack.
(This repost is identical to the previous posting but it's now on the
correct thread.)
Thanks.
drivers/ata/sata_promise.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 2b924a6..6dc0b01 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -784,9 +784,12 @@ static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc)
if (qc->dev->flags & ATA_DFLAG_CDB_INTR)
break;
/*FALLTHROUGH*/
+ case ATA_PROT_NODATA:
+ if (qc->tf.flags & ATA_TFLAG_POLLING)
+ break;
+ /*FALLTHROUGH*/
case ATA_PROT_ATAPI_DMA:
case ATA_PROT_DMA:
- case ATA_PROT_NODATA:
pdc_packet_start(qc);
return 0;
@@ -800,7 +803,7 @@ static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc)
static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
{
WARN_ON (tf->protocol == ATA_PROT_DMA ||
- tf->protocol == ATA_PROT_NODATA);
+ tf->protocol == ATA_PROT_ATAPI_DMA);
ata_tf_load(ap, tf);
}
@@ -808,7 +811,7 @@ static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
{
WARN_ON (tf->protocol == ATA_PROT_DMA ||
- tf->protocol == ATA_PROT_NODATA);
+ tf->protocol == ATA_PROT_ATAPI_DMA);
ata_exec_command(ap, tf);
}
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 10:21 ` [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands Tejun Heo
@ 2007-06-06 15:42 ` walt
2007-06-06 16:05 ` Jeff Garzik
2007-06-07 15:17 ` Jeff Garzik
2 siblings, 0 replies; 15+ messages in thread
From: walt @ 2007-06-06 15:42 UTC (permalink / raw)
To: linux-kernel
Tejun Heo wrote:
> ... Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA
> commands are issued using TF interface if ATA_TFLAG_POLLING is set.
>
> This patch fixes detection failure introduced by polling SETXFERMODE.
Your patch works for me, thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 10:21 ` [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands Tejun Heo
2007-06-06 15:42 ` walt
@ 2007-06-06 16:05 ` Jeff Garzik
2007-06-06 16:34 ` Alan Cox
2007-06-07 17:20 ` Chuck Ebbert
2007-06-07 15:17 ` Jeff Garzik
2 siblings, 2 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-06-06 16:05 UTC (permalink / raw)
To: Tejun Heo
Cc: Mikael Pettersson, akpm, david, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
FYI to all --
As a reminder. the Promise hardware programs registers when it receives
a SET FEATURES - XFER MODE.
If data transfer is occurring on OTHER ports at the time this is issued,
then data corruption is guaranteed to occur. Polling will not fix this
problem -- all ports need to be inactive, when a SET FEATURES - XFER
MODE command is issued for any port.
Jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 16:05 ` Jeff Garzik
@ 2007-06-06 16:34 ` Alan Cox
2007-06-07 17:20 ` Chuck Ebbert
1 sibling, 0 replies; 15+ messages in thread
From: Alan Cox @ 2007-06-06 16:34 UTC (permalink / raw)
To: Jeff Garzik
Cc: Tejun Heo, Mikael Pettersson, akpm, david, jean.luc.coulon,
jgarzik, michal.k.k.piotrowski, torvalds, linux-kernel
On Wed, 6 Jun 2007 12:05:11 -0400
Jeff Garzik <jeff@garzik.org> wrote:
>
> FYI to all --
>
> As a reminder. the Promise hardware programs registers when it receives
> a SET FEATURES - XFER MODE.
>
> If data transfer is occurring on OTHER ports at the time this is issued,
> then data corruption is guaranteed to occur. Polling will not fix this
> problem -- all ports need to be inactive, when a SET FEATURES - XFER
> MODE command is issued for any port.
Cool - will whoever makes that work drop me a note as I need to do the
same eventually for a couple of other controllers.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 16:05 ` Jeff Garzik
2007-06-06 16:34 ` Alan Cox
@ 2007-06-07 17:20 ` Chuck Ebbert
2007-06-07 17:25 ` Jeff Garzik
1 sibling, 1 reply; 15+ messages in thread
From: Chuck Ebbert @ 2007-06-07 17:20 UTC (permalink / raw)
To: Jeff Garzik
Cc: Tejun Heo, Mikael Pettersson, akpm, david, jean.luc.coulon,
jgarzik, michal.k.k.piotrowski, torvalds, linux-kernel
On 06/06/2007 12:05 PM, Jeff Garzik wrote:
> FYI to all --
>
> As a reminder. the Promise hardware programs registers when it receives
> a SET FEATURES - XFER MODE.
>
> If data transfer is occurring on OTHER ports at the time this is issued,
> then data corruption is guaranteed to occur. Polling will not fix this
> problem -- all ports need to be inactive, when a SET FEATURES - XFER
> MODE command is issued for any port.
>
So is this patch OK but yet more work needs to be done, or does
this patch cause new problems?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-07 17:20 ` Chuck Ebbert
@ 2007-06-07 17:25 ` Jeff Garzik
2007-06-07 17:30 ` Jeff Garzik
0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-06-07 17:25 UTC (permalink / raw)
To: Chuck Ebbert
Cc: Tejun Heo, Mikael Pettersson, akpm, david, jean.luc.coulon,
jgarzik, michal.k.k.piotrowski, torvalds, linux-kernel
On Thu, Jun 07, 2007 at 01:20:13PM -0400, Chuck Ebbert wrote:
> On 06/06/2007 12:05 PM, Jeff Garzik wrote:
> > FYI to all --
> >
> > As a reminder. the Promise hardware programs registers when it receives
> > a SET FEATURES - XFER MODE.
> >
> > If data transfer is occurring on OTHER ports at the time this is issued,
> > then data corruption is guaranteed to occur. Polling will not fix this
> > problem -- all ports need to be inactive, when a SET FEATURES - XFER
> > MODE command is issued for any port.
> So is this patch OK but yet more work needs to be done, or does
> this patch cause new problems?
Causes no /new/ problems... :) The existing problem described above
remains.
Jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-07 17:25 ` Jeff Garzik
@ 2007-06-07 17:30 ` Jeff Garzik
0 siblings, 0 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-06-07 17:30 UTC (permalink / raw)
To: Chuck Ebbert
Cc: Tejun Heo, Mikael Pettersson, akpm, david, jean.luc.coulon,
jgarzik, michal.k.k.piotrowski, torvalds, linux-kernel
On Thu, Jun 07, 2007 at 01:25:07PM -0400, Jeff Garzik wrote:
> On Thu, Jun 07, 2007 at 01:20:13PM -0400, Chuck Ebbert wrote:
> > On 06/06/2007 12:05 PM, Jeff Garzik wrote:
> > > FYI to all --
> > >
> > > As a reminder. the Promise hardware programs registers when it receives
> > > a SET FEATURES - XFER MODE.
> > >
> > > If data transfer is occurring on OTHER ports at the time this is issued,
> > > then data corruption is guaranteed to occur. Polling will not fix this
> > > problem -- all ports need to be inactive, when a SET FEATURES - XFER
> > > MODE command is issued for any port.
>
> > So is this patch OK but yet more work needs to be done, or does
> > this patch cause new problems?
>
> Causes no /new/ problems... :) The existing problem described above
> remains.
Just to expand... this problem doesn't really affect a lot of users in
the majority case, since we do speed tuning before data transfer starts.
The main problem that remains is the rare (but no less important) case
where libata-EH will tune speed during operation in respond to certain
classes of errors.
Jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-06 10:21 ` [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands Tejun Heo
2007-06-06 15:42 ` walt
2007-06-06 16:05 ` Jeff Garzik
@ 2007-06-07 15:17 ` Jeff Garzik
2007-06-07 15:45 ` Andrew Morton
2 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-06-07 15:17 UTC (permalink / raw)
To: Tejun Heo
Cc: Mikael Pettersson, akpm, david, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
On Wed, Jun 06, 2007 at 07:21:22PM +0900, Tejun Heo wrote:
> sata_promise uses two different command modes - packet and TF. Packet
> mode is intelligent low-overhead mode while TF is the same old
> taskfile interface. As with other advanced interface (ahci/sil24),
> ATA_TFLAG_POLLING has no effect in packet mode. However, PIO commands
> are issued using TF interface in polling mode, so pdc_interrupt()
> considers interrupts spurious if ATA_TFLAG_POLLING is set.
>
> This is broken for polling NODATA commands because command is issued
> using packet mode but the interrupt handler ignores it due to
> ATA_TFLAG_POLLING. Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA
> commands are issued using TF interface if ATA_TFLAG_POLLING is set.
>
> This patch fixes detection failure introduced by polling SETXFERMODE.
>
> Signed-off-by: Tejun Heo <htejun@gmail.com>
> ---
> David, please verify this patch. Mikael, does this look okay? Please
> push this upstream after David and Mikael's ack.
>
> (This repost is identical to the previous posting but it's now on the
> correct thread.)
Acked-by: Jeff Garzik <jeff@garzik.org>
Tejun, would you mind pushing this upstream to Linus/Andrew?
I'm travelling this week, and my home firewall doesn't like me.
It is probably easier for you than me.
Jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands
2007-06-07 15:17 ` Jeff Garzik
@ 2007-06-07 15:45 ` Andrew Morton
0 siblings, 0 replies; 15+ messages in thread
From: Andrew Morton @ 2007-06-07 15:45 UTC (permalink / raw)
To: Jeff Garzik
Cc: Tejun Heo, Mikael Pettersson, david, jean.luc.coulon, jgarzik,
michal.k.k.piotrowski, torvalds, linux-kernel
On Thu, 7 Jun 2007 11:17:17 -0400 Jeff Garzik <jeff@garzik.org> wrote:
> On Wed, Jun 06, 2007 at 07:21:22PM +0900, Tejun Heo wrote:
> > sata_promise uses two different command modes - packet and TF. Packet
> > mode is intelligent low-overhead mode while TF is the same old
> > taskfile interface. As with other advanced interface (ahci/sil24),
> > ATA_TFLAG_POLLING has no effect in packet mode. However, PIO commands
> > are issued using TF interface in polling mode, so pdc_interrupt()
> > considers interrupts spurious if ATA_TFLAG_POLLING is set.
> >
> > This is broken for polling NODATA commands because command is issued
> > using packet mode but the interrupt handler ignores it due to
> > ATA_TFLAG_POLLING. Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA
> > commands are issued using TF interface if ATA_TFLAG_POLLING is set.
> >
> > This patch fixes detection failure introduced by polling SETXFERMODE.
> >
> > Signed-off-by: Tejun Heo <htejun@gmail.com>
> > ---
> > David, please verify this patch. Mikael, does this look okay? Please
> > push this upstream after David and Mikael's ack.
> >
> > (This repost is identical to the previous posting but it's now on the
> > correct thread.)
>
> Acked-by: Jeff Garzik <jeff@garzik.org>
>
> Tejun, would you mind pushing this upstream to Linus/Andrew?
>
> I'm travelling this week, and my home firewall doesn't like me.
> It is probably easier for you than me.
>
I added the below to my next batch:
From: Tejun Heo <htejun@gmail.com>
sata_promise uses two different command modes - packet and TF. Packet mode
is intelligent low-overhead mode while TF is the same old taskfile
interface. As with other advanced interface (ahci/sil24),
ATA_TFLAG_POLLING has no effect in packet mode. However, PIO commands are
issued using TF interface in polling mode, so pdc_interrupt() considers
interrupts spurious if ATA_TFLAG_POLLING is set.
This is broken for polling NODATA commands because command is issued using
packet mode but the interrupt handler ignores it due to ATA_TFLAG_POLLING.
Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA commands are issued
using TF interface if ATA_TFLAG_POLLING is set.
This patch fixes detection failure introduced by polling SETXFERMODE.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Mikael Pettersson <mikpe@it.uu.se>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/ata/sata_promise.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff -puN drivers/ata/sata_promise.c~sata_promise-use-tf-interface-for-polling-nodata-commands drivers/ata/sata_promise.c
--- a/drivers/ata/sata_promise.c~sata_promise-use-tf-interface-for-polling-nodata-commands
+++ a/drivers/ata/sata_promise.c
@@ -784,9 +784,12 @@ static unsigned int pdc_qc_issue_prot(st
if (qc->dev->flags & ATA_DFLAG_CDB_INTR)
break;
/*FALLTHROUGH*/
+ case ATA_PROT_NODATA:
+ if (qc->tf.flags & ATA_TFLAG_POLLING)
+ break;
+ /*FALLTHROUGH*/
case ATA_PROT_ATAPI_DMA:
case ATA_PROT_DMA:
- case ATA_PROT_NODATA:
pdc_packet_start(qc);
return 0;
@@ -800,7 +803,7 @@ static unsigned int pdc_qc_issue_prot(st
static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
{
WARN_ON (tf->protocol == ATA_PROT_DMA ||
- tf->protocol == ATA_PROT_NODATA);
+ tf->protocol == ATA_PROT_ATAPI_DMA);
ata_tf_load(ap, tf);
}
@@ -808,7 +811,7 @@ static void pdc_tf_load_mmio(struct ata_
static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
{
WARN_ON (tf->protocol == ATA_PROT_DMA ||
- tf->protocol == ATA_PROT_NODATA);
+ tf->protocol == ATA_PROT_ATAPI_DMA);
ata_exec_command(ap, tf);
}
_
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
@ 2007-06-06 10:36 Mikael Pettersson
0 siblings, 0 replies; 15+ messages in thread
From: Mikael Pettersson @ 2007-06-06 10:36 UTC (permalink / raw)
To: htejun, jeff
Cc: akpm, david, jean.luc.coulon, jgarzik, linux-kernel,
michal.k.k.piotrowski, mikpe, torvalds
On Wed, 06 Jun 2007 15:56:53 +0900, Tejun Heo wrote:
> Jeff Garzik wrote:
> > On Tue, Jun 05, 2007 at 11:31:46PM +0200, Mikael Pettersson wrote:
> >> I can easily reproduce the problem in 2.6.22-rc4. There are no
> >> sata_promise changes between rc3 and rc4, but Tejun's libata
> >> polling SETXFER change was included in rc4. Reverting it makes
> >> sata_promise work again for me.
> >
> > Ugh.
>
> Ugh...
>
> >> I suspect that sata_promise.c:pdc_interrupt() should detect
> >> a qc w/ ATA_TFLAG_POLLING, treat the interrupt as spurious,
> >> and just call ata_chk_status(qc), similar to how sata_inic162x.c,
> >> sata_nv.c, sata_sil.c, and sata_vsc.c do things.
> >
> > Yes, highly likely.
>
> I'm not sure whether that will work. I'll give a shot at it here.
I tried it and it didn't work. The qc:s never got completed, so
they timed out and the ports got disabled.
Calling pdc_host_intr() instead, which calls ata_qc_complete(),
did work (see hack below). However, this means that pdc_interrupt()
should ignore ATA_TFLAG_POLLING, which seems strange and unsafe.
I'm just guessing here, but maybe pdc_interrupt()'s clearing of
PDC_INT_SEQMASK also affects whatever legacy ATA status bit libata
is polling to detect completion of the qc?
--- linux-2.6.22-rc4/drivers/ata/sata_promise.c.~1~ 2007-06-05 22:21:39.000000000 +0200
+++ linux-2.6.22-rc4/drivers/ata/sata_promise.c 2007-06-06 12:04:38.000000000 +0200
@@ -748,6 +748,11 @@
qc = ata_qc_from_tag(ap, ap->active_tag);
if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING)))
handled += pdc_host_intr(ap, qc);
+ else if (qc) {
+ printk("%s: stray irq on port %u\n", __FUNCTION__, i);
+ //ata_check_status(ap);
+ handled += pdc_host_intr(ap, qc);
+ }
}
}
> > SFF-like controllers (and in this case, Promise is included in that
> > list) with their own interrupt handlers need their own polling handling
> > code.
>
> One thing I don't understand is why IDENTIFY works. IDENTIFY uses
> polling too. Hmm...
SETXFER is special: Promise chips snoop the commands and automatically
update internal timing registers when they see XFER MODE changes. They
may be hardwired to raise interrupts after these commands.
/Mikael
^ permalink raw reply [flat|nested] 15+ messages in thread* Linux 2.6.22-rc4
@ 2007-06-05 3:50 Linus Torvalds
2007-06-05 16:14 ` Linux 2.6.22-rc4 - sata_promise regression since -rc3 David Greaves
0 siblings, 1 reply; 15+ messages in thread
From: Linus Torvalds @ 2007-06-05 3:50 UTC (permalink / raw)
To: Linux Kernel Mailing List
[-- Attachment #1: Type: TEXT/PLAIN, Size: 20420 bytes --]
So -rc4 is out there now, hopefully shrinking the regression list further.
The diffstat (for those that look at those kinds of things) tells the
story: lots of small stuff to random files. I think the single biggest
file change was the patch-checking script, along with some sparc64 fixes.
But the bulk of it all is just a lot of small random things.
Shortlog appended to give kind of an overview, nothing really stands out
there. Mostly driver fixes, with some architecture updates.
I'd ask that people involved with the known regressions please test
whether they got fixed, and if you wrote a patch and it's still pending,
please make sure to push it upstream..
Linus
---
Akinobu Mita (3):
ieee80211: fix incomplete error message
softmac: alloc_ieee80211() NULL check
[POWERPC] Fix return from pte_alloc_one() in out-of-memory case
Alan Cox (2):
[WATCHDOG] clean-up watchdog documentation
[ARM] enable arbitary speed tty ioctls and split input/output speed
Alan Stern (2):
[SCSI] sd: fix refcounting regression in suspend/resume routines
USB: replace flush_workqueue with cancel_sync_work
Alex Tomas (1):
When ext4_ext_insert_extent() fails to insert new blocks
Alexey Dobriyan (1):
Fix vmi.c compilation
Amit Arora (1):
ext4: Extent overlap bugfix
Andrea Paterniani (1):
SPI: Freescale iMX SPI controller driver fixes
Andrew Morton (6):
sh: support older gcc's
[SPARC32]: Build fix.
ntfs_init_locked_inode(): fix array indexing
afs: needs sched.h
mtrr atomicity fix
vanishing ioctl handler debugging
Andrew Victor (2):
[WATCHDOG] ks8695_wdt.c - new KS8695 watchdog driver
[ARM] 4411/1: KS8695: Another serial driver fix
Andy Gospodarek (1):
PCI: disable MSI by default on systems with Serverworks HT1000 chips
Andy Whitcroft (1):
add a trivial patch style checker
Antonino A. Daplas (1):
neofb: Fix pseudo_palette array overrun in neofb_setcolreg
Arnaldo Carvalho de Melo (1):
[SOCK]: Shrink struct sock by 8 bytes on 64-bit.
Artem Bityutskiy (1):
[JFFS2] Fix buffer length calculations in jffs2_get_inode_nodes()
Auke Kok (1):
e1000: disable polling before registering netdevice
Avuton Olrich (1):
cfag12864bfb: Use sys_ instead of cfb_ framebuffer accessors
Baruch Even (2):
[ALSA] hda-codec - Add quirk for MSI S420
[BRIDGE]: Reduce frequency of forwarding cleanup timer in bridge.
Ben Dooks (6):
[ARM] 4401/1: S3C2443: Add definitions for port GPIOJ
[ARM] 4402/1: S3C2443: Add physical address of HSMMC controller
[ARM] 4412/1: S3C2412: reset errata fix
[ARM] 4414/1: S3C2443: sparse fix for clock.c
[ARM] 4415/1: AML5900: fix sparse warnings from map_io
[ARM] 4416/1: NWFPE: fix undeclared symbols
Ben Gardner (1):
PCI: Fix pci_find_present
Benjamin Herrenschmidt (2):
[POWERPC] Fix ppc32 single-stepping out of syscalls
[POWERPC] Fix possible access to free pages
Bill Nottingham (2):
[SCSI] qla2xxx: fix timeout in qla2x00_down_timeout
[NET]: Fix comparisons of unsigned < 0.
Björn Steinbrink (2):
prism54: fix monitor mode oops
timer statistics: fix race
Bob Moore (1):
ACPICA: Support for external package objects as method arguments
Brandon Craig Rhodes (1):
hostap: Allocate enough tailroom for TKIP
Brian King (1):
[SCSI] ipr: Proper return codes for eh_dev_reset for SATA devices
Brice Goglin (1):
myri10ge: report link up/down in standard ethtool way
Bryan Wu (1):
a bug in ramfs_nommu_resize function, passing old size to vmtruncate
Catalin Marinas (1):
[ARM] 4394/1: ARMv7: Add the TLB range operations
Chris Wright (1):
x86: fix oprofile double free
Christian Rothlaender (1):
[ALSA] hda-codec - Add support for ASUS A8J modem
Christoph Hellwig (6):
[SCSI] NCR53C9x: correct spelling mistake in deprecation notice
[SCSI] pluto: Use wait_for_completion_timeout.
[SPARC64]: Kill unused DIE_PAGE_FAULT enum value.
[S390] dasd_eer: use mutex instead of semaphore
[S390] arch/s390/kernel/debug.c: use mutex instead of semaphore
[S390] raw3270: use mutex instead of semaphore
Christoph Lameter (3):
SLUB: More documentation
SLUB: Fix NUMA / SYSFS bootstrap issue
SLUB: fix locking for hotplug callbacks
Cornelia Huck (1):
[S390] cio: Use device_schedule_callback() for removing disconnected devices.
Dan Williams (1):
msi: fix ARM compile
Daniel Drake (1):
[ALSA] hda-intel: fix ASUS M2V detection
Daniel T Chen (1):
[ALSA] hda-codec - Add quirk for Supermicro PDSBA to alc883_cfg_tbl[]
Darrick J. Wong (1):
[SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does not complete
Dave Airlie (1):
drm/radeon: add more IGP chipset pci ids
Dave Jones (1):
[SCSI] fusion: Fix |/|| confusion
Dave Kleikamp (1):
EXT4: Fix whitespace
David Brownell (1):
SPI dynamic busid generation bugfix
David Chinner (1):
[XFS] Write at EOF may not update filesize correctly.
David Gibson (2):
[POWERPC] Fix compiler/assembler flags for Ebony platform boot files
[POWERPC] Don't use HOSTCFLAGS in BOOTCFLAGS
David Howells (1):
[MTD] generalise the handling of MTD-specific superblocks
David Rientjes (1):
[ARM] use __used attribute
David S. Miller (25):
[SPARC64]: Don't be picky about virtual-dma values on sun4v.
[SPARC64]: PCI device scan is way too verbose by default.
[SCSI] ESP: Kill SCSI_ESP_CORE and link directly just like jazz_esp
[SPARC64]: Fix typo in sun4v_hvapi_register error handling.
[SPARC64]: Report proper system soft state to the hypervisor.
[SPARC64]: Negotiate hypervisor API for PCI services.
[SPARC64]: Use machine description and OBP properly for cpu probing.
[SPARC64]: Eliminate NR_CPUS limitations.
[SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler.
[SPARC64]: Fix two bugs wrt. kernel 4MB TSB.
[SPARC64]: Fill holes in hypervisor APIs and fix KTSB registry.
[CASSINI]: Fix printk message typo.
[XFRM]: Allow XFRM_ACQ_EXPIRES to be tunable via sysctl.
[XFRM]: xfrm_larval_drop sysctl should be __read_mostly.
[IPV4]: Kill references to bogus non-existent CONFIG_IP_NOSIOCRT
[AF_PACKET]: Kill bogus CONFIG_PACKET_MULTICAST
[IPV6]: Fix build warning.
[AF_PACKET]: Kill CONFIG_PACKET_SOCKET.
[IPSEC]: Add xfrm_sysctl.txt.
[SPARC64]: Add missing NCS and SVC hypervisor interfaces.
[AF_UNIX]: Make socket locking much less confusing.
[AF_UNIX]: Fix datagram connect race causing an OOPS.
[VIDEO]: XVR500 and XVR2500 require FB=y
[ATA]: Don't allow to enable this for SPARC64 without PCI.
[SCSI] JAZZ ESP and SUN ESP need SPI_ATTRS
David Woodhouse (4):
[JFFS2] Fix BUG() caused by failing to discard xattrs on deleted files.
[JFFS2] Fix potential memory leak of dead xattrs on unmount.
[MTD] Fix error checking after get_mtd_device() in get_sb_mtd functions
[JFFS2] Fix obsoletion of metadata nodes in jffs2_add_tn_to_tree()
Dmitry Torokhov (3):
Input: db9 - do not ignore dev2 module parameter
Input: ucb1x00 - do not access input_dev->private directly
Input: reduce raciness when input handlers disconnect
Domen Puncer (1):
[POWERPC] 52xx: unbreak lite5200 dts (_pic vs. -pic)
Ed Lin (4):
[SCSI] stex: fix id mapping issue
[SCSI] stex: extend hard reset wait time
[SCSI] stex: fix reset recovery for console device
[SCSI] stex: minor cleanup and version update
Enrico Scholz (1):
[ARM] 4403/1: Make the PXA-I2C driver work with lockdep validator
Eric W. Biederman (2):
msi: fix the ordering of msix irqs
msi: mask the msix vector before we unmap it
Evgeniy Polyakov (1):
sh: trivial build cleanups.
FUJITA Tomonori (1):
[SCSI] tgt: fix a rdma indirect transfer error bug
Geert Uytterhoeven (1):
fbdev: Move declaration of fb_class to <linux/fb.h>
Haavard Skinnemoen (1):
atmel_spi dma address bugfix
Heiko Carstens (1):
[S390] Fix section annotations.
Henrique de Moraes Holschuh (1):
ACPI: thinkpad-acpi: do not use named sysfs groups
Herbert Xu (3):
e1000: restore netif_poll_enable call but make sure IRQs are off
[NET] napi: Call __netif_rx_complete in netif_rx_complete
[NET] gso: Fix GSO feature mask in sk_setup_caps
Hong Liu (1):
mac80211: fix memory leak when defrag fragments
Horst H. von Brand (2):
[SPARC64]: arch/sparc64/time.c doesn't compile on Ultra 1 (no PCI)
[SPARC]: Missing #include <linux/mm.h> in drivers/sbus/char/flash.c
Hugh Dickins (1):
[SCSI] fix CONFIG_SCSI_WAIT_SCAN=m
Ilpo Järvinen (1):
[TCP]: Fix GSO ignorance of pkts_acked arg (cong.cntrl modules)
Ingo Molnar (1):
timer stats: speedups
Ivan Kokshaysky (1):
PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers
James Bottomley (2):
[SCSI] aacraid: fix panic on short Inquiry
[SCSI] aic7xxx: fix aicasm build failure with gcc-3.4.6
Jan Altenberg (1):
Add select PHYLIB to the UCC_GETH Kconfig option
Jan Engelhardt (1):
[SPARC]: Linux always started with 9600 8N1
Jan Kara (1):
Fix possible UDF data corruption
Jaroslav Kysela (1):
[ALSA] version 1.0.14
Jason Gaston (1):
pci_ids: update patch for Intel ICH9M
Jay Cliburn (1):
PCI: quirk disable MSI on via vt3351
Jay Estabrook (3):
ALPHA: support graphics on non-zero PCI domains
ALPHA: correct low-level I/O routines for sable-lynx
ALPHA: misc fixes
Jean Delvare (4):
hwmon/ds1621: Fix swapped temperature limits
hwmon/w83627hf: Be quiet when no chip is found
hwmon-vid: Don't spam the logs when VRM version is missing
hwmon/applesmc: Simplify dependencies
Jeff Garzik (4):
firewire: fix return code
[libata] Add drive to NCQ blacklist
misc/tifm_7xx1: replace deprecated irq flag
[ATM]: Fix warning.
Jerome Borsboom (1):
[NET]: parse ip:port strings correctly in in4_pton
Johannes Berg (1):
[POWERPC] Don't allow PMAC_APM_EMU for 64-bit
John W. Linville (1):
mac80211: avoid null ptr deref in ieee80211_ibss_add_sta
Karsten Keil (1):
Fix broken CLIR in isdn driver
Kazunori MIYAZAWA (2):
[IPSEC]: Fix IPv6 AH calculation in outbound
[IPSEC]: Fix panic when using inter address familiy IPsec on loopback.
Kristian Høgsberg (4):
firewire: Add missing byteswapping for receive DMA programs.
firewire: Implement suspend/resume PCI driver hooks.
firewire: Change struct fw_cdev_iso_packet to not use bitfields.
firewire: Install firewire-constants.h and firewire-cdev.h for userspace.
Krzysztof Helt (4):
[SPARC32]: Removes mismatch section warnigs in sparc time.c file
[SERIAL] sunzilog: section mismatch fix
skeletonfb: fix of xxxfb_setup ifdef
pm3fb: switching between X and fb fix
Kumar Gala (5):
[PPC] Fix COMMON symbol warnings
[PPC] Remove duplicate export of __div64_32.
[POWERPC] Fix modpost warning
[PPC] Fix modpost warning
[POWERPC] Fix Kconfig warning
Kyle McMartin (2):
[SPARC]: Emulate cmpxchg like parisc
fix possible null ptr deref in kallsyms_lookup
Len Brown (4):
ACPICA: allow Load(OEMx) tables
ACPI: extend "acpi_osi=" boot option
ACPI: Make _OSI(Linux) a special case
ACPI: add __init to acpi_initialize_subsystem()
Li Yang (2):
[POWERPC] Fix Section mismatch warnings
NET: add MAINTAINERS entry for ucc_geth driver
Linus Torvalds (2):
smpboot: fix cachesize comparison in smp_tune_scheduling()
Linux 2.6.22-rc4
Luis R. Rodriguez (1):
prism54: MAINTAINERS update
Maciej W. Rozycki (2):
defxx: Fix the handling of ioremap() failures
serial_core.h: include <linux/sysrq.h>
Manuel Lauss (2):
sh: Trivial fix for dma-api compile failure.
sh: Fix vsyscall build failure.
Marc Pignat (1):
at91: fix enable/disable_irq_wake symmetry in pcmcia driver
Mariusz Kozlowski (1):
m68k: parenthesis balance
Mark Glines (1):
[TCP]: Use default 32768-61000 outgoing port range in all cases.
Martin Habets (1):
[SPARC]: Mark as emulating cmpxchg, add appropriate depends for DRM.
Martin Peschke (1):
[SCSI] zfcp: avoid clutter in erp_dbf
Matt Mackall (2):
random: fix error in entropy extraction
random: fix seeding with zero entropy
Matthew Garrett (1):
RTC: use fallback IRQ if PNP tables don't provide one
Michael Chan (1):
[TG3]: Fix link problem on Dell's onboard 5906.
Michael Ellerman (2):
[POWERPC] Update documentation for of_find_node_by_type()
[POWERPC] Compare irq numbers with NO_IRQ not IRQ_NONE
Michael Holzheu (1):
[S390] Add exception handler for diagnose 224
Michael Loehr (1):
[SCSI] zfcp: IO stall after deleting and path checker changes after reenabling zfcp devices
Michael Neuling (1):
[POWERPC] Fix compile warning in pseries xics code
Michael S. Tsirkin (2):
IB/mthca: Fix handling of send CQE with error for QPs connected to SRQ
IPoIB/cm: Fix performance regression on Mellanox
Michael Schmitz (1):
[SCSI] atari_NCR5380: update_timeout removal
Michael Wu (1):
mac80211: always set carrier status on open
Michael-Luke Jones (4):
[ARM] 4404/1: Trivial IXP42x Kconfig cleanup
[ARM] 4405/1: NSLU2, DSM-G600 frequency fixup code
[ARM] 4406/1: Trivial NSLU2 / NAS-100D header & setup code cleanup
[ARM] 4410/1: Remove extern declarations in coyote/ixdpg425-pci.c
Michel Dänzer (1):
drm: make sure the drawable code doesn't call malloc(0).
Mike Frysinger (1):
[MTD] [MAPS] don't force uclinux mtd map to be root dev
Milton Miller (1):
[POWERPC] Fix zImage.coff generation for 32-bit pmac
Mingming Cao (1):
Remove unnecessary exported symbols.
Mithlesh Thukral (1):
NetXen: Removal of extra free_irq call
Nicolas Boichat (1):
hwmon/applesmc: Handle name file creation error and deletion
Oleg Nesterov (1):
tty: fix leakage of -ERESTARTSYS to userland
Ondrej Zajicek (1):
vt8623fb: arkfb: null pointer dereference fix
Patrick McHardy (1):
[ICMP]: Fix icmp_errors_use_inbound_ifaddr sysctl
Paul Mundt (2):
sh: section mismatch fixes for system timer.
smc91x: sh solution engine fixes.
Pavel Emelianov (1):
[TCP]: Consolidate checking for tcp orphan count being too big.
Pekka Enberg (1):
Documentation: How to use GDB to decode OOPSes
Peter Oberparleiter (1):
[S390] cio: deregister ccw device when pgid disband failed
Petr Vandrovec (1):
ieee1394: raw1394: Fix async send
Rafael J. Wysocki (1):
[CRYPTO] cryptd: Fix problem with cryptd and the freezer
Richard Henderson (2):
alpha: cleanup in bitops.h
alpha: support new syscalls
Robert P. J. Day (1):
[ARM] remove unused header file: arch/arm/mach-s3c2410/bast.h
Roland Dreier (1):
IB/mlx4: Fix last allocated object tracking in bitmap allocator
Roman Zippel (2):
m68k: runtime patching infrastructure
m68k: discontinuous memory support
Rudolf Marek (1):
hwmon/coretemp: Add more safety checks
Russell King (3):
[ARM] Fix stacktrace FP range checking
[ARM] oprofile: avoid lockdep warnings on mpcore oprofile init
[ARM] Fix some section mismatch warnings
Salyzyn, Mark (3):
[SCSI] aacraid: Correct sa platform support. (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1)
[SCSI] aacraid: apply commit config for reset_devices flag
[SCSI] aacraid: fix shutdown handler to also disable interrupts.
Sam Ravnborg (6):
sparc64: fix alignment bug in linker definition script
microcode: fix section mismatch warning
isdn: fix section mismatch warnings
acpi: fix section mismatch warning in asus + toshiba
kvm: fix section mismatch warning in kvm-intel.o
net/hp100: fix section mismatch warning
Sangtae Ha (1):
[TCP] tcp_probe: a trivial fix for mismatched number of printl arguments.
Satoru Takeuchi (1):
Better documentation for ERESTARTSYS
Sean Hefty (1):
IB/cm: Fix stale connection detection
Stefan Richter (9):
ieee1394: sbp2: include workqueue.h
ieee1394: eth1394: remove bogus netif_wake_queue
ieee1394: eth1394: handle tlabel exhaustion
ieee1394: eth1394: bring back a parent device
firewire: prefix modules with firewire- instead of fw-
ieee1394: fix calculation of sysfs attribute "address"
ieee1394: sbp2: offer SAM-conforming target port ID in sysfs
firewire: fw-sbp2: implement sysfs ieee1394_id
firewire: add to MAINTAINERS
Stefan Roese (1):
[POWERPC] Fix compile breakage for IBM/AMCC 4xx arch/ppc platforms
Stephen Hemminger (12):
sky2: dont set bogus bit in PHY register
sky2: checksum offload plus vlan bug
sky2: program proper register for fiber PHY
sky2: enable IRQ on duplex renegotiation
[TCP] tcp_probe: use GCC printf attribute
[BRIDGE]: Round off STP perodic timers.
qla3xxx: device doesnt do hardware checksumming.
VLAN: kill_vid is only useful for VLAN filtering devices
sky2: Fix VLAN unregistration
8139cp: fix VLAN unregistration
atl1: eliminate unneeded kill_vid code
network drivers: eliminate unneeded kill_vid code
Stephen Rothwell (3):
[POWERPC] ps3/interrupt.c uses get_hard_smp_processor_id
[POWERPC] pasemi idle uses hard_smp_processor_id
[POWERPC] Create a zImage for legacy iSeries
Steve Longerbeam (1):
[ALSA] hda-codec - Fix pin configs for Gateway MX6453
Sumant Patro (2):
[SCSI] MegaRAID: Update MAINTAINERS email-id
[SCSI] megaraid_sas: intercept cmd timeout and throttle io
Takashi Iwai (3):
[ALSA] ali5451 - Fix possible NULL dereference
[ALSA] hda-codec - Fix input with STAC92xx
[ALSA] hda-codec - Fix STAC922x capture boost level
Takashi YOSHII (1):
sh: Fix pcrel too far for in_nmi label.
Tejun Heo (2):
pci-quirks: fix MSI disabling on RS400-200 and RS480
libata: always use polling SETXFER
Theodore Ts'o (1):
Define/reserve new ext4 superblock fields
Thomas Bogendoerfer (1):
[SCSI] jazz_esp: Converted to use esp_core.
Thomas Gleixner (3):
drm: Spinlock initializer cleanup
NOHZ: prevent multiplication overflow - stop timer for huge timeouts
[ARM] 4417/1: Serial: Fix AMBA drivers locking
Thomas Klein (1):
ehea: Fixed multi queue RX bug
Thomas Renninger (1):
ACPI: thermal: Replace pointer with name in trip_points
Tilman Schmidt (1):
ISDN4Linux: fix maturity label
Tim Gardner (1):
Work around Dell E520 BIOS reboot bug
Timur Tabi (1):
[POWERPC] QE: fix Kconfig 'select' warning with UCC_FAST
Tobin Davis (4):
[ALSA] HDA: Add support for Gateway NX860
[ALSA] HDA: Add more systems to Sigmatel codec
[ALSA] HDA: Fix headphone mute issue on non-eapd Conexant systems
[ALSA] hda-codec - Add support for MSI K9N Ultra
Tony Luck (1):
ACPI: Section mismatch ... acpi_map_pxm_to_node
Trond Myklebust (1):
NFS: Fix a refcount leakage in O_DIRECT
Ulrich Drepper (1):
fix compat futex code for private futexes
Uwe Bugla (1):
Input: logips2pp - fix typo in Kconfig
Valerie Henson (1):
Update tulip maintainer email address
Venkatesh Pallipadi (1):
[NET]: Make net watchdog timers 1 sec jiffy aligned.
Wei Dong (1):
[IPV4]: Fix "ipOutNoRoutes" counter error for TCP and UDP
YOSHIFUJI Hideaki (2):
[IPV6] ROUTE: No longer handle ::/0 specially.
[IPV6] ADDRCONF: Fix conflicts in DEVCONF_xxx constant.
Yasunori Goto (1):
memory hotplug: fix unnecessary calling of init_currenty_empty_zone()
Yoann Padioleau (2):
potential parse error in ifdef
parse errors in ifdefs
Yoshinori Sato (1):
h8300 trival patches
Zhu Yi (1):
mac80211: fail back to use associate from reassociate
Zoltan Devai (1):
[ALSA] Fix ASoC s3c24xx-pcm spinlock bug
Zou Nan hai (1):
x86_64: allocate sparsemem memmap above 4G
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: Linux 2.6.22-rc4 - sata_promise regression since -rc3
2007-06-05 3:50 Linux 2.6.22-rc4 Linus Torvalds
@ 2007-06-05 16:14 ` David Greaves
0 siblings, 0 replies; 15+ messages in thread
From: David Greaves @ 2007-06-05 16:14 UTC (permalink / raw)
To: Linus Torvalds, Tejun Heo, Jeff Garzik; +Cc: Linux Kernel Mailing List, mikpe
Linus Torvalds wrote:
> So -rc4 is out there now, hopefully shrinking the regression list further.
> I'd ask that people involved with the known regressions please test
> whether they got fixed, and if you wrote a patch and it's still pending,
> please make sure to push it upstream..
[Tejun, Jeff, added you since the bisect points to your patch.]
Sorry, mail glitch means I lost a couple of emails...
I said:
Compile warnings and a new regression: hang on boot during sata_promise
detection...
It turns out that the hang times out; it does boot after a while. It's missing 4
of my SATA disks though.
[in turn this means I can't test the hibernate regression against -rc4. But
testing that regression against a862b5c8cd5d847779a049a5fc8cf5b1e6f5fa07 shows
it is still there. Do I get a bonus for finding 2 regressions?]]
I also bisected and got:
Bisecting: 0 revisions left to test after this
[464cf177df7727efcc5506322fc5d0c8b896f545] libata: always use polling SETXFER
According to marc, Mikail said:
Please give us some details about your sata_promise problem:
- describe your hardware (Promise chip version, mainboard, chipset, etc)
I have a Promise TX-4 and onboard via-sata.
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host
Bridge (rev 80)
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
0000:00:0d.0 Unknown mass storage controller: Promise Technology, Inc. PDC20318
(SATA150 TX4) (rev 02)
0000:00:0f.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
- which was the last kernel version prior to 2.6.22-rc4 that worked
2.6.22-rc3
- the kernel messages up to the hang, if you can capture them
Easier once I learned patience...
sata_promise 0000:00:0d.0: version 2.07
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 16 (level, low) -> IRQ 17
scsi0 : sata_promise
scsi1 : sata_promise
scsi2 : sata_promise
scsi3 : sata_promise
ata1: SATA max UDMA/133 cmd 0xf880a200 ctl 0xf880a238 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0xf880a280 ctl 0xf880a2b8 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0xf880a300 ctl 0xf880a338 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0xf880a380 ctl 0xf880a3b8 bmdma 0x00000000 irq 0
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata1.00: ATA-7: Maxtor 6B250S0, BANC19J0, max UDMA/133
ata1.00: 490234752 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: qc timeout (cmd 0xef)
ata1.00: failed to set xfermode (err_mask=0x4)
ata1: failed to recover some devices, retrying in 5 secs
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata1.00: qc timeout (cmd 0xef)
ata1.00: failed to set xfermode (err_mask=0x4)
ata1.00: limiting speed to UDMA/133:PIO3
ata1: failed to recover some devices, retrying in 5 secs
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata1.00: qc timeout (cmd 0xef)
ata1.00: failed to set xfermode (err_mask=0x4)
ata1.00: disabled
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata2.00: ATA-7: Maxtor 7Y250M0, YAR51EW0, max UDMA/133
ata2.00: 490234752 sectors, multi 0: LBA48
ata2.00: qc timeout (cmd 0xef)
ata2.00: failed to set xfermode (err_mask=0x4)
ata2: failed to recover some devices, retrying in 5 secs
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata2.00: qc timeout (cmd 0xef)
ata2.00: failed to set xfermode (err_mask=0x4)
ata2.00: limiting speed to UDMA/133:PIO3
ata2: failed to recover some devices, retrying in 5 secs
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata2.00: qc timeout (cmd 0xef)
ata2.00: failed to set xfermode (err_mask=0x4)
ata2.00: disabled
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata3.00: ATA-7: Maxtor 7Y250M0, YAR51EW0, max UDMA/133
ata3.00: 490234752 sectors, multi 0: LBA48
ata3.00: qc timeout (cmd 0xef)
ata3.00: failed to set xfermode (err_mask=0x4)
ata3: failed to recover some devices, retrying in 5 secs
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata3.00: qc timeout (cmd 0xef)
ata3.00: failed to set xfermode (err_mask=0x4)
ata3.00: limiting speed to UDMA/133:PIO3
ata3: failed to recover some devices, retrying in 5 secs
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata3.00: qc timeout (cmd 0xef)
ata3.00: failed to set xfermode (err_mask=0x4)
ata3.00: disabled
ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata4.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata4.00: ATA-7: Maxtor 6B250S0, BANC1980, max UDMA/133
ata4.00: 490234752 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata4.00: qc timeout (cmd 0xef)
ata4.00: failed to set xfermode (err_mask=0x4)
ata4: failed to recover some devices, retrying in 5 secs
ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata4.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata4.00: qc timeout (cmd 0xef)
ata4.00: failed to set xfermode (err_mask=0x4)
ata4.00: limiting speed to UDMA/133:PIO3
ata4: failed to recover some devices, retrying in 5 secs
ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata4.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata4.00: qc timeout (cmd 0xef)
ata4.00: failed to set xfermode (err_mask=0x4)
ata4.00: disabled
sata_via 0000:00:0f.0: version 2.2
ACPI: PCI Interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 16
sata_via 0000:00:0f.0: routed to hard irq line 0
scsi4 : sata_via
scsi5 : sata_via
ata5: SATA max UDMA/133 cmd 0x0001b000 ctl 0x0001a802 bmdma 0x00019800 irq 0
ata6: SATA max UDMA/133 cmd 0x0001a400 ctl 0x0001a002 bmdma 0x00019808 irq 0
ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ATA: abnormal status 0x7F on port 0x0001b007
ATA: abnormal status 0x7F on port 0x0001b007
ata5.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata5.00: ATA-7: Maxtor 7B250S0, BANC1980, max UDMA/133
ata5.00: 490234752 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata5.00: ata_hpa_resize 1: sectors = 490234752, hpa_sectors = 490234752
ata5.00: configured for UDMA/133
ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ATA: abnormal status 0x7F on port 0x0001a407
ATA: abnormal status 0x7F on port 0x0001a407
ata6.00: ata_hpa_resize 1: sectors = 781422768, hpa_sectors = 781422768
ata6.00: ATA-7: ST3400620AS, 3.AAK, max UDMA/133
ata6.00: 781422768 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata6.00: ata_hpa_resize 1: sectors = 781422768, hpa_sectors = 781422768
ata6.00: configured for UDMA/133
scsi 4:0:0:0: Direct-Access ATA Maxtor 7B250S0 BANC PQ: 0 ANSI: 5
sd 4:0:0:0: [sda] 490234752 512-byte hardware sectors (251000 MB)
sd 4:0:0:0: [sda] Write Protect is off
sd 4:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 4:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO
or FUA
sd 4:0:0:0: [sda] 490234752 512-byte hardware sectors (251000 MB)
sd 4:0:0:0: [sda] Write Protect is off
sd 4:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 4:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO
or FUA
sda: sda1
sd 4:0:0:0: [sda] Attached SCSI disk
scsi 5:0:0:0: Direct-Access ATA ST3400620AS 3.AA PQ: 0 ANSI: 5
sd 5:0:0:0: [sdb] 781422768 512-byte hardware sectors (400088 MB)
sd 5:0:0:0: [sdb] Write Protect is off
sd 5:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 5:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO
or FUA
sd 5:0:0:0: [sdb] 781422768 512-byte hardware sectors (400088 MB)
sd 5:0:0:0: [sdb] Write Protect is off
sd 5:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 5:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO
or FUA
sdb: sdb1 sdb2
sd 5:0:0:0: [sdb] Attached SCSI disk
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2007-06-07 17:31 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-05 21:31 Linux 2.6.22-rc4 - sata_promise regression since -rc3 Mikael Pettersson
2007-06-05 21:52 ` Jeff Garzik
2007-06-05 23:37 ` walt
2007-06-06 6:56 ` Tejun Heo
2007-06-06 10:21 ` [REPOST PATCH] sata_promise: use TF interface for polling NODATA commands Tejun Heo
2007-06-06 15:42 ` walt
2007-06-06 16:05 ` Jeff Garzik
2007-06-06 16:34 ` Alan Cox
2007-06-07 17:20 ` Chuck Ebbert
2007-06-07 17:25 ` Jeff Garzik
2007-06-07 17:30 ` Jeff Garzik
2007-06-07 15:17 ` Jeff Garzik
2007-06-07 15:45 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2007-06-06 10:36 Linux 2.6.22-rc4 - sata_promise regression since -rc3 Mikael Pettersson
2007-06-05 3:50 Linux 2.6.22-rc4 Linus Torvalds
2007-06-05 16:14 ` Linux 2.6.22-rc4 - sata_promise regression since -rc3 David Greaves
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox