]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
cnic: Read bnx2x function number from internal register
authorEddie Wai <eddie.wai@broadcom.com>
Wed, 27 Jun 2012 15:08:20 +0000 (15:08 +0000)
committerJoe Jin <joe.jin@oracle.com>
Tue, 28 Aug 2012 07:23:15 +0000 (15:23 +0800)
so that it will work on any hypervisor.

(cherry picked from commit 78ea22e8042b8a55c5a047869ed1fd9b3711340c)
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/cnic.c

index 5d7129d049bd2b69d8b9ff0eb2df940f6391d8b2..53bd5c58844ee6aa4d64b68fefa42a41a741ae9c 100644 (file)
@@ -4981,8 +4981,14 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev)
        cp->port_mode = CHIP_PORT_MODE_NONE;
 
        if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
-               u32 val = CNIC_RD(dev, MISC_REG_PORT4MODE_EN_OVWR);
+               u32 val;
+
+               pci_read_config_dword(dev->pcidev, PCICFG_ME_REGISTER, &val);
+               cp->func = (u8) ((val & ME_REG_ABS_PF_NUM) >>
+                                ME_REG_ABS_PF_NUM_SHIFT);
+               func = CNIC_FUNC(cp);
 
+               val = CNIC_RD(dev, MISC_REG_PORT4MODE_EN_OVWR);
                if (!(val & 1))
                        val = CNIC_RD(dev, MISC_REG_PORT4MODE_EN);
                else