diff mbox

2.6.34-rc2 breaks via82cxxx Host Protected Area

Message ID 20100326232104.GA10769@spacedout.fries.net
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

David Fries March 26, 2010, 11:21 p.m. UTC
The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
vt82c586b chipset.  I tracked it down to commit
f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
bugs" and reverting just that one solves the problem, or just
commenting out just one outb write in that change.

via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later

Note the kernel panic is intentional as I'm given the test kernel an
invalid root device, so that I can suspend to disk, try a kernel,
resume and pick up where I left off.  It does have a side benefit of
dumping the size of all partitions.

2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
partition.
ide-gd driver 1.18
hda: max request size: 128KiB
hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
hda: cache flushes supported
 hda: hda1 hda2 hda3
hda: p3 size 236037312 exceeds device capacity, enabling native capacity
hda: p3 size 236037312 exceeds device capacity, limited to end of disk
ide-cd driver 5.00
...
Please append a correct "root=" boot option; here are the available partitions:
0300        33027624 hda driver: ide-gd
  0301           49391 hda1
  0302         1992816 hda2
  0303        30985416 hda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)

2.6.34-rc2 with patch revered, correct size 118018656
ide-gd driver 1.18
hda: max request size: 128KiB
hda: Host Protected Area detected.
        current capacity is 66055248 sectors (33820 MB)
        native  capacity is 240121728 sectors (122942 MB)
hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
hda: cache flushes supported
 hda: hda1 hda2 hda3
hda: p3 size 236037312 exceeds device capacity, enabling native capacity
hda: detected capacity change from 33820286976 to 122942324736
ide-cd driver 5.00
0300       120060864 hda driver: ide-gd
  0301           49391 hda1
  0302         1992816 hda2
  0303       118018656 hda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)

Here are two debug patches, the first adds debug prints and the second
disables the problematic write, I  have the output of both included.

From dac7d14ce1f227d8a084c3ec218ea1430bffdc57 Mon Sep 17 00:00:00 2001
From: David Fries <david@fries.net>
Date: Thu, 25 Mar 2010 19:51:31 -0500
Subject: [PATCH 1/2] fails: add print messages

add print messages for debugging
---
 drivers/ide/via82cxxx.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

Comments

Jeff Garzik March 27, 2010, 12:12 a.m. UTC | #1
On 03/26/2010 07:21 PM, David Fries wrote:
> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
> vt82c586b chipset.  I tracked it down to commit
> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
> bugs" and reverting just that one solves the problem, or just
> commenting out just one outb write in that change.
>
> via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
> via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
> via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
>
> Note the kernel panic is intentional as I'm given the test kernel an
> invalid root device, so that I can suspend to disk, try a kernel,
> resume and pick up where I left off.  It does have a side benefit of
> dumping the size of all partitions.
>
> 2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
> partition.
> ide-gd driver 1.18
> hda: max request size: 128KiB
> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
> hda: cache flushes supported
>   hda: hda1 hda2 hda3
> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
> hda: p3 size 236037312 exceeds device capacity, limited to end of disk
> ide-cd driver 5.00
> ...
> Please append a correct "root=" boot option; here are the available partitions:
> 0300        33027624 hda driver: ide-gd
>    0301           49391 hda1
>    0302         1992816 hda2
>    0303        30985416 hda3
> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>
> 2.6.34-rc2 with patch revered, correct size 118018656
> ide-gd driver 1.18
> hda: max request size: 128KiB
> hda: Host Protected Area detected.
>          current capacity is 66055248 sectors (33820 MB)
>          native  capacity is 240121728 sectors (122942 MB)
> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
> hda: cache flushes supported
>   hda: hda1 hda2 hda3
> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
> hda: detected capacity change from 33820286976 to 122942324736
> ide-cd driver 5.00
> 0300       120060864 hda driver: ide-gd
>    0301           49391 hda1
>    0302         1992816 hda2
>    0303       118018656 hda3
> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>
> Here are two debug patches, the first adds debug prints and the second
> disables the problematic write, I  have the output of both included.
>
>> From dac7d14ce1f227d8a084c3ec218ea1430bffdc57 Mon Sep 17 00:00:00 2001
> From: David Fries<david@fries.net>
> Date: Thu, 25 Mar 2010 19:51:31 -0500
> Subject: [PATCH 1/2] fails: add print messages
>
> add print messages for debugging
> ---
>   drivers/ide/via82cxxx.c |    5 +++++
>   1 files changed, 5 insertions(+), 0 deletions(-)

Does libata + pata_via work, if you pass ignore_hpa=1 module option to 
libata?

	Jeff




--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Fries March 27, 2010, 12:36 a.m. UTC | #2
On Fri, Mar 26, 2010 at 08:12:26PM -0400, Jeff Garzik wrote:
> On 03/26/2010 07:21 PM, David Fries wrote:
>> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
>> vt82c586b chipset.  I tracked it down to commit
>> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
>> bugs" and reverting just that one solves the problem, or just
>> commenting out just one outb write in that change.
>>
>> via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
>> via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
>> via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
>>
>> Note the kernel panic is intentional as I'm given the test kernel an
>> invalid root device, so that I can suspend to disk, try a kernel,
>> resume and pick up where I left off.  It does have a side benefit of
>> dumping the size of all partitions.
>>
>> 2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
>> partition.
>> ide-gd driver 1.18
>> hda: max request size: 128KiB
>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
>> hda: cache flushes supported
>>   hda: hda1 hda2 hda3
>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
>> hda: p3 size 236037312 exceeds device capacity, limited to end of disk
>> ide-cd driver 5.00
>> ...
>> Please append a correct "root=" boot option; here are the available partitions:
>> 0300        33027624 hda driver: ide-gd
>>    0301           49391 hda1
>>    0302         1992816 hda2
>>    0303        30985416 hda3
>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>>
>> 2.6.34-rc2 with patch revered, correct size 118018656
>> ide-gd driver 1.18
>> hda: max request size: 128KiB
>> hda: Host Protected Area detected.
>>          current capacity is 66055248 sectors (33820 MB)
>>          native  capacity is 240121728 sectors (122942 MB)
>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
>> hda: cache flushes supported
>>   hda: hda1 hda2 hda3
>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
>> hda: detected capacity change from 33820286976 to 122942324736
>> ide-cd driver 5.00
>> 0300       120060864 hda driver: ide-gd
>>    0301           49391 hda1
>>    0302         1992816 hda2
>>    0303       118018656 hda3
>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>>
>> Here are two debug patches, the first adds debug prints and the second
>> disables the problematic write, I  have the output of both included.
>>
>>> From dac7d14ce1f227d8a084c3ec218ea1430bffdc57 Mon Sep 17 00:00:00 2001
>> From: David Fries<david@fries.net>
>> Date: Thu, 25 Mar 2010 19:51:31 -0500
>> Subject: [PATCH 1/2] fails: add print messages
>>
>> add print messages for debugging
>> ---
>>   drivers/ide/via82cxxx.c |    5 +++++
>>   1 files changed, 5 insertions(+), 0 deletions(-)
>
> Does libata + pata_via work, if you pass ignore_hpa=1 module option to  
> libata?
>
> 	Jeff

No, here is the output with ignore_hpa=1 on the command line.  I also
don't see any difference with it not on the command line.

scsi0 : pata_via
scsi1 : pata_via
ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xe400 irq 14
ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xe408 irq 15
ata1.00: HPA detected: current 66055248, native 240121728
ata1.00: ATA-7: Maxtor 6Y120P0, YAR41BW0, max UDMA/133
ata1.00: 66055248 sectors, multi 16: LBA 
ata1.00: configured for UDMA/33
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6Y120P0   YAR4 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 66055248 512-byte logical blocks: (33.8 GB/31.4 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3
sda: p3 size 236037312 exceeds device capacity, limited to end of disk
sd 0:0:0:0: [sda] Attached SCSI disk
ata2.01: ATAPI: PLEXTOR CD-R   PX-W4012A, 1.06, max UDMA/33
ata2.01: configured for UDMA/33
scsi 1:0:1:0: CD-ROM            PLEXTOR  CD-R   PX-W4012A 1.06 PQ: 0 ANSI: 5
...
VFS: Cannot open root device "1602" or unknown-block(22,2)
Please append a correct "root=" boot option; here are the available partitions:
0800        33027624 sda driver: sd
  0801           49391 sda1
  0802         1992816 sda2
  0803        30985416 sda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
Jeff Garzik March 27, 2010, 12:42 a.m. UTC | #3
On 03/26/2010 08:36 PM, David Fries wrote:
> On Fri, Mar 26, 2010 at 08:12:26PM -0400, Jeff Garzik wrote:
>> On 03/26/2010 07:21 PM, David Fries wrote:
>>> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
>>> vt82c586b chipset.  I tracked it down to commit
>>> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
>>> bugs" and reverting just that one solves the problem, or just
>>> commenting out just one outb write in that change.
>>>
>>> via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
>>> via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
>>> via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
>>>
>>> Note the kernel panic is intentional as I'm given the test kernel an
>>> invalid root device, so that I can suspend to disk, try a kernel,
>>> resume and pick up where I left off.  It does have a side benefit of
>>> dumping the size of all partitions.
>>>
>>> 2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
>>> partition.
>>> ide-gd driver 1.18
>>> hda: max request size: 128KiB
>>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
>>> hda: cache flushes supported
>>>    hda: hda1 hda2 hda3
>>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
>>> hda: p3 size 236037312 exceeds device capacity, limited to end of disk
>>> ide-cd driver 5.00
>>> ...
>>> Please append a correct "root=" boot option; here are the available partitions:
>>> 0300        33027624 hda driver: ide-gd
>>>     0301           49391 hda1
>>>     0302         1992816 hda2
>>>     0303        30985416 hda3
>>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>>>
>>> 2.6.34-rc2 with patch revered, correct size 118018656
>>> ide-gd driver 1.18
>>> hda: max request size: 128KiB
>>> hda: Host Protected Area detected.
>>>           current capacity is 66055248 sectors (33820 MB)
>>>           native  capacity is 240121728 sectors (122942 MB)
>>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
>>> hda: cache flushes supported
>>>    hda: hda1 hda2 hda3
>>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
>>> hda: detected capacity change from 33820286976 to 122942324736
>>> ide-cd driver 5.00
>>> 0300       120060864 hda driver: ide-gd
>>>     0301           49391 hda1
>>>     0302         1992816 hda2
>>>     0303       118018656 hda3
>>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
>>>
>>> Here are two debug patches, the first adds debug prints and the second
>>> disables the problematic write, I  have the output of both included.
>>>
>>>>  From dac7d14ce1f227d8a084c3ec218ea1430bffdc57 Mon Sep 17 00:00:00 2001
>>> From: David Fries<david@fries.net>
>>> Date: Thu, 25 Mar 2010 19:51:31 -0500
>>> Subject: [PATCH 1/2] fails: add print messages
>>>
>>> add print messages for debugging
>>> ---
>>>    drivers/ide/via82cxxx.c |    5 +++++
>>>    1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> Does libata + pata_via work, if you pass ignore_hpa=1 module option to
>> libata?
>>
>> 	Jeff
>
> No, here is the output with ignore_hpa=1 on the command line.  I also
> don't see any difference with it not on the command line.

I said "module option", which is different from a kernel command line 
option.

If you are trying to build a module into the kernel image itself, you 
must use the "modulename.moduleoption" format on the kernel command 
line, ie. libata.ignore_hpa=1


> scsi0 : pata_via
> scsi1 : pata_via
> ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xe400 irq 14
> ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xe408 irq 15
> ata1.00: HPA detected: current 66055248, native 240121728
> ata1.00: ATA-7: Maxtor 6Y120P0, YAR41BW0, max UDMA/133
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for UDMA/33
> scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6Y120P0   YAR4 PQ: 0 ANSI: 5
> sd 0:0:0:0: [sda] 66055248 512-byte logical blocks: (33.8 GB/31.4 GiB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>   sda: sda1 sda2 sda3
> sda: p3 size 236037312 exceeds device capacity, limited to end of disk

This message should hopefully change, when the module option is 
correctly specified.


> sd 0:0:0:0: [sda] Attached SCSI disk
> ata2.01: ATAPI: PLEXTOR CD-R   PX-W4012A, 1.06, max UDMA/33
> ata2.01: configured for UDMA/33
> scsi 1:0:1:0: CD-ROM            PLEXTOR  CD-R   PX-W4012A 1.06 PQ: 0 ANSI: 5
> ...
> VFS: Cannot open root device "1602" or unknown-block(22,2)
> Please append a correct "root=" boot option; here are the available partitions:
> 0800        33027624 sda driver: sd
>    0801           49391 sda1
>    0802         1992816 sda2
>    0803        30985416 sda3
> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)

All these errors related to unknown-block(22,2) are it trying to find 
/dev/hdX, when libata uses the SCSI block devices /dev/sdX

These errors are unrelated to HPA, and are a standard issue encountered 
when moving from legacy IDE driver to libata.

	Jeff


--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Fries March 27, 2010, 2:09 a.m. UTC | #4
On Fri, Mar 26, 2010 at 08:42:26PM -0400, Jeff Garzik wrote:
> On 03/26/2010 08:36 PM, David Fries wrote:
>> On Fri, Mar 26, 2010 at 08:12:26PM -0400, Jeff Garzik wrote:
>>> On 03/26/2010 07:21 PM, David Fries wrote:
>>>> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
>>>> vt82c586b chipset.  I tracked it down to commit
>>>> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
>>>> bugs" and reverting just that one solves the problem, or just
>>>> commenting out just one outb write in that change.
>>>>
>>>> via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
>>>> via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
>>>> via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
>>>>
>>>> Note the kernel panic is intentional as I'm given the test kernel an
>>>> invalid root device, so that I can suspend to disk, try a kernel,
>>>> resume and pick up where I left off.  It does have a side benefit of
>>>> dumping the size of all partitions.
>>>>
>>>> 2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
>>>> partition.
>>>> ide-gd driver 1.18
>>>> hda: max request size: 128KiB
>>>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
>>>> hda: cache flushes supported
>>>>    hda: hda1 hda2 hda3
>>>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
>>>> hda: p3 size 236037312 exceeds device capacity, limited to end of disk
>>>> ide-cd driver 5.00
>>>> ...
>>>> Please append a correct "root=" boot option; here are the available partitions:
>>>> 0300        33027624 hda driver: ide-gd
>>>>     0301           49391 hda1
>>>>     0302         1992816 hda2
>>>>     0303        30985416 hda3
>>>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)

> All these errors related to unknown-block(22,2) are it trying to find  
> /dev/hdX, when libata uses the SCSI block devices /dev/sdX
>
> These errors are unrelated to HPA, and are a standard issue encountered  
> when moving from legacy IDE driver to libata.

added
libata.dma=0 libata.ignore_hpa=1
and it's showing the full disk again, thanks for pointing that out,
I'm just not used to giving module parameters on the kernel command
line.  Now I'll see what Bartlomiej Zolnierkiewicz has to say about
his patch which broke via82cxxx.

scsi0 : pata_via
scsi1 : pata_via
ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xe400 irq 14
ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xe408 irq 15
ata1.00: HPA unlocked: 66055248 -> 240121728, native 240121728
ata1.00: ATA-7: Maxtor 6Y120P0, YAR41BW0, max UDMA/133
ata1.00: 240121728 sectors, multi 16: LBA 
ata1.00: configured for PIO4
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6Y120P0   YAR4 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 240121728 512-byte logical blocks: (122 GB/114 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Attached SCSI disk
ata2.01: ATAPI: PLEXTOR CD-R   PX-W4012A, 1.06, max UDMA/33
ata2.01: configured for PIO4
scsi 1:0:1:0: CD-ROM            PLEXTOR  CD-R   PX-W4012A 1.06 PQ: 0 ANSI: 5
...
VFS: Cannot open root device "1602" or unknown-block(22,2)
Please append a correct "root=" boot option; here are the available partitions:
0800       120060864 sda driver: sd
  0801           49391 sda1
  0802         1992816 sda2
  0803       118018656 sda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
Bartlomiej Zolnierkiewicz March 27, 2010, 10:19 a.m. UTC | #5
On Saturday 27 March 2010 03:09:35 am David Fries wrote:
> On Fri, Mar 26, 2010 at 08:42:26PM -0400, Jeff Garzik wrote:
> > On 03/26/2010 08:36 PM, David Fries wrote:
> >> On Fri, Mar 26, 2010 at 08:12:26PM -0400, Jeff Garzik wrote:
> >>> On 03/26/2010 07:21 PM, David Fries wrote:
> >>>> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
> >>>> vt82c586b chipset.  I tracked it down to commit
> >>>> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
> >>>> bugs" and reverting just that one solves the problem, or just
> >>>> commenting out just one outb write in that change.
> >>>>
> >>>> via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
> >>>> via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
> >>>> via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
> >>>>
> >>>> Note the kernel panic is intentional as I'm given the test kernel an
> >>>> invalid root device, so that I can suspend to disk, try a kernel,
> >>>> resume and pick up where I left off.  It does have a side benefit of
> >>>> dumping the size of all partitions.
> >>>>
> >>>> 2.6.34-rc2 unmodified, fails and sees 30985416 KiB for the last
> >>>> partition.
> >>>> ide-gd driver 1.18
> >>>> hda: max request size: 128KiB
> >>>> hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
> >>>> hda: cache flushes supported
> >>>>    hda: hda1 hda2 hda3
> >>>> hda: p3 size 236037312 exceeds device capacity, enabling native capacity
> >>>> hda: p3 size 236037312 exceeds device capacity, limited to end of disk
> >>>> ide-cd driver 5.00
> >>>> ...
> >>>> Please append a correct "root=" boot option; here are the available partitions:
> >>>> 0300        33027624 hda driver: ide-gd
> >>>>     0301           49391 hda1
> >>>>     0302         1992816 hda2
> >>>>     0303        30985416 hda3
> >>>> Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)
> 
> > All these errors related to unknown-block(22,2) are it trying to find  
> > /dev/hdX, when libata uses the SCSI block devices /dev/sdX
> >
> > These errors are unrelated to HPA, and are a standard issue encountered  
> > when moving from legacy IDE driver to libata.
> 
> added
> libata.dma=0 libata.ignore_hpa=1
> and it's showing the full disk again, thanks for pointing that out,
> I'm just not used to giving module parameters on the kernel command
> line.  Now I'll see what Bartlomiej Zolnierkiewicz has to say about
> his patch which broke via82cxxx.

Please bring upstream IDE problems with upstream kernel maintainer.

I have very little control over what people are doing with some (taken
out of much larger context) atang-specific patches posted for review
to kernel mailing lists and over quality of integration/testing work
that should always accompany upstream merge.

The commit itself may also have a problem but since it was _never_ in
linux-next tree it never saw a wider upstream testing.  Moreover upstream
doesn't use unified driver source (atang tree does) which makes makes
debugging and long-term maintenance more time consuming than necessary.

I'm sorry to hear about your problem but it is not my fault and I prefer
using my _private_ time in more constructive ways..

--
Bartlomiej Zolnierkiewicz
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller March 27, 2010, 2:44 p.m. UTC | #6
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: Sat, 27 Mar 2010 11:19:53 +0100

> The commit itself may also have a problem but since it was _never_ in
> linux-next tree it never saw a wider upstream testing.

This is not true Bart.

My ide-2.6 and ide-next-2.6 trees are both included in
linux-next   And if they are not, that needs to be fixed
because they very much are intended to be.

In any event, you wrote a patch which broke something and
if you're not willing to work on a fix I have no choice
but to simply revert.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller March 27, 2010, 2:57 p.m. UTC | #7
From: David Fries <david@fries.net>
Date: Fri, 26 Mar 2010 18:21:04 -0500

> The kernel fails to see the entire disk with 2.6.34-rc2 with VIA
> vt82c586b chipset.  I tracked it down to commit
> f931a5d5785d7b7c44871bd7ad2762e29dfddf29 "via82cxxx: workaround h/w
> bugs" and reverting just that one solves the problem, or just
> commenting out just one outb write in that change.

I've reverted Bart's change and will push that out to Linus.

Thanks for your report.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bartlomiej Zolnierkiewicz March 27, 2010, 3:34 p.m. UTC | #8
On Saturday 27 March 2010 03:44:34 pm David Miller wrote:
> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Date: Sat, 27 Mar 2010 11:19:53 +0100
> 
> > The commit itself may also have a problem but since it was _never_ in
> > linux-next tree it never saw a wider upstream testing.
> 
> This is not true Bart.

Uh?  I had verified my claims before writing previous mail..

The patch ("via82cxxx: workaround h/w bugs") appeared in Linus'
tree on 19th January and it was neither in next-20100101 nor in
next-20100119.. etc.

Why?  I have no idea..  I've just noticed it today..

> My ide-2.6 and ide-next-2.6 trees are both included in
> linux-next   And if they are not, that needs to be fixed
> because they very much are intended to be.

Not my area of responsibility..

> In any event, you wrote a patch which broke something and
> if you're not willing to work on a fix I have no choice
> but to simply revert.

Please..

You picked a patch out of larger patch series posted to a mailing
list (which was clearly marked as a one for my atang tree and not
for upstream), then you merged it adding your sign-off, did poor
job w.r.t. linux-next testing phase and now I'm the one to blame
for the breakage? :)

Well, your stance on kernel project management has been already
made crystal clear during rt28xx driver discussions so I'm not
really surprised here.  I also don't remember ever signing support
contract with you or your employer so I will be putting your mails
into a separate folder (lets call it 'almost-spam') from now on..

--
Bartlomiej Zolnierkiewicz
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Rothwell March 28, 2010, 3:01 a.m. UTC | #9
Hi Bart,

On Sat, 27 Mar 2010 16:34:08 +0100 Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> wrote:
>
> On Saturday 27 March 2010 03:44:34 pm David Miller wrote:
> > From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> > Date: Sat, 27 Mar 2010 11:19:53 +0100
> > 
> > > The commit itself may also have a problem but since it was _never_ in
> > > linux-next tree it never saw a wider upstream testing.
> > 
> > This is not true Bart.
> 
> Uh?  I had verified my claims before writing previous mail..
> 
> The patch ("via82cxxx: workaround h/w bugs") appeared in Linus'
> tree on 19th January and it was neither in next-20100101 nor in
> next-20100119.. etc.

That commit first appeared in linux-next in next-20100120 as part of
Dave's ide tree.  It was merged into Linus' tree on March 5th (commit
4c10c937cc2eb197db565392db91d429eec71176 "Merge
git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6").
Bartlomiej Zolnierkiewicz March 28, 2010, 11:48 a.m. UTC | #10
Hi Stephen,

On Sunday 28 March 2010 05:01:41 am Stephen Rothwell wrote:
> Hi Bart,
> 
> On Sat, 27 Mar 2010 16:34:08 +0100 Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> wrote:
> >
> > On Saturday 27 March 2010 03:44:34 pm David Miller wrote:
> > > From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> > > Date: Sat, 27 Mar 2010 11:19:53 +0100
> > > 
> > > > The commit itself may also have a problem but since it was _never_ in
> > > > linux-next tree it never saw a wider upstream testing.
> > > 
> > > This is not true Bart.
> > 
> > Uh?  I had verified my claims before writing previous mail..
> > 
> > The patch ("via82cxxx: workaround h/w bugs") appeared in Linus'
> > tree on 19th January and it was neither in next-20100101 nor in
> > next-20100119.. etc.
> 
> That commit first appeared in linux-next in next-20100120 as part of
> Dave's ide tree.  It was merged into Linus' tree on March 5th (commit
> 4c10c937cc2eb197db565392db91d429eec71176 "Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6").

Which doesn't change a bit the fundamental fact that the patch was not
meant for upstream by me and was clearly marked as such.  If David wanted
it upstream he should either be ready to provide support for it himself
or solve it in a more formal way..

--
Bartlomiej Zolnierkiewicz
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c
index e65d010..ccd5640 100644
--- a/drivers/ide/via82cxxx.c
+++ b/drivers/ide/via82cxxx.c
@@ -409,6 +409,8 @@  static void via_write_devctl(ide_hwif_t *hwif, u8 ctl)
 
 	outb(ctl, hwif->io_ports.ctl_addr);
 	outb(vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
+	printk("via_write_devctl        write %u, %lu\n",
+		vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
 }
 
 static void __via_dev_select(ide_drive_t *drive, u8 select)
@@ -442,6 +444,9 @@  static void via_tf_load(ide_drive_t *drive, struct ide_taskfile *tf, u8 valid)
 		outb(tf->lbah, io_ports->lbah_addr);
 	if (valid & IDE_VALID_DEVICE)
 		__via_dev_select(drive, tf->device);
+	printk("via_tf_load write tf->device %u in place of tf->device %u\n"
+		" value io_ports->device_addr %lu\n",
+		tf->device, tf->device, io_ports->device_addr);
 }
 
 const struct ide_tp_ops via_tp_ops = {
-- 
1.7.0



Uniform Multi-Platform E-IDE driver
via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
ide: disallowing DMA for hda
ide: disallowing DMA for hdb
    ide0: BM-DMA at 0xe400-0xe407
ide: disallowing DMA for hdc
ide: disallowing DMA for hdd
    ide1: BM-DMA at 0xe408-0xe40f
via_write_devctl        write 160, 502
via_write_devctl        write 176, 502
via_write_devctl        write 160, 502
hda: Maxtor 6Y120P0, ATA DISK drive
via_write_devctl        write 176, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_write_devctl        write 176, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
ide1: no devices on the port
via_write_devctl        write 160, 502
via_write_devctl        write 0, 374
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports
ide-gd driver 1.18
hda: max request size: 128KiB
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 175 in place of tf->device 175
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
 value io_ports->device_addr 502
via_write_devctl        write 224, 502
hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
hda: cache flushes supported
 hda:via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
 value io_ports->device_addr 502
 hda1 hda2 hda3
hda: p3 size 236037312 exceeds device capacity, enabling native capacity
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
 value io_ports->device_addr 502
via_write_devctl        write 224, 502
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 227 in place of tf->device 227
 value io_ports->device_addr 502
via_write_devctl        write 227, 502
hda: p3 size 236037312 exceeds device capacity, limited to end of disk
via_write_devctl        write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
 value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
 value io_ports->device_addr 502
via_write_devctl        write 160, 502
ide-cd driver 5.00
VFS: Cannot open root device "1602" or unknown-block(22,2)
Please append a correct "root=" boot option; here are the available partitions:
0300        33027624 hda driver: ide-gd
  0301           49391 hda1
  0302         1992816 hda2
  0303        30985416 hda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)


From 72da5cd66e1f857fbe6afa0e92634e8adf684737 Mon Sep 17 00:00:00 2001
From: David Fries <david@fries.net>
Date: Thu, 25 Mar 2010 20:07:19 -0500
Subject: [PATCH 2/2] via82cxxx works: skip write

This fixes via82cxxx host protected area problems.
---
 drivers/ide/via82cxxx.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c
index ccd5640..d598b63 100644
--- a/drivers/ide/via82cxxx.c
+++ b/drivers/ide/via82cxxx.c
@@ -408,8 +408,10 @@  static void via_write_devctl(ide_hwif_t *hwif, u8 ctl)
 	struct via82cxxx_dev *vdev = hwif->host->host_priv;
 
 	outb(ctl, hwif->io_ports.ctl_addr);
+	/*
 	outb(vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
-	printk("via_write_devctl        write %u, %lu\n",
+	*/
+	printk("via_write_devctl   skip write %u, %lu\n",
 		vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
 }