From: Jeff Garzik <jgarzik@pobox.com>
To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: netdev@vger.kernel.org, linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] natsemi: fix for PPC 44x platforms
Date: Sat, 12 Apr 2008 04:36:17 -0400 [thread overview]
Message-ID: <48007481.3040102@pobox.com> (raw)
In-Reply-To: <200804082331.23270.sshtylyov@ru.mvista.com>
Sergei Shtylyov wrote:
> The driver stores the the PCI resource address into 'unsigned long' variable
> before calling ioremap() on it. This warrants kernel oops when the registers
> are accessed on PPC 44x platforms which (being 32-bit) have PCI memory space
> mapped beyond 4 GB.
>
> The arch/ppc/ kernel has a fixup in ioremap() that creates an illusion of the
> PCI I/O and memory resources are mapped below 4 GB, but arch/powerpc/ code got
> rid of this trick, having instead CONFIG_RESOURCES_64BIT enabled.
>
> Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
>
> ---
> This is the same issue as the one that has been recently addressed by commits
> 3c34ac36ac1084e571ef9b6fb1d6a5b10ccc1fd0 (e1000: Fix for 32 bits platforms with
> 64 bits resources) and c976816b6e901341ec3c4653147316c15549a1c4 (siimage: fix
> kernel oops on PPC 44x). The patch has only been compile tested though...
>
> drivers/net/natsemi.c | 7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
>
> Index: linux-2.6/drivers/net/natsemi.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/natsemi.c
> +++ linux-2.6/drivers/net/natsemi.c
> @@ -786,7 +786,8 @@ static int __devinit natsemi_probe1 (str
> struct netdev_private *np;
> int i, option, irq, chip_idx = ent->driver_data;
> static int find_cnt = -1;
> - unsigned long iostart, iosize;
> + resource_size_t iostart;
> + unsigned long iosize;
> void __iomem *ioaddr;
> const int pcibar = 1; /* PCI base address register */
> int prev_eedata;
> @@ -946,9 +947,9 @@ static int __devinit natsemi_probe1 (str
> goto err_create_file;
>
> if (netif_msg_drv(np)) {
> - printk(KERN_INFO "natsemi %s: %s at %#08lx "
> + printk(KERN_INFO "natsemi %s: %s at %#08llx "
> "(%s), %s, IRQ %d",
> - dev->name, natsemi_pci_info[chip_idx].name, iostart,
> + dev->name, natsemi_pci_info[chip_idx].name, (u64)iostart,
> pci_name(np->pci_dev), print_mac(mac, dev->dev_addr), irq);
> if (dev->if_port == PORT_TP)
ACK, with the cast fixed (to long long)
prev parent reply other threads:[~2008-04-12 8:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-08 19:31 [PATCH] natsemi: fix for PPC 44x platforms Sergei Shtylyov
2008-04-12 8:36 ` Jeff Garzik [this message]
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=48007481.3040102@pobox.com \
--to=jgarzik@pobox.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=sshtylyov@ru.mvista.com \
/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.