Re: [PASEMI] Nemo board doesn't recognize any ATA disks with the pci-v5.16 updates
From: Christian Zigotzky <hidden>
Date: 2021-11-12 15:02:07
Also in:
linux-pci
Am 12.11.21 um 15:46 schrieb Marc Zyngier:
On Fri, 12 Nov 2021 14:15:18 +0000, Christian Zigotzky [off-list ref] wrote:quoted
On 12 November 2021 at 02:41 pm, Marc Zyngier wrote:quoted
On Fri, 12 Nov 2021 09:40:30 +0000, Christian Zigotzky [off-list ref] wrote:quoted
On 11 November 2021 at 06:39 pm, Marc Zyngier wrote:quoted
On Wed, 10 Nov 2021 18:07:24 +0000, Christian Zigotzky [off-list ref] wrote:quoted
On 09 November 2021 at 03:45 pm, Christian Zigotzky wrote:quoted
Hello, The Nemo board [1] doesn't recognize any ATA disks with thepci-v5.16 updates [2].quoted
Error messages: ata4.00: gc timeout cmd 0xec ata4.00: failed to IDENTIFY (I/O error, error_mask=0x4) ata1.00: gc timeout cmd 0xec ata1.00: failed to IDENTIFY (I/O error, error_mask=0x4) ata3.00: gc timeout cmd 0xec ata3.00: failed to IDENTIFY (I/O error, error_mask=0x4) I was able to revert the new pci-v5.16 updates [2]. After a newcompiling, the kernel recognize all ATA disks correctly.quoted
Could you please check the pci-v5.16 updates [2]? Please find attached the kernel config. Thanks, Christian [1] https://en.wikipedia.org/wiki/AmigaOne_X1000 [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c5c62ddf88c34bc83b66e4ac9beb2bb0e1887d4 Hi All, Many thanks for your nice responses. I bisected today [1]. 0412841812265734c306ba5ef8088bcb64d5d3bd (of/irq: Allow matching of an interrupt-map local to an interrupt controller) [2] is the first bad commit.Can you please give the following hack a go and post the result (including the full dmesg)? Thanks, M.diff --git a/drivers/of/irq.c b/drivers/of/irq.c index 32be5a03951f..8cf0cc9b7caf 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c@@ -156,14 +156,15 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) /* Now start the actual "proper" walk of the interrupt tree */ while (ipar != NULL) { + bool intc = of_property_read_bool(ipar, "interrupt-controller"); + /* * Now check if cursor is an interrupt-controller and * if it is then we are done, unless there is an * interrupt-map which takes precedence. */ imap = of_get_property(ipar, "interrupt-map", &imaplen); - if (imap == NULL && - of_property_read_bool(ipar, "interrupt-controller")) { + if (imap == NULL && intc) { pr_debug(" -> got it !\n"); return 0; }@@ -244,8 +245,14 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) pr_debug(" -> imaplen=%d\n", imaplen); } - if (!match) + if (!match) { + if (intc) { + pr_info("%pOF interrupt-map failed, using interrupt-controller\n", ipar); + return 0; + } + goto fail; + } /* * Successfully parsed an interrrupt-map translation; copy newThe detecting of the ATA disks works with this patch! Well done! Thanks a lot!Thanks for testing it. I'll turn that into a proper patch. M.Could you please explain your patch?Please refer to the commit message[1].quoted
I am not a developer. I work for the A-EON Linux FLS.I have no idea what this is, unfortunately. M. [1] https://lore.kernel.org/r/20211112143644.434995-1-maz@kernel.org (local)
FLS: First Level Support (IT customer support) SLS: Second Level Support (administrators) TLS: Third Level Support (developers -> you) I have to explain to our customer why the kernel doesn't their ATA disk anymore. :-D But it is fixed and I don't need to explain it. Thanks a lot for your help. - Christian