Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c34ac36ac1084e571ef9b6fb1d6a5b10ccc1fd0
Commit:     3c34ac36ac1084e571ef9b6fb1d6a5b10ccc1fd0
Parent:     09dde54c6a69d4f9ea1213923b93aeae7020f8b6
Author:     Benjamin Herrenschmidt <[EMAIL PROTECTED]>
AuthorDate: Fri Nov 16 18:37:38 2007 +1100
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Mon Feb 11 10:32:16 2008 -0500

    e1000: Fix for 32 bits platforms with 64 bits resources
    
    The e1000 driver stores the content of the PCI resources into
    unsigned long's before ioremapping. This breaks on 32 bits
    platforms that support 64 bits MMIO resources such as ppc 44x.
    
    This fixes it by removing those temporary variables and passing
    directly the result of pci_resource_start/len to ioremap.
    
    The side effect is that I removed the assignments to the netdev
    fields mem_start, mem_end and base_addr, which are totally useless
    for PCI devices.
    
    Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
    --
    
     drivers/net/e1000/e1000_main.c |   18 +++++-------------
     1 file changed, 5 insertions(+), 13 deletions(-)
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/e1000/e1000_main.c |   18 +++++-------------
 1 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 7c5b05a..d4ee8ec 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -926,8 +926,6 @@ e1000_probe(struct pci_dev *pdev,
 {
        struct net_device *netdev;
        struct e1000_adapter *adapter;
-       unsigned long mmio_start, mmio_len;
-       unsigned long flash_start, flash_len;
 
        static int cards_found = 0;
        static int global_quad_port_a = 0; /* global ksp3 port a indication */
@@ -970,11 +968,9 @@ e1000_probe(struct pci_dev *pdev,
        adapter->hw.back = adapter;
        adapter->msg_enable = (1 << debug) - 1;
 
-       mmio_start = pci_resource_start(pdev, BAR_0);
-       mmio_len = pci_resource_len(pdev, BAR_0);
-
        err = -EIO;
-       adapter->hw.hw_addr = ioremap(mmio_start, mmio_len);
+       adapter->hw.hw_addr = ioremap(pci_resource_start(pdev, BAR_0),
+                                     pci_resource_len(pdev, BAR_0));
        if (!adapter->hw.hw_addr)
                goto err_ioremap;
 
@@ -1009,10 +1005,6 @@ e1000_probe(struct pci_dev *pdev,
 #endif
        strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
 
-       netdev->mem_start = mmio_start;
-       netdev->mem_end = mmio_start + mmio_len;
-       netdev->base_addr = adapter->hw.io_base;
-
        adapter->bd_number = cards_found;
 
        /* setup the private structure */
@@ -1025,9 +1017,9 @@ e1000_probe(struct pci_dev *pdev,
         * because it depends on mac_type */
        if ((adapter->hw.mac_type == e1000_ich8lan) &&
           (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
-               flash_start = pci_resource_start(pdev, 1);
-               flash_len = pci_resource_len(pdev, 1);
-               adapter->hw.flash_address = ioremap(flash_start, flash_len);
+               adapter->hw.flash_address =
+                       ioremap(pci_resource_start(pdev, 1),
+                               pci_resource_len(pdev, 1));
                if (!adapter->hw.flash_address)
                        goto err_flashmap;
        }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to