Loading drivers/net/wireless/ath/wil6210/ioctl.c +2 −2 Original line number Diff line number Diff line /* * Copyright (c) 2014 Qualcomm Atheros, Inc. * Copyright (c) 2014,2017 Qualcomm Atheros, Inc. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above Loading Loading @@ -54,7 +54,7 @@ static void __iomem *wil_ioc_addr(struct wil6210_priv *wil, uint32_t addr, } off = a - wil->csr; if (size >= WIL6210_MEM_SIZE - off) { if (size >= wil->bar_size - off) { wil_err(wil, "Requested block does not fit into memory: " "off = 0x%08x size = 0x%08x\n", off, size); return NULL; Loading drivers/net/wireless/ath/wil6210/pcie_bus.c +10 −7 Original line number Diff line number Diff line Loading @@ -198,16 +198,18 @@ static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) .ramdump = wil_platform_rop_ramdump, .fw_recovery = wil_platform_rop_fw_recovery, }; u32 bar_size = pci_resource_len(pdev, 0); /* check HW */ dev_info(&pdev->dev, WIL_NAME " device found [%04x:%04x] (rev %x)\n", (int)pdev->vendor, (int)pdev->device, (int)pdev->revision); if (pci_resource_len(pdev, 0) != WIL6210_MEM_SIZE) { dev_err(&pdev->dev, "Not " WIL_NAME "? " "BAR0 size is %lu while expecting %lu\n", (ulong)pci_resource_len(pdev, 0), WIL6210_MEM_SIZE); " device found [%04x:%04x] (rev %x) bar size 0x%x\n", (int)pdev->vendor, (int)pdev->device, (int)pdev->revision, bar_size); if ((bar_size < WIL6210_MIN_MEM_SIZE) || (bar_size > WIL6210_MAX_MEM_SIZE)) { dev_err(&pdev->dev, "Unexpected BAR0 size 0x%x\n", bar_size); return -ENODEV; } Loading @@ -220,6 +222,7 @@ static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) wil->pdev = pdev; pci_set_drvdata(pdev, wil); wil->bar_size = bar_size; /* rollback to if_free */ wil->platform_handle = Loading drivers/net/wireless/ath/wil6210/wil6210.h +3 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,8 @@ static inline u32 WIL_GET_BITS(u32 x, int b0, int b1) return (x >> b0) & ((1 << (b1 - b0 + 1)) - 1); } #define WIL6210_MEM_SIZE (2*1024*1024UL) #define WIL6210_MIN_MEM_SIZE (2 * 1024 * 1024UL) #define WIL6210_MAX_MEM_SIZE (4 * 1024 * 1024UL) #define WIL_TX_Q_LEN_DEFAULT (4000) #define WIL_RX_RING_SIZE_ORDER_DEFAULT (10) Loading Loading @@ -617,6 +618,7 @@ extern u8 led_polarity; struct wil6210_priv { struct pci_dev *pdev; u32 bar_size; struct wireless_dev *wdev; void __iomem *csr; DECLARE_BITMAP(status, wil_status_last); Loading drivers/net/wireless/ath/wil6210/wmi.c +2 −2 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ void __iomem *wmi_buffer(struct wil6210_priv *wil, __le32 ptr_) return NULL; off = HOSTADDR(ptr); if (off > WIL6210_MEM_SIZE - 4) if (off > wil->bar_size - 4) return NULL; return wil->csr + off; Loading @@ -180,7 +180,7 @@ void __iomem *wmi_addr(struct wil6210_priv *wil, u32 ptr) return NULL; off = HOSTADDR(ptr); if (off > WIL6210_MEM_SIZE - 4) if (off > wil->bar_size - 4) return NULL; return wil->csr + off; Loading Loading
drivers/net/wireless/ath/wil6210/ioctl.c +2 −2 Original line number Diff line number Diff line /* * Copyright (c) 2014 Qualcomm Atheros, Inc. * Copyright (c) 2014,2017 Qualcomm Atheros, Inc. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above Loading Loading @@ -54,7 +54,7 @@ static void __iomem *wil_ioc_addr(struct wil6210_priv *wil, uint32_t addr, } off = a - wil->csr; if (size >= WIL6210_MEM_SIZE - off) { if (size >= wil->bar_size - off) { wil_err(wil, "Requested block does not fit into memory: " "off = 0x%08x size = 0x%08x\n", off, size); return NULL; Loading
drivers/net/wireless/ath/wil6210/pcie_bus.c +10 −7 Original line number Diff line number Diff line Loading @@ -198,16 +198,18 @@ static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) .ramdump = wil_platform_rop_ramdump, .fw_recovery = wil_platform_rop_fw_recovery, }; u32 bar_size = pci_resource_len(pdev, 0); /* check HW */ dev_info(&pdev->dev, WIL_NAME " device found [%04x:%04x] (rev %x)\n", (int)pdev->vendor, (int)pdev->device, (int)pdev->revision); if (pci_resource_len(pdev, 0) != WIL6210_MEM_SIZE) { dev_err(&pdev->dev, "Not " WIL_NAME "? " "BAR0 size is %lu while expecting %lu\n", (ulong)pci_resource_len(pdev, 0), WIL6210_MEM_SIZE); " device found [%04x:%04x] (rev %x) bar size 0x%x\n", (int)pdev->vendor, (int)pdev->device, (int)pdev->revision, bar_size); if ((bar_size < WIL6210_MIN_MEM_SIZE) || (bar_size > WIL6210_MAX_MEM_SIZE)) { dev_err(&pdev->dev, "Unexpected BAR0 size 0x%x\n", bar_size); return -ENODEV; } Loading @@ -220,6 +222,7 @@ static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) wil->pdev = pdev; pci_set_drvdata(pdev, wil); wil->bar_size = bar_size; /* rollback to if_free */ wil->platform_handle = Loading
drivers/net/wireless/ath/wil6210/wil6210.h +3 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,8 @@ static inline u32 WIL_GET_BITS(u32 x, int b0, int b1) return (x >> b0) & ((1 << (b1 - b0 + 1)) - 1); } #define WIL6210_MEM_SIZE (2*1024*1024UL) #define WIL6210_MIN_MEM_SIZE (2 * 1024 * 1024UL) #define WIL6210_MAX_MEM_SIZE (4 * 1024 * 1024UL) #define WIL_TX_Q_LEN_DEFAULT (4000) #define WIL_RX_RING_SIZE_ORDER_DEFAULT (10) Loading Loading @@ -617,6 +618,7 @@ extern u8 led_polarity; struct wil6210_priv { struct pci_dev *pdev; u32 bar_size; struct wireless_dev *wdev; void __iomem *csr; DECLARE_BITMAP(status, wil_status_last); Loading
drivers/net/wireless/ath/wil6210/wmi.c +2 −2 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ void __iomem *wmi_buffer(struct wil6210_priv *wil, __le32 ptr_) return NULL; off = HOSTADDR(ptr); if (off > WIL6210_MEM_SIZE - 4) if (off > wil->bar_size - 4) return NULL; return wil->csr + off; Loading @@ -180,7 +180,7 @@ void __iomem *wmi_addr(struct wil6210_priv *wil, u32 ptr) return NULL; off = HOSTADDR(ptr); if (off > WIL6210_MEM_SIZE - 4) if (off > wil->bar_size - 4) return NULL; return wil->csr + off; Loading