All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.