Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cnic: Fix mmap regression.

commit 1f85d58cdf15354a7120fc9ccc9bb9c45b53af88
cnic: Remove uio mem[0].

introduced a regression as older versions of userspace app still rely
on this mmap. Restore the mmap functionality and get the base address
from pci_resource_start() as the nedev->base_addr has been deprecated for
PCI devices.

Update version to 2.5.12.

Signed-off-by: Michael Chan <mchan@broadocm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Michael Chan and committed by
David S. Miller
ae0eef66 7a9bc9b8

+9 -3
+7 -1
drivers/net/ethernet/broadcom/cnic.c
··· 1063 1063 1064 1064 uinfo = &udev->cnic_uinfo; 1065 1065 1066 - uinfo->mem[0].memtype = UIO_MEM_NONE; 1066 + uinfo->mem[0].addr = pci_resource_start(dev->pcidev, 0); 1067 + uinfo->mem[0].internal_addr = dev->regview; 1068 + uinfo->mem[0].memtype = UIO_MEM_PHYS; 1067 1069 1068 1070 if (test_bit(CNIC_F_BNX2_CLASS, &dev->flags)) { 1071 + uinfo->mem[0].size = MB_GET_CID_ADDR(TX_TSS_CID + 1072 + TX_MAX_TSS_RINGS + 1); 1069 1073 uinfo->mem[1].addr = (unsigned long) cp->status_blk.gen & 1070 1074 PAGE_MASK; 1071 1075 if (cp->ethdev->drv_state & CNIC_DRV_STATE_USING_MSIX) ··· 1079 1075 1080 1076 uinfo->name = "bnx2_cnic"; 1081 1077 } else if (test_bit(CNIC_F_BNX2X_CLASS, &dev->flags)) { 1078 + uinfo->mem[0].size = pci_resource_len(dev->pcidev, 0); 1079 + 1082 1080 uinfo->mem[1].addr = (unsigned long) cp->bnx2x_def_status_blk & 1083 1081 PAGE_MASK; 1084 1082 uinfo->mem[1].size = sizeof(*cp->bnx2x_def_status_blk);
+2 -2
drivers/net/ethernet/broadcom/cnic_if.h
··· 14 14 15 15 #include "bnx2x/bnx2x_mfw_req.h" 16 16 17 - #define CNIC_MODULE_VERSION "2.5.11" 18 - #define CNIC_MODULE_RELDATE "June 27, 2012" 17 + #define CNIC_MODULE_VERSION "2.5.12" 18 + #define CNIC_MODULE_RELDATE "June 29, 2012" 19 19 20 20 #define CNIC_ULP_RDMA 0 21 21 #define CNIC_ULP_ISCSI 1