Re: [BISECTED] pata_jmicron: no drives found on post 2.6.25 kernels

Previous thread: [PATCH] remove useless argument type in audit_filter_user() by Peng Haitao on Monday, May 19, 2008 - 6:13 pm. (1 message)

Next thread: kernel 2.6.22 CPU shoot up with same amount of file I/O by Reeve Yang on Monday, May 19, 2008 - 7:47 pm. (1 message)
From: Shaohua Li
Date: Monday, May 19, 2008 - 6:48 pm

[Empty message]
From: Plamen Petrov
Date: Tuesday, May 20, 2008 - 9:09 am

Checkout the attached files. Sorry for the delay - I was away from the

Thanks for your time,
Plamen=20

--=20
Plamen Petrov, network & system administrator
Filial - Silistra
RU "Angel Kantchev"
http://fs.ru.acad.bg/
 --------------------------------
this message is UTF8 encoded=20

_
___
_____
 ------------------------------------------
This message was sent by the mail server
at fs.ru.acad.bg using the web interface:
    https://fs.ru.acad.bg/s/m/webmail
E-mail postmaster@fs.ru.acad.bg with anything,
regarding the server itself
From: Shaohua Li
Date: Wednesday, May 21, 2008 - 1:58 am

Can you please try below patch?
The Slot 03:00.* of JMicron controller has two functions, but one is
PCIE endpoint the other isn't PCIE device, very strange. PCIE spec
defines all functions should have the same config for ASPM, so disable
ASPM for the whole slot in this case.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>

Index: linux/drivers/pci/pcie/aspm.c
===================================================================
--- linux.orig/drivers/pci/pcie/aspm.c	2008-05-21 16:38:17.000000000 +0800
+++ linux/drivers/pci/pcie/aspm.c	2008-05-21 16:52:35.000000000 +0800
@@ -506,6 +506,23 @@ static void free_link_state(struct pci_d
 	pdev->link_state = NULL;
 }
 
+static int pcie_aspm_sanity_check(struct pci_dev *pdev)
+{
+	struct pci_dev *child_dev;
+	int child_pos;
+
+	/*
+	 * Some functions in a slot might not all be PCIE functions, very
+	 * strange. Disable ASPM for the whole slot
+	 */
+	list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) {
+		child_pos = pci_find_capability(child_dev, PCI_CAP_ID_EXP);
+		if (!child_pos)
+			return -EINVAL;
+	}
+	return 0;
+}
+
 /*
  * pcie_aspm_init_link_state: Initiate PCI express link state.
  * It is called after the pcie and its children devices are scaned.
@@ -526,6 +543,9 @@ void pcie_aspm_init_link_state(struct pc
 	if (list_empty(&pdev->subordinate->devices))
 		goto out;
 
+	if (pcie_aspm_sanity_check(pdev))
+		goto out;
+
 	mutex_lock(&aspm_lock);
 
 	link_state = kzalloc(sizeof(*link_state), GFP_KERNEL);


--

From: Plamen Petrov
Date: Wednesday, May 21, 2008 - 8:49 am

With the provided patch applied on top of latest git tree, the optical
drive connected to the JMicron controller WORKS with CONFIG_PCIEASPM=y. 

Just in case - this is on a Gigabyte GA-P35-DS3R v2.1 motherboard,
BIOS F11. 

Thanks! 


Plamen Petrov, network & system administrator
Filial - Silistra
RU "Angel Kantchev"
http://fs.ru.acad.bg/
 --------------------------------
this message is UTF8 encoded 

_
___
_____
 ------------------------------------------
This message was sent by the mail server
at fs.ru.acad.bg using the web interface:
    https://fs.ru.acad.bg/s/m/webmail
E-mail postmaster@fs.ru.acad.bg with anything,
regarding the server itself
--

From: Luca Tettamanti
Date: Wednesday, May 21, 2008 - 12:45 pm

T24gV2VkLCBNYXkgMjEsIDIwMDggYXQgMTA6NTggQU0sIFNoYW9odWEgTGkgPHNoYW9odWEubGlA
aW50ZWwuY29tPiB3cm90ZToKPiBPbiBUdWUsIDIwMDgtMDUtMjAgYXQgMTk6MDkgKzAzMDAsIFBs
YW1lbiBQZXRyb3Ygd3JvdGU6Cj4+IFNoYW9odWEgTGkg0L3QsNC/0LjRgdCwOgo+Pgo+PiA+IE9u
IFR1ZSwgMjAwOC0wNS0yMCBhdCAwMTozNyArMDMwMCwgUGxhbWVuIFBldHJvdiB3cm90ZToKPj4g
Pj4gSGVsbG8sIGZvbGtzIQo+PiA+Pgo+PiA+PiBBZnRlciAyLjYuMjYgbWVyZ2Ugd2luZG93IG9w
ZW5lZCwgdGhlIG9wdGljYWwgZHJpdmVzIGluIG15Cj4+ID4+IGNvbXB1dGVyLCBoYW5naW5nIG9m
ZiBhIEpNaWNyb24gY29udHJvbGVyIHdlcmUgbm90IGRldGVjdGVkCj4+ID4+IGJ5IGxpbnV4IGFu
eSBtb3JlLgo+PiA+Pgo+PiA+PiBMdWNhIFRldHRhbWFudGkgcmVwb3J0ZWQgc2ltaWxhciB0cm91
YmxlczoKPj4gPj4gaHR0cDovL21hcmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xMjA5NTg3OTEz
MjM5MTEmdz0yCj4+ID4+Cj4+ID4+IEl0cyBiZWVuIDIwIGRheXMsIHNvIEkgZGVjaWRlZCB0byBi
aXNlY3QuCj4+ID4+IGdpdCBiaXNlY3QgcmV2ZWFsZWQgdGhhdCBjb21taXQKPj4gPj4gN2Q3MTVh
NmMxYWU1Nzg1ZDAwZmI5YTg3NmI1YWJkZmM0M2FiYzQ0Ygo+PiA+PiBpcyB0aGUgb25lIGNhdXNp
bmcgcGF0YV9qbWljcm9uIHRvIGZhaWwgdG8gZGV0ZWN0IGRyaXZlcywKPj4gPj4gY29ubmVjdGVk
IHRvIHRoZSBKTWljcm9uIGNvbnRyb2xlciBvbiBteSBtb3RoZXJib2FyZC4KPj4gPj4gQXQgbGVh
c3QgaW4gbXkgY2FzZSwgYW55d2F5Li4uCj4+ID4+IENoYW5naW5nIGtlcm5lbCBjb25maWcgdG8g
Q09ORklHX1BDSUVBU1BNPW4gbWFrZXMgdGhlIGRyaXZlcwo+PiA+PiBhdHRhY2hlZCB0byB0aGUg
Sk1pY3JvbiBTQVRBL1BBVEEgY29udHJvbGxlciB1c2FibGUgYWdhaW4uCj4+ID4gV2hlbiB5b3Ug
ZW5hYmxlIHRoaXMgb3B0aW9uLCBkaWQgeW91IGNoYW5nZSBhbnkgQVNQTSBwb2xpY3k/IEJ5IGRl
ZmF1bHQsCj4+ID4gd2UgYXJlIHVzaW5nIHRoZSBCSU9TIHNldHRpbmcsIHNvIGl0IHNob3VsZG4n
dCBjaGFuZ2UgYW55IHRoaW5nLgo+PiA+Cj4+Cj4+IE5vLCBJIGRpZCBub3QgY2hhbmdlIGFueSBB
U1BNIHBvbGljeSwgbWFpbmx5IGJlY2F1c2UgSSBkbyBub3QgaG93Lgo+Pgo+PiA+IEFsc28gY2Fu
IHlvdSBwbGVhc2Ugc2VuZCBtZSB0aGUgJ2xzcGNpIC12dnZ4eHh4JyBvdXRwdXQgd2l0aC93aXRo
b3V0IHRoZQo+PiA+IEFTUE0gZW5hYmxlZD8KPj4gPgo+IENhbiB5b3UgcGxlYXNlIHRyeSBiZWxv
dyBwYXRjaD8KCkkgY29uZmlybSB0aGF0IHRoZSBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgd2hlbiBD
T05GSUdfQVNQTSBpcyBlbmFibGVkLgoKPiBUaGUgU2xvdCAwMzowMC4qIG9mIEpNaWNyb24gY29u
dHJvbGxlciBoYXMgdHdvIGZ1bmN0aW9ucywgYnV0IG9uZSBpcwo+IFBDSUUgZW5kcG9pbnQgdGhl
IG90aGVyIGlzbid0 ...
From: Shaohua Li
Date: Wednesday, May 21, 2008 - 6:15 pm

Jesse, can you take this patch. It should be safe for 2.6.26.

Thanks,
Shaohua

--

From: Jesse Barnes
Date: Wednesday, May 21, 2008 - 6:30 pm

Definitely.  Thanks Shaohua.

Jesse
--

Previous thread: [PATCH] remove useless argument type in audit_filter_user() by Peng Haitao on Monday, May 19, 2008 - 6:13 pm. (1 message)

Next thread: kernel 2.6.22 CPU shoot up with same amount of file I/O by Reeve Yang on Monday, May 19, 2008 - 7:47 pm. (1 message)