linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Helge Deller <deller@gmx.de>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: John David Anglin <dave.anglin@bell.net>,
	Yinghai Lu <yinghai@kernel.org>, Meelis Roos <mroos@linux.ee>,
	linux-parisc@vger.kernel.org,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	James Bottomley <James.Bottomley@hansenpartnership.com>
Subject: Re: A500 boot crash in 4.2.0-rc3-00246-g763e326
Date: Thu, 20 Aug 2015 08:53:11 +0200	[thread overview]
Message-ID: <55D57957.8020708@gmx.de> (raw)
In-Reply-To: <20150820054234.GA10267@google.com>

On 20.08.2015 07:42, Bjorn Helgaas wrote:
> On Wed, Aug 19, 2015 at 04:06:38PM +0200, Helge Deller wrote:
>>> On 2015-08-19, at 1:30 AM, Yinghai Lu wrote:
>>>> On Tue, Aug 18, 2015 at 9:48 PM, Meelis Roos <mroos@linux.ee> wrote:
>>>>>> On Tue, Aug 18, 2015 at 12:47 PM, Helge Deller <deller@gmx.de> wrote:
>>>>>>
>>>>>> Then we should change to
>>>>>>
>>>>>> config PCI_BUS_ADDR_T_64BIT
>>>>>>        def_bool y if (ARCH_DMA_ADDR_T_64BIT || SPARC64)
>>>>>>        depends on PCI
>>>>>
>>>>> Why SPARC64? The problem happened on parisc.
>>>> so will not set PCI_BUS_ADDR_T_64BIT for parisc.
>>
>> I think given the current time frame it's probably the best approach to fix this problem for kernel 4.2.
>> It reverts the behaviour back to how it was before (for all arches beside SPARC64).
>> I'm still wondering if/why parisc is the only arch (in the sym53c8xx driver only!) which broke by this change...
>>
>>> I'm not sure this is optimal.  While the A500 may only have 32-bit PCI, c8000 appears to have a mix
>>> of 32 and 64-bit, and rp34XX is all 64-bit.
>>
>> True, but probably nobody of us noticed that we only used the 32-bit PCI interface even with 64bit kernel on parisc up to now?
>> pci_bus_alloc_resource() in drivers/pci/bus.c just disabled (flag=0) all 64bit resources for us.
>> But I agree, I think we need to fix drivers/parisc/lba_pci.c to correctly cope with 64bit pci addresses.
>
> I doubt we can fix the underlying issue before v4.2,

Agreed.

> but I'd at least like to avoid it.  I applied the patch below to
> for-linus.
>
> Yinghai proposed this:
>
>>>>>>        def_bool y if (ARCH_DMA_ADDR_T_64BIT || SPARC64)
>
> I did this instead:
>
> +	def_bool y if (ARCH_DMA_ADDR_T_64BIT || (64BIT && !PARISC))
>
> because (a) Yinghai's proposal suggests this change is related to
> SPARC64, which is misleading, and (b) I want to keep 64-bit bus
> addresses for all 64-bit kernels *except* PA-RISC.

Ok.
  
> I didn't mark it as Tested-by Meelis because I think he tested
> Yinghai's proposal.  But I can add that back, given confirmation.
>
>
> commit 51a660a2732c
> Author: Bjorn Helgaas <bhelgaas@google.com>
> Date:   Thu Aug 20 00:08:15 2015 -0500
>
>      PCI: Don't use 64-bit bus addresses on PA-RISC
>
>      Meelis and Helge reported that 3a9ad0b4fdcd ("PCI: Add pci_bus_addr_t")
>      caused HPMCs on A500 and hangs on rp5470.
>
>      PA-RISC does not set ARCH_DMA_ADDR_T_64BIT, even for 64-bit kernels, so
>      prior to 3a9ad0b4fdcd, we always used 32-bit PCI addresses.  After
>      3a9ad0b4fdcd, we do use 64-bit PCI addresses in 64-bit kernels, and
>      apparently there's some PA-RISC problem related to them.
>
>      Fixes: 3a9ad0b4fdcd ("PCI: Add pci_bus_addr_t")
>      Link: http://lkml.kernel.org/r/alpine.LRH.2.11.1507260929000.30065@math.ut.ee
>      Reported-by: Meelis Roos <mroos@linux.ee>
>      Reported-by: Helge Deller <deller@gmx.de>
>      Based-on-idea-by: Yinghai Lu <yinghai@kernel.org>
>      Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Looks OK. I will test later today.

Can you please add
  CC: stable@vger.kernel.org  # v3.19+
since commit 3a9ad0b4fdcd had that too and now all kernels down to 3.19+ are
broken on parisc...

Thanks!
Helge  
  
> diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
> index 73de4ef..944f500 100644
> --- a/drivers/pci/Kconfig
> +++ b/drivers/pci/Kconfig
> @@ -2,7 +2,7 @@
>   # PCI configuration
>   #
>   config PCI_BUS_ADDR_T_64BIT
> -	def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT)
> +	def_bool y if (ARCH_DMA_ADDR_T_64BIT || (64BIT && !PARISC))
>   	depends on PCI
>
>   config PCI_MSI


  reply	other threads:[~2015-08-20  6:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <alpine.LRH.2.11.1507260929000.30065@math.ut.ee>
     [not found] ` <trinity-122a736f-3aac-4830-afc5-2abcd91792ea-1439820380917@3capp-gmx-bs71>
     [not found]   ` <trinity-5720bef8-5a4c-4465-b9eb-622daaef650a-1439902901415@3capp-gmx-bs02>
2015-08-18 18:44     ` Aw: A500 boot crash in 4.2.0-rc3-00246-g763e326 Meelis Roos
2015-08-18 19:47       ` Helge Deller
2015-08-18 21:24         ` Yinghai Lu
2015-08-19  4:48           ` Meelis Roos
2015-08-19  5:30             ` Yinghai Lu
2015-08-19 11:25               ` John David Anglin
2015-08-19 14:06                 ` Aw: " Helge Deller
2015-08-20  5:42                   ` Bjorn Helgaas
2015-08-20  6:53                     ` Helge Deller [this message]
2015-08-20 19:31                     ` Yinghai Lu
2015-08-20 21:15                       ` Helge Deller
2015-08-20 21:30                         ` Bjorn Helgaas
2015-08-19 10:40           ` Aw: " Meelis Roos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55D57957.8020708@gmx.de \
    --to=deller@gmx.de \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=bhelgaas@google.com \
    --cc=dave.anglin@bell.net \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mroos@linux.ee \
    --cc=sparclinux@vger.kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).