Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [jcmvbkbc-xtensa:xtensa-6.13-esp32 25/53] drivers/net/wireless/espressif/esp32-ng/main.c:61:12: warning: variable 'c' set but not used
@ 2025-02-03 18:19 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-03 18:19 UTC (permalink / raw)
  To: Max Filippov; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/jcmvbkbc/linux-xtensa xtensa-6.13-esp32
head:   f4a6cef2509c4e81637b6d5d6f0c27966895985a
commit: 6c0af79e75e54aeb74a525f9c6e958db674bf816 [25/53] drivers/net/wireless/espressif/esp32-ng: initial import
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20250204/202502040232.anRep9mw-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250204/202502040232.anRep9mw-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502040232.anRep9mw-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/net/wireless/espressif/esp32-ng/main.c:20:
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:32: error: variable has incomplete type 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                                       ^
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:9: note: forward declaration of 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                ^
>> drivers/net/wireless/espressif/esp32-ng/main.c:61:12: warning: variable 'c' set but not used [-Wunused-but-set-variable]
      61 |         static u8 c;
         |                   ^
   1 warning and 1 error generated.
--
   In file included from drivers/net/wireless/espressif/esp32-ng/esp_bt.c:10:
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:32: error: variable has incomplete type 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                                       ^
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:9: note: forward declaration of 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                ^
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:14:6: warning: no previous prototype for function 'esp_hci_update_tx_counter' [-Wmissing-prototypes]
      14 | void esp_hci_update_tx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         |      ^
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:14:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      14 | void esp_hci_update_tx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         | ^
         | static 
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:29:6: warning: no previous prototype for function 'esp_hci_update_rx_counter' [-Wmissing-prototypes]
      29 | void esp_hci_update_rx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         |      ^
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:29:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      29 | void esp_hci_update_rx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         | ^
         | static 
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:167:5: warning: no previous prototype for function 'esp_deinit_bt' [-Wmissing-prototypes]
     167 | int esp_deinit_bt(struct esp_adapter *adapter)
         |     ^
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:167:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     167 | int esp_deinit_bt(struct esp_adapter *adapter)
         | ^
         | static 
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:243:8: error: no member named 'dev_type' in 'struct hci_dev'
     243 |         hdev->dev_type = HCI_PRIMARY;
         |         ~~~~  ^
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:243:19: error: use of undeclared identifier 'HCI_PRIMARY'; did you mean 'HCI_PRIVACY'?
     243 |         hdev->dev_type = HCI_PRIMARY;
         |                          ^~~~~~~~~~~
         |                          HCI_PRIVACY
   include/net/bluetooth/hci.h:417:2: note: 'HCI_PRIVACY' declared here
     417 |         HCI_PRIVACY,
         |         ^
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:184:5: warning: no previous prototype for function 'esp_init_bt' [-Wmissing-prototypes]
     184 | int esp_init_bt(struct esp_adapter *adapter)
         |     ^
   drivers/net/wireless/espressif/esp32-ng/esp_bt.c:184:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     184 | int esp_init_bt(struct esp_adapter *adapter)
         | ^
         | static 
   4 warnings and 3 errors generated.
--
   In file included from drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:14:
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:32: error: variable has incomplete type 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                                       ^
   drivers/net/wireless/espressif/esp32-ng/esp_kernel_port.h:181:9: note: forward declaration of 'struct cfg80211_rx_assoc_resp'
     181 |         struct cfg80211_rx_assoc_resp resp = {0};
         |                ^
>> drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:414:22: warning: no previous prototype for function 'prepare_command_request' [-Wmissing-prototypes]
     414 | struct command_node *prepare_command_request(struct esp_adapter *adapter, u8 cmd_code, u16 len)
         |                      ^
   drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:414:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     414 | struct command_node *prepare_command_request(struct esp_adapter *adapter, u8 cmd_code, u16 len)
         | ^
         | static 
   drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:847:23: warning: variable 'bss' set but not used [-Wunused-but-set-variable]
     847 |         struct cfg80211_bss *bss;
         |                              ^
   drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:1588:2: error: call to undeclared library function 'strlcpy' with type 'unsigned int (char *, const char *, unsigned int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1588 |         strlcpy(cmd->country_code, priv->country_code, MAX_COUNTRY_LEN);
         |         ^
   drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:1588:2: note: include the header <string.h> or explicitly provide a declaration for 'strlcpy'
   2 warnings and 2 errors generated.
--
>> drivers/net/wireless/espressif/esp32-ng/esp_stats.c:182:6: warning: no previous prototype for function 'process_test_capabilities' [-Wmissing-prototypes]
     182 | void process_test_capabilities(u8 cap)
         |      ^
   drivers/net/wireless/espressif/esp32-ng/esp_stats.c:182:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     182 | void process_test_capabilities(u8 cap)
         | ^
         | static 
   1 warning generated.


vim +/c +61 drivers/net/wireless/espressif/esp32-ng/main.c

    50	
    51	static int process_tx_packet(struct sk_buff *skb)
    52	{
    53		struct esp_wifi_device *priv = NULL;
    54		struct esp_skb_cb *cb = NULL;
    55		struct esp_payload_header *payload_header = NULL;
    56		struct sk_buff *new_skb = NULL;
    57		int ret = 0;
    58		u8 pad_len = 0, realloc_skb = 0;
    59		u16 len = 0;
    60		u16 total_len = 0;
  > 61		static u8 c;
    62		u8 *pos = NULL;
    63	
    64		c++;
    65		/* Get the priv */
    66		cb = (struct esp_skb_cb *) skb->cb;
    67		priv = cb->priv;
    68	
    69		if (!priv) {
    70			dev_kfree_skb(skb);
    71			esp_info("No priv\n");
    72			return NETDEV_TX_OK;
    73		}
    74	
    75		if (netif_queue_stopped((const struct net_device *) priv->ndev)) {
    76			esp_info("Netif queue stopped\n");
    77			return NETDEV_TX_BUSY;
    78		}
    79	
    80		if (host_sleep) {
    81			return NETDEV_TX_BUSY;
    82		}
    83	
    84		len = skb->len;
    85	
    86		/* Create space for payload header */
    87		pad_len = sizeof(struct esp_payload_header);
    88	
    89		total_len = len + pad_len;
    90	
    91		/* Align buffer length */
    92		pad_len += SKB_DATA_ADDR_ALIGNMENT - (total_len % SKB_DATA_ADDR_ALIGNMENT);
    93	
    94		if (skb_headroom(skb) < pad_len) {
    95			/* Headroom is not sufficient */
    96			realloc_skb = 1;
    97		}
    98	
    99		if (realloc_skb || !IS_ALIGNED((unsigned long) skb->data, SKB_DATA_ADDR_ALIGNMENT)) {
   100			/* Realloc SKB */
   101			if (skb_linearize(skb)) {
   102				priv->stats.tx_errors++;
   103				dev_kfree_skb(skb);
   104				esp_err("Failed to linearize SKB");
   105				return NETDEV_TX_OK;
   106			}
   107	
   108			new_skb = esp_alloc_skb(skb->len + pad_len);
   109	
   110			if (!new_skb) {
   111				esp_err("Failed to allocate SKB");
   112				priv->stats.tx_errors++;
   113				dev_kfree_skb(skb);
   114				return NETDEV_TX_OK;
   115			}
   116	
   117			pos = new_skb->data;
   118			pos += pad_len;
   119	
   120			/* Populate new SKB */
   121			skb_copy_from_linear_data(skb, pos, skb->len);
   122			skb_put(new_skb, skb->len + pad_len);
   123	
   124			/* Replace old SKB */
   125			dev_kfree_skb_any(skb);
   126			skb = new_skb;
   127		} else {
   128			/* Realloc is not needed, Make space for interface header */
   129			skb_push(skb, pad_len);
   130		}
   131	
   132		/* Set payload header */
   133		payload_header = (struct esp_payload_header *) skb->data;
   134		memset(payload_header, 0, pad_len);
   135	
   136		payload_header->if_type = priv->if_type;
   137		payload_header->if_num = priv->if_num;
   138		payload_header->len = cpu_to_le16(len);
   139		payload_header->offset = cpu_to_le16(pad_len);
   140		payload_header->packet_type = PACKET_TYPE_DATA;
   141	
   142		if (adapter.capabilities & ESP_CHECKSUM_ENABLED)
   143			payload_header->checksum = cpu_to_le16(compute_checksum(skb->data, (len + pad_len)));
   144	
   145		if (!priv->stop_data) {
   146			ret = esp_send_packet(priv->adapter, skb);
   147	
   148			if (ret) {
   149	/*			esp_err("Failed to send SKB");*/
   150				priv->stats.tx_errors++;
   151			} else {
   152				priv->stats.tx_packets++;
   153				priv->stats.tx_bytes += skb->len;
   154			}
   155		} else {
   156			dev_kfree_skb_any(skb);
   157			priv->stats.tx_dropped++;
   158		}
   159	
   160		return 0;
   161	}
   162	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-02-03 18:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-03 18:19 [jcmvbkbc-xtensa:xtensa-6.13-esp32 25/53] drivers/net/wireless/espressif/esp32-ng/main.c:61:12: warning: variable 'c' set but not used kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox