HDIO_SCAN_HWIF causes hwif to "forget" PCI parent

From: Andrey Borzenkov
Date: Fri Apr 07 2006 - 16:31:02 EST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have notebook with ALi IDE interface:

00:04.0 IDE interface: ALi Corporation M5229 IDE (rev c3)

One of scripts called on Mandriva during suspend/resume calls hdparm -U for
hdc on suspend and hdparm -R on resume.

Now, hdparm -U (HDIO_UNREGISTER_HWIF) completely wipes out hwif reinitializing
it. It means, that also hwif->pci_dev is nulled. On hdparm -R
(HDIO_SCAN_HWIF) it basically calls hwif_register without initializing
pci_dev which means hdc appears in sysfs in different place:

before

lrwxrwxrwx 1 root root 0 Apr 7 23:53 /sys/block/hdc/device
- -> ../../devices/pci0000:00/0000:00:04.0/ide1/1.0/

after

lrwxrwxrwx 1 root root 0 Apr 7 23:53 /sys/block/hdc/device
- -> ../../devices/ide1/1.0/

this slightly confuses udev that receives a new path and regenerates cdrom
links (OK this is no more kernel problem but how I noticed it in the first
place :) so what has been cdrom0 before suddenly becomes cdrom1.

Looking at ide.c, I do not see any obvious ways to fix it. I appreciate any
hint how this can be fixed; alternatively if libpata does not have this issue
I am ready to test it.

Thank you

- -andrey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFENsvPR6LMutpd94wRAjFNAJ0VsKOZZOKn6/SIilrblrXuj4eGhgCePEnm
VP+KZQOGbpye9esLG6lSC/k=
=VXbN
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/