net: wireless: bcmdhd: Fix compilation warnings
Michael Hsu [Tue, 22 Sep 2015 01:55:46 +0000 (18:55 -0700)]
Fix compiler warning messages.

Bug 1454125

Change-Id: Id61b77731e6ba989d7f6ecae37afb3442f36ba0d
Signed-off-by: Michael Hsu <mhsu@nvidia.com>
Reviewed-on: http://git-master/r/802585
(cherry picked from commit 2b4bee3dcc3901daab64281a7258470ddeb62f16)
Reviewed-on: http://git-master/r/811792
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>

12 files changed:
drivers/net/wireless/bcmdhd/dhd_custom_gpio.c
drivers/net/wireless/bcmdhd/dhd_custom_sysfs_tegra_ping.c
drivers/net/wireless/bcmdhd/dhd_custom_sysfs_tegra_rssi.c
drivers/net/wireless/bcmdhd/dhd_custom_sysfs_tegra_scan.c
drivers/net/wireless/bcmdhd/dhd_custom_sysfs_tegra_stat.c
drivers/net/wireless/bcmdhd/dhd_custom_sysfs_tegra_tcpdump.c
drivers/net/wireless/bcmdhd/dhd_linux.c
drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
drivers/net/wireless/bcmdhd/include/dhd_custom_sysfs_tegra.h
drivers/net/wireless/bcmdhd/include/pcicfg.h
drivers/net/wireless/bcmdhd/wl_android.c
drivers/net/wireless/bcmdhd/wl_cfg80211.c

index 311c746..def231d 100644 (file)
@@ -1,6 +1,9 @@
 /*
 * Customer code to add GPIO control during WLAN start/stop
 * Copyright (C) 1999-2015, Broadcom Corporation
+*
+* Nvidia-specific country code customization
+* Copyright (C) 2015 NVIDIA Corporation. All rights reserved.
 * 
 *      Unless you and Broadcom execute a separate written software license
 * agreement governing use of this software, this software is licensed to you
@@ -411,13 +414,14 @@ void get_customized_country_code(void *adapter, char *country_iso_code, wl_count
        return;
 #else
        int size, i;
-
+#ifdef NV_COUNTRY_CODE
+       wifi_adapter_info_t *wifi_adapter = (wifi_adapter_info_t *)adapter;
+#endif
 
        if (cspec == 0)
                 return;
 
 #ifdef NV_COUNTRY_CODE
-       wifi_adapter_info_t *wifi_adapter = (wifi_adapter_info_t *)adapter;
        if (wifi_adapter->n_country == 0)
                 return;
 
index 640b7e4..cdecb32 100644 (file)
@@ -3,7 +3,7 @@
  *
  * NVIDIA Tegra Sysfs for BCMDHD driver
  *
- * Copyright (C) 2014 NVIDIA Corporation. All rights reserved.
+ * Copyright (C) 2014-2015 NVIDIA Corporation. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -32,6 +32,8 @@ ping_work_func(struct work_struct *work)
 {
        struct delayed_work *dwork = to_delayed_work(work);
 
+       UNUSED_PARAMETER(dwork);
+
 //     pr_info("%s\n", __func__);
 
        /* create ping request */
index a397ba3..7e03167 100644 (file)
@@ -3,7 +3,7 @@
  *
  * NVIDIA Tegra Sysfs for BCMDHD driver
  *
- * Copyright (C) 2014 NVIDIA Corporation. All rights reserved.
+ * Copyright (C) 2014-2015 NVIDIA Corporation. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -38,6 +38,8 @@ rssi_work_func(struct work_struct *work)
        int err;
        int i;
 
+       UNUSED_PARAMETER(dwork);
+
 //     pr_info("%s\n", __func__);
 
        /* create rssi request */
index 24c6278..a7db588 100644 (file)
@@ -24,6 +24,7 @@ int wifi_scan_policy_index = -1;
 struct wifi_scan_policy wifi_scan_policy_list[WIFI_SCAN_POLICY_MAX];
 
 static DEFINE_SEMAPHORE(wifi_scan_lock);
+static DEFINE_SEMAPHORE(wifi_scan_read_lock);
 
 static int
 wifi_scan_rule__add(const char **bufptr, size_t *countptr,
@@ -1556,15 +1557,23 @@ ssize_t
 tegra_debugfs_histogram_scan_read(struct file *filp,
        char __user *buff, size_t count, loff_t *offp)
 {
+       static char buf[PAGE_SIZE];
        struct device *dev = NULL;
        struct device_attribute *attr = NULL;
-       char buf[PAGE_SIZE];
        ssize_t size, chunk;
 
 //     pr_info("%s\n", __func__);
 
+       /* lock read semaphore */
+       if (down_interruptible(&wifi_scan_read_lock) < 0) {
+               WIFI_SCAN_DEBUG("%s: cannot lock read semaphore\n",
+                       __func__);
+               return 0;
+       }
+
        if (offp && (*offp != 0) &&
                (tegra_sysfs_histogram_scan_show_pointer == -1)) {
+               up(&wifi_scan_read_lock);
                return 0;
        }
 
@@ -1584,6 +1593,9 @@ tegra_debugfs_histogram_scan_read(struct file *filp,
                }
        }
 
+       /* unlock read semaphore */
+       up(&wifi_scan_read_lock);
+
        return size;
 }
 
index 31308ee..b205480 100644 (file)
@@ -3,7 +3,7 @@
  *
  * NVIDIA Tegra Sysfs for BCMDHD driver
  *
- * Copyright (C) 2014 NVIDIA Corporation. All rights reserved.
+ * Copyright (C) 2014-2015 NVIDIA Corporation. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -61,6 +61,8 @@ stat_work_func(struct work_struct *work)
        wl_cnt_t *cnt;
        int i;
 
+       UNUSED_PARAMETER(dwork);
+
 //     pr_info("%s\n", __func__);
 
        /* create stat request */
index f83e3c1..0aa5842 100644 (file)
@@ -3,7 +3,7 @@
  *
  * NVIDIA Tegra Sysfs for BCMDHD driver
  *
- * Copyright (C) 2014 NVIDIA Corporation. All rights reserved.
+ * Copyright (C) 2014-2015 NVIDIA Corporation. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -65,6 +65,8 @@ typedef struct {
 
 DEFINE_SPINLOCK(tcpdump_lock);
 
+static DEFINE_SEMAPHORE(tcpdump_read_lock);
+
 extern int lp0_logs_enable;
 int tcpdump_head;
 int tcpdump_tail;
@@ -100,7 +102,7 @@ tcpdump_set_maxpkt(int maxpkt)
 
 void
 tcpdump_pkt_save(char tag, const char *netif, const char *func, int line,
-       unsigned char *data,
+       const unsigned char *data,
        unsigned int data_nonpaged_len,
        unsigned int data_paged_len)
 {
@@ -373,7 +375,7 @@ tegra_sysfs_histogram_tcpdump_store(struct device *dev,
                        return count;
                } else if (maxpkt > sizeof(tcpdump_pkt)
                        / sizeof(tcpdump_pkt[0])) {
-                       pr_info("%s: limit maxpkt from %d to %d\n",
+                       pr_info("%s: limit maxpkt from %d to %ld\n",
                                __func__,
                                maxpkt,
                                sizeof(tcpdump_pkt) / sizeof(tcpdump_pkt[0]));
@@ -389,13 +391,20 @@ ssize_t
 tegra_debugfs_histogram_tcpdump_read(struct file *filp,
        char __user *buff, size_t count, loff_t *offp)
 {
+       static char buf[PAGE_SIZE];
        struct device *dev = NULL;
        struct device_attribute *attr = NULL;
-       char buf[PAGE_SIZE];
        ssize_t size, chunk;
 
 //     pr_info("%s\n", __func__);
 
+       /* lock read semaphore */
+       if (down_interruptible(&tcpdump_read_lock) < 0) {
+               pr_err("%s: cannot lock read semaphore\n",
+                       __func__);
+               return 0;
+       }
+
        for (size = 0; size + PAGE_SIZE <= count; size += chunk) {
                chunk = tegra_sysfs_histogram_tcpdump_show(dev, attr, buf);
                if (chunk <= 0)
@@ -406,6 +415,9 @@ tegra_debugfs_histogram_tcpdump_read(struct file *filp,
                }
        }
 
+       /* unlock read semaphore */
+       up(&tcpdump_read_lock);
+
        return size;
 }
 
index f79ef7d..7e84c63 100644 (file)
@@ -4,6 +4,9 @@
  *
  * Copyright (C) 1999-2015, Broadcom Corporation
  * 
+ * Portions contributed by Nvidia
+ * Copyright (C) 2015 NVIDIA Corporation. All rights reserved.
+ *
  *      Unless you and Broadcom execute a separate written software license
  * agreement governing use of this software, this software is licensed to you
  * under the terms of the GNU General Public License version 2 (the "GPL"),
@@ -3268,6 +3271,9 @@ dhd_txcomplete(dhd_pub_t *dhdp, void *txp, bool success)
        dhd_info_t *dhd = (dhd_info_t *)(dhdp->info);
        struct ether_header *eh;
        uint16 type;
+#ifdef PROP_TXSTATUS
+       dhd_if_t *ifp = dhd->iflist[DHD_PKTTAG_IF(PKTTAG(txp))];
+#endif
 
        dhd_prot_hdrpull(dhdp, NULL, txp, NULL, NULL);
 
@@ -3278,7 +3284,6 @@ dhd_txcomplete(dhd_pub_t *dhdp, void *txp, bool success)
                atomic_dec(&dhd->pend_8021x_cnt);
 
 #ifdef PROP_TXSTATUS
-       dhd_if_t *ifp = dhd->iflist[DHD_PKTTAG_IF(PKTTAG(txp))];
        ASSERT(ifp);
        if ( (ifp != NULL) && dhdp->wlfc_state && (dhdp->proptxstatus_mode != WLFC_FCMODE_NONE)) {
                uint datalen  = PKTLEN(dhd->pub.osh, txp);
@@ -5987,15 +5992,15 @@ dhd_preinit_ioctls(dhd_pub_t *dhd)
 #ifdef CUSTOM_PSPRETEND_THR
        uint32 pspretend_thr = CUSTOM_PSPRETEND_THR;
 #endif
+#ifdef RXCB
+       uint32 rxcb = 1;
+#endif
 #ifdef PKT_FILTER_SUPPORT
        dhd_pkt_filter_enable = TRUE;
 #endif /* PKT_FILTER_SUPPORT */
 #ifdef WLTDLS
        dhd->tdls_enable = FALSE;
 #endif /* WLTDLS */
-#ifdef RXCB
-       uint32 rxcb = 1;
-#endif
        dhd->suspend_bcn_li_dtim = CUSTOM_SUSPEND_BCN_LI_DTIM;
        DHD_TRACE(("Enter %s\n", __FUNCTION__));
        dhd->op_mode = 0;
index 2b30070..cd719cd 100644 (file)
@@ -3,6 +3,9 @@
  *
  * Copyright (C) 1999-2015, Broadcom Corporation
  * 
+ * Portions contributed by Nvidia
+ * Copyright (C) 2015 NVIDIA Corporation. All rights reserved.
+ *
  *      Unless you and Broadcom execute a separate written software license
  * agreement governing use of this software, this software is licensed to you
  * under the terms of the GNU General Public License version 2 (the "GPL"),
@@ -384,7 +387,7 @@ static int wifi_platform_get_country_code_map(struct device_node *node,
        int n_country;
        int ret;
        int i;
-       char *strptr;
+       const char *strptr;
 
        np_country = of_get_child_by_name(node, "country_code_map");
        if (!np_country) {
@@ -403,7 +406,7 @@ static int wifi_platform_get_country_code_map(struct device_node *node,
                DHD_ERROR(("%s: fail to allocate memory\n", __func__));
                return -1;
        }
-       memset(country, 0, sizeof(country));
+       memset(country, 0, n_country * sizeof(struct cntry_locales_custom));
 
        i = 0;
        for_each_child_of_node(np_country, child) {
@@ -600,7 +603,8 @@ static int wifi_platdev_match(struct device *dev, void *data)
 static int wifi_ctrlfunc_register_drv(void)
 {
        int err = 0;
-       struct device *dev1, *dev2, *dt_node;
+       struct device *dev1, *dev2;
+       struct device_node *dt_node;
        wifi_adapter_info_t *adapter;
 
        dev1 = bus_find_device(&platform_bus_type, NULL, WIFI_PLAT_NAME, wifi_platdev_match);
@@ -660,7 +664,8 @@ static int wifi_ctrlfunc_register_drv(void)
 void wifi_ctrlfunc_unregister_drv(void)
 {
 
-       struct device *dev1, *dev2, *dt_node;
+       struct device *dev1, *dev2;
+       struct device_node *dt_node;
        dev1 = bus_find_device(&platform_bus_type, NULL, WIFI_PLAT_NAME, wifi_platdev_match);
        dev2 = bus_find_device(&platform_bus_type, NULL, WIFI_PLAT_NAME2, wifi_platdev_match);
        if (!dts_enabled)
index 26d4951..8cf4631 100644 (file)
@@ -3,7 +3,7 @@
  *
  * NVIDIA Tegra Sysfs for BCMDHD driver
  *
- * Copyright (C) 2014 NVIDIA Corporation. All rights reserved.
+ * Copyright (C) 2014-2015 NVIDIA Corporation. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
 #include <linux/debugfs.h>
 #include <linux/fs.h>
 
+#ifndef UNUSED_PARAMETER
+#define UNUSED_PARAMETER(x)    (void)(x)
+#endif
+
 /* initialization */
 
 int
@@ -95,14 +99,14 @@ tegra_sysfs_histogram_rssi_store(struct device *dev,
        {\
                char *netif = netdev ? netdev->name : "";\
                tcpdump_pkt_save('X', netif, __func__, __LINE__,\
-                       (unsigned char *) request, request_size, 0);\
+                       (const unsigned char *) request, request_size, 0);\
        }\
 
 #define TEGRA_SYSFS_HISTOGRAM_SCAN_RESULTS(netdev, results, results_size)\
        {\
                char *netif = netdev ? netdev->name : "";\
                tcpdump_pkt_save('x', netif, __func__, __LINE__,\
-                       (unsigned char *) results, results_size, 0);\
+                       (const unsigned char *) results, results_size, 0);\
        }\
 
 void
@@ -154,7 +158,7 @@ tegra_sysfs_histogram_stat_store(struct device *dev,
 
 void
 tcpdump_pkt_save(char tag, const char *netif, const char *func, int line,
-       unsigned char *data,
+       const unsigned char *data,
        unsigned int data_nonpaged_len,
        unsigned int data_paged_len);
 
index 2e690d4..d4c8405 100644 (file)
@@ -172,6 +172,10 @@ typedef struct _pcie_enhanced_caphdr {
 #define PCI_DEV_STAT_CTRL2     0xd4    /* PCI device status control 2 register */
 #define PCIE_LTR_MAX_SNOOP     0x1b4   /* PCIE LTRMaxSnoopLatency */
 #define PCI_L1SS_CTRL          0x248   /* The L1 PM Substates Control register */
+#undef PCI_L1SS_CTRL2                  /* avoid incompatible user-mode
+                                        * definition from
+                                        * uapi/linux/pci_regs.h
+                                        */
 #define        PCI_L1SS_CTRL2          0x24c   /* The L1 PM Substates Control 2 register */
 
 /* Private Registers */
index 5a2b2b1..f400fdb 100644 (file)
@@ -3,6 +3,9 @@
  *
  * Copyright (C) 1999-2015, Broadcom Corporation
  * 
+ * Portions contributed by Nvidia
+ * Copyright (C) 2015 NVIDIA Corporation. All rights reserved.
+ *
  *      Unless you and Broadcom execute a separate written software license
  * agreement governing use of this software, this software is licensed to you
  * under the terms of the GNU General Public License version 2 (the "GPL"),
@@ -2105,7 +2108,7 @@ static int wl_android_get_iovar(struct net_device *dev, char *command,
                return BCME_BADARG;
        }
 
-       DHD_INFO(("%s: command buffer %s command length:%d\n",
+       DHD_INFO(("%s: command buffer %s command length:%zd\n",
                        __func__, (command + skip), strlen(command + skip)));
 
        /* Initiate get_iovar command */
@@ -2122,7 +2125,7 @@ static int wl_android_get_iovar(struct net_device *dev, char *command,
                snprintf(command, total_len, iovbuf);
                bytes_written = snprintf(command, total_len,
                                        "%d:%s", dtoh32(param), iovbuf);
-               DHD_INFO(("%s: param:%d iovbuf:%s strlen(iovbuf):%d"
+               DHD_INFO(("%s: param:%d iovbuf:%s strlen(iovbuf):%zd"
                                " bytes_written:%d\n", __func__, param, iovbuf,
                                strlen(iovbuf), bytes_written));
        }
@@ -2145,7 +2148,7 @@ static int wl_android_set_iovar(struct net_device *dev, char *command,
                return BCME_BADARG;
        }
 
-       DHD_INFO(("%s: command buffer:%s command length:%d\n",
+       DHD_INFO(("%s: command buffer:%s command length:%zd\n",
                        __func__, (command + skip), strlen(command + skip)));
 
        /* Parse command and get iovbuf and param values */
@@ -2156,7 +2159,7 @@ static int wl_android_set_iovar(struct net_device *dev, char *command,
                DHD_ERROR(("%s: Failed to get Parameter %d\n", __func__, ret));
                return BCME_BADARG;
        }
-       DHD_INFO(("%s: iovar:%s param:%d iovbuf:%s strlen(iovbuf):%d\n", __func__,
+       DHD_INFO(("%s: iovar:%s param:%d iovbuf:%s strlen(iovbuf):%zd\n", __func__,
                        iovar, param, iovbuf, strlen(iovbuf)));
 
        bytes_written = wldev_iovar_setbuf(dev, iovar, &param,
index f5850ff..4cd3be4 100644 (file)
@@ -3,6 +3,9 @@
  *
  * Copyright (C) 1999-2015, Broadcom Corporation
  * 
+ * Portions contributed by Nvidia
+ * Copyright (C) 2015 NVIDIA Corporation. All rights reserved.
+ *
  *      Unless you and Broadcom execute a separate written software license
  * agreement governing use of this software, this software is licensed to you
  * under the terms of the GNU General Public License version 2 (the "GPL"),
@@ -1394,7 +1397,7 @@ if (bcmdhd_prop_txstatus_vsdb) {
 
        if (wl_get_drv_status(cfg, CONNECTING, primary_ndev)) {
                WL_ERR(("Already AP connection going on\n"));
-               return -EBUSY;
+               return ERR_PTR(-EBUSY);
        }
 
        WL_DBG(("if name: %s, type: %d\n", name, type));