mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Meyer <thomas@m3y3r.de>, Ingo Molnar <mingo@elte.hu>,
	Stefan Richter <stefanr@s5r6.in-berlin.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	LKML <linux-kernel@vger.kernel.org>,
	Adrian Bunk <bunk@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Natalie Protasevich <protasnb@gmail.com>
Subject: Re: ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24)
Date: Wed, 26 Mar 2008 14:39:10 +1100	[thread overview]
Message-ID: <1206502750.10573.12.camel@pasglop> (raw)
In-Reply-To: <alpine.LFD.1.00.0803241343350.2775@woody.linux-foundation.org>


On Mon, 2008-03-24 at 13:47 -0700, Linus Torvalds wrote:
> 
> On Mon, 24 Mar 2008, Thomas Meyer wrote:
> > Ingo Molnar schrieb:
> > > 
> > > the bootlog should have such entries:
> > > 
> > >   ioremap: 0x12340000(0x00001000) => 0x12340000
> > > 
> > > near the ohci1394 initialization messages.
> >
> > Second try. See attached file.
> 
> Hmm. This isn't with my suggested patch, is it?
> 
> You are still losing the high 32 bits, and we see:
> 
> 	[  162.485695] ioremap: 00000000(00000800) => f8978000
> 		<3>ohci1394: fw-host0: Get PHY Reg timeout [0x00008400/0x00000000/100]
> 
> because it's trying to ioremap the resource that is at 0x100000000, and it 
> gets truncated to 0x00000000.
> 
> I already committed my patch as "obviously correct", so if you're a git 
> user, you can just update to current git, but here it is again if you 
> missed it and aren't a git person.

Misses your patch (email problems yesterday).

I suggest you merge the one bulk-fixing iomap and then apply your x86
ioremap fixup on top of it, if not too late..

Cheers,
Ben.

> 		Linus
> 
> ---
> commit b9e76a00749521f2b080fa8a4fb15f66538ab756
> Author: Linus Torvalds <torvalds@linux-foundation.org>
> Date:   Mon Mar 24 11:22:39 2008 -0700
> 
>     x86-32: Pass the full resource data to ioremap()
>     
>     It appears that 64-bit PCI resources cannot possibly ever have worked on
>     x86-32 even when the RESOURCES_64BIT config option was set, because any
>     driver that tried to [pci_]ioremap() the resource would have been unable
>     to do so because the high 32 bits would have been silently dropped on
>     the floor by the ioremap() routines that only used "unsigned long".
>     
>     Change them to use "resource_size_t" instead, which properly encodes the
>     whole 64-bit resource data if RESOURCES_64BIT is enabled.
>     
>     Acked-by: H. Peter Anvin <hpa@kernel.org>
>     Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
>     Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
>     Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> ---
>  arch/x86/mm/ioremap.c   |    6 +++---
>  include/asm-x86/io_32.h |    6 +++---
>  include/asm-x86/io_64.h |    6 +++---
>  lib/iomap.c             |    2 +-
>  4 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
> index 8fe576b..4afaba0 100644
> --- a/arch/x86/mm/ioremap.c
> +++ b/arch/x86/mm/ioremap.c
> @@ -106,7 +106,7 @@ static int ioremap_change_attr(unsigned long vaddr, unsigned long size,
>   * have to convert them into an offset in a page-aligned mapping, but the
>   * caller shouldn't need to know that small detail.
>   */
> -static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
> +static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size,
>  			       enum ioremap_mode mode)
>  {
>  	unsigned long pfn, offset, last_addr, vaddr;
> @@ -193,13 +193,13 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
>   *
>   * Must be freed with iounmap.
>   */
> -void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size)
> +void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size)
>  {
>  	return __ioremap(phys_addr, size, IOR_MODE_UNCACHED);
>  }
>  EXPORT_SYMBOL(ioremap_nocache);
>  
> -void __iomem *ioremap_cache(unsigned long phys_addr, unsigned long size)
> +void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
>  {
>  	return __ioremap(phys_addr, size, IOR_MODE_CACHED);
>  }
> diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h
> index 58d2c45..d4d8fbd 100644
> --- a/include/asm-x86/io_32.h
> +++ b/include/asm-x86/io_32.h
> @@ -114,13 +114,13 @@ static inline void * phys_to_virt(unsigned long address)
>   * If the area you are trying to map is a PCI BAR you should have a
>   * look at pci_iomap().
>   */
> -extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size);
> -extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size);
> +extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
> +extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
>  
>  /*
>   * The default ioremap() behavior is non-cached:
>   */
> -static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
> +static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
>  {
>  	return ioremap_nocache(offset, size);
>  }
> diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
> index f64a59c..db0be20 100644
> --- a/include/asm-x86/io_64.h
> +++ b/include/asm-x86/io_64.h
> @@ -158,13 +158,13 @@ extern void early_iounmap(void *addr, unsigned long size);
>   * it's useful if some control registers are in such an area and write combining
>   * or read caching is not desirable:
>   */
> -extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size);
> -extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size);
> +extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
> +extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
>  
>  /*
>   * The default ioremap() behavior is non-cached:
>   */
> -static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
> +static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
>  {
>  	return ioremap_nocache(offset, size);
>  }
> diff --git a/lib/iomap.c b/lib/iomap.c
> index db004a9..dd6ca48 100644
> --- a/lib/iomap.c
> +++ b/lib/iomap.c
> @@ -256,7 +256,7 @@ EXPORT_SYMBOL(ioport_unmap);
>   * */
>  void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
>  {
> -	unsigned long start = pci_resource_start(dev, bar);
> +	resource_size_t start = pci_resource_start(dev, bar);
>  	unsigned long len = pci_resource_len(dev, bar);
>  	unsigned long flags = pci_resource_flags(dev, bar);
>  
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


  reply	other threads:[~2008-03-26  3:41 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-22  1:59 2.6.25-rc6-git6: Reported regressions from 2.6.24 Rafael J. Wysocki
2008-03-22  2:52 ` Jeff Garzik
2008-03-22 11:11   ` Ingo Molnar
2008-03-22  5:33 ` Andrew Morton
2008-03-22 11:15   ` Ingo Molnar
2008-03-22 17:53     ` Rafael J. Wysocki
2008-03-22 16:32 ` Heiko Carstens
2008-03-22 17:56   ` Rafael J. Wysocki
2008-03-22 16:34 ` ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) Stefan Richter
2008-03-22 17:24   ` Thomas Meyer
2008-03-22 17:58     ` Rafael J. Wysocki
2008-03-22 18:27     ` Stefan Richter
2008-03-22 19:02       ` Stefan Richter
2008-03-22 21:33         ` Linus Torvalds
2008-03-22 21:58           ` Thomas Gleixner
2008-03-22 21:59           ` H. Peter Anvin
2008-03-22 22:27             ` ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) [Bug 10080] Stefan Richter
2008-03-22 23:28             ` ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) Yinghai Lu
2008-03-22 23:31               ` H. Peter Anvin
2008-03-23  2:00                 ` Yinghai Lu
2008-03-23  2:39                   ` H. Peter Anvin
2008-03-23  3:30                     ` Yinghai Lu
2008-03-22 23:01           ` Linus Torvalds
2008-03-22 23:50             ` Stefan Richter
2008-03-23  6:35               ` Ingo Molnar
2008-03-24 19:34                 ` Thomas Meyer
2008-03-24 19:47                   ` Ingo Molnar
2008-03-24 20:17                     ` Thomas Meyer
2008-03-24 20:47                       ` Linus Torvalds
2008-03-26  3:39                         ` Benjamin Herrenschmidt [this message]
2008-03-26 23:25                           ` Benjamin Herrenschmidt
2008-03-24 19:58             ` Thomas Meyer
2008-03-24 20:50               ` Linus Torvalds
2008-03-24 21:24                 ` Stefan Richter
2008-03-24 21:47               ` Stefan Richter
2008-03-25  7:31                 ` Ingo Molnar
2008-03-25 16:50                   ` Ingo Molnar
2008-03-25 17:06                     ` Stefan Richter
2008-03-25 18:32                     ` Thomas Meyer
2008-03-25 20:11                       ` Ingo Molnar
2008-03-25 20:29                         ` Ingo Molnar
2008-03-25 21:08                           ` Thomas Meyer
2008-03-25 21:47                             ` Linus Torvalds
2008-03-25 22:02                               ` Thomas Meyer
2008-03-26 10:14                               ` Ivan Kokshaysky
2008-03-26 12:17                                 ` Benjamin Herrenschmidt
2008-03-26 13:54                                 ` [patch] pci: revert "PCI: remove transparent bridge sizing" Ingo Molnar
2008-03-26 17:45                                   ` Thomas Meyer
2008-03-26 18:07                                   ` Gary Hade
2008-03-26 18:33                                     ` Linus Torvalds
2008-03-26 20:30                                       ` Gary Hade
2008-03-26 20:46                                         ` Linus Torvalds
2008-03-26 20:58                                           ` Ivan Kokshaysky
2008-03-26 21:41                                             ` Linus Torvalds
2008-03-26 21:57                                               ` Benjamin Herrenschmidt
2008-03-26 22:07                                                 ` Alan Cox
2008-03-26 22:27                                                   ` Benjamin Herrenschmidt
2008-03-26 22:10                                                 ` Ingo Molnar
2008-03-26 22:29                                                   ` Benjamin Herrenschmidt
2008-03-26 22:47                                                     ` Linus Torvalds
2008-03-26 22:54                                                       ` Benjamin Herrenschmidt
2008-03-26 23:18                                                         ` Benjamin Herrenschmidt
2008-03-26 22:30                                                   ` Ingo Molnar
2008-03-26 22:31                                                 ` Linus Torvalds
2008-03-26 22:47                                                   ` Alan Cox
2008-03-26 23:17                                                     ` Benjamin Herrenschmidt
2008-03-26 23:29                                               ` Ivan Kokshaysky
2008-03-26 23:43                                                 ` Linus Torvalds
2008-03-27 17:12                                                   ` Linus Torvalds
2008-03-27 22:18                                                     ` Ivan Kokshaysky
2008-03-27 22:34                                                       ` Linus Torvalds
2008-03-28 19:24                                                       ` Gary Hade
2008-03-28 20:46                                                         ` Gary Hade
2008-03-30 15:44                                                           ` Ivan Kokshaysky
2008-03-26 23:45                                                 ` Benjamin Herrenschmidt
2008-03-26 21:29                                     ` Ingo Molnar
2008-03-26 11:12                           ` ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) Ivan Kokshaysky
2008-03-25 21:02                         ` Thomas Meyer
2008-03-25 23:33           ` Benjamin Herrenschmidt
2008-03-26  0:03             ` Yinghai Lu
2008-03-26  0:12               ` Benjamin Herrenschmidt
2008-03-23 12:57 ` 2.6.25-rc6-git6: Reported regressions from 2.6.24 Alan Cox
2008-03-26 16:30 ` Ray Lee
2008-03-26 17:02   ` Adrian Bunk
2008-03-26 22:11   ` Rafael J. Wysocki
2008-03-27 10:18   ` Romano Giannetti
2008-03-27 14:43     ` Ray Lee
2008-03-31 18:21 ` Linus Torvalds
2008-03-31 19:29   ` Mark Lord
2008-03-31 21:04     ` Tino Keitel
2008-03-31 21:26       ` Tino Keitel
2008-04-03 19:06     ` 2.6.25-rc7/8: Another resume regression Mark Lord
2008-04-05  2:27       ` Mark Lord
2008-04-07 10:51         ` Rafael J. Wysocki
2008-04-07 15:51           ` Mark Lord
2008-04-07 17:40             ` Rafael J. Wysocki
2008-04-08 15:35               ` Mark Lord

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=1206502750.10573.12.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=akpm@linux-foundation.org \
    --cc=bunk@kernel.org \
    --cc=ink@jurassic.park.msu.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=protasnb@gmail.com \
    --cc=rjw@sisk.pl \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=tglx@linutronix.de \
    --cc=thomas@m3y3r.de \
    --cc=torvalds@linux-foundation.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

Powered by JetHome