[staging:staging-testing 55/59] drivers/staging/wfx/data_tx.c:619:16: note: in expansion of macro 'cpu_to_le16'
kbuild test robot
lkp at intel.com
Fri Oct 4 15:50:24 UTC 2019
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-testing
head: 40115bbc40e2fd2de0e01ef2a28e0d09a1b5d0d1
commit: 9bca45f3d6924f19f29c0d019e961af3f41bdc9e [55/59] staging: wfx: allow to send 802.11 frames
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 9bca45f3d6924f19f29c0d019e961af3f41bdc9e
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=sparc64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/byteorder/big_endian.h:5:0,
from arch/sparc/include/uapi/asm/byteorder.h:5,
from arch/sparc/include/asm/bitops_64.h:16,
from arch/sparc/include/asm/bitops.h:5,
from include/linux/bitops.h:19,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:19,
from arch/sparc/include/asm/bug.h:25,
from include/linux/bug.h:5,
from include/net/mac80211.h:16,
from drivers/staging/wfx/data_tx.c:8:
drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
include/uapi/linux/byteorder/big_endian.h:94:37: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
#define __cpu_to_le32s(x) __swab32s((x))
^
include/linux/byteorder/generic.h:112:22: note: in expansion of macro '__cpu_to_le32s'
#define cpu_to_le32s __cpu_to_le32s
^~~~~~~~~~~~~~
drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
cpu_to_le32s(&val);
^~~~~~~~~~~~
In file included from include/linux/swab.h:5:0,
from include/uapi/linux/byteorder/big_endian.h:13,
from include/linux/byteorder/big_endian.h:5,
from arch/sparc/include/uapi/asm/byteorder.h:5,
from arch/sparc/include/asm/bitops_64.h:16,
from arch/sparc/include/asm/bitops.h:5,
from include/linux/bitops.h:19,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:19,
from arch/sparc/include/asm/bug.h:25,
from include/linux/bug.h:5,
from include/net/mac80211.h:16,
from drivers/staging/wfx/data_tx.c:8:
include/uapi/linux/swab.h:242:29: note: expected '__u32 * {aka unsigned int *}' but argument is of type 'struct hif_mib_protected_mgmt_policy *'
static __always_inline void __swab32s(__u32 *p)
^~~~~~~~~
In file included from include/linux/byteorder/big_endian.h:5:0,
from arch/sparc/include/uapi/asm/byteorder.h:5,
from arch/sparc/include/asm/bitops_64.h:16,
from arch/sparc/include/asm/bitops.h:5,
from include/linux/bitops.h:19,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:19,
from arch/sparc/include/asm/bug.h:25,
from include/linux/bug.h:5,
from include/net/mac80211.h:16,
from drivers/staging/wfx/data_tx.c:8:
drivers/staging/wfx/data_tx.c: In function 'wfx_tx_inner':
include/uapi/linux/byteorder/big_endian.h:35:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
#define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
^
include/linux/byteorder/generic.h:90:21: note: in expansion of macro '__cpu_to_le16'
#define cpu_to_le16 __cpu_to_le16
^~~~~~~~~~~~~
>> drivers/staging/wfx/data_tx.c:619:16: note: in expansion of macro 'cpu_to_le16'
hif_msg->id = cpu_to_le16(HIF_REQ_ID_TX);
^~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/cpu_to_le16 +619 drivers/staging/wfx/data_tx.c
581
582 static int wfx_tx_inner(struct wfx_vif *wvif, struct ieee80211_sta *sta, struct sk_buff *skb)
583 {
584 struct hif_msg *hif_msg;
585 struct hif_req_tx *req;
586 struct wfx_tx_priv *tx_priv;
587 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
588 struct ieee80211_key_conf *hw_key = tx_info->control.hw_key;
589 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
590 int queue_id = tx_info->hw_queue;
591 size_t offset = (size_t) skb->data & 3;
592 int wmsg_len = sizeof(struct hif_msg) + sizeof(struct hif_req_tx) + offset;
593
594 WARN(queue_id >= IEEE80211_NUM_ACS, "unsupported queue_id");
595 wfx_tx_fixup_rates(tx_info->driver_rates);
596
597 // From now tx_info->control is unusable
598 memset(tx_info->rate_driver_data, 0, sizeof(struct wfx_tx_priv));
599 // Fill tx_priv
600 tx_priv = (struct wfx_tx_priv *) tx_info->rate_driver_data;
601 tx_priv->tid = wfx_tx_get_tid(hdr);
602 tx_priv->raw_link_id = wfx_tx_get_raw_link_id(wvif, sta, hdr);
603 tx_priv->link_id = tx_priv->raw_link_id;
604 if (ieee80211_has_protected(hdr->frame_control))
605 tx_priv->hw_key = hw_key;
606 if (tx_info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM)
607 tx_priv->link_id = WFX_LINK_ID_AFTER_DTIM;
608 if (sta && (sta->uapsd_queues & BIT(queue_id)))
609 tx_priv->link_id = WFX_LINK_ID_UAPSD;
610
611 // Fill hif_msg
612 WARN(skb_headroom(skb) < wmsg_len, "not enough space in skb");
613 WARN(offset & 1, "attempt to transmit an unaligned frame");
614 skb_put(skb, wfx_tx_get_icv_len(tx_priv->hw_key));
615 skb_push(skb, wmsg_len);
616 memset(skb->data, 0, wmsg_len);
617 hif_msg = (struct hif_msg *) skb->data;
618 hif_msg->len = cpu_to_le16(skb->len);
> 619 hif_msg->id = cpu_to_le16(HIF_REQ_ID_TX);
620 hif_msg->interface = wvif->id;
621 if (skb->len > wvif->wdev->hw_caps.size_inp_ch_buf) {
622 dev_warn(wvif->wdev->dev, "requested frame size (%d) is larger than maximum supported (%d)\n",
623 skb->len, wvif->wdev->hw_caps.size_inp_ch_buf);
624 skb_pull(skb, wmsg_len);
625 return -EIO;
626 }
627
628 // Fill tx request
629 req = (struct hif_req_tx *) hif_msg->body;
630 req->packet_id = queue_id << 16 | IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
631 req->data_flags.fc_offset = offset;
632 req->queue_id.peer_sta_id = tx_priv->raw_link_id;
633 // Queue index are inverted between firmware and Linux
634 req->queue_id.queue_id = 3 - queue_id;
635 req->ht_tx_parameters = wfx_tx_get_tx_parms(wvif->wdev, tx_info);
636 req->tx_flags.retry_policy_index = wfx_tx_get_rate_id(wvif, tx_info);
637
638 // Auxilliary operations
639 wfx_tx_manage_pm(wvif, hdr, tx_priv, sta);
640 wfx_tx_queue_put(wvif->wdev, &wvif->wdev->tx_queue[queue_id], skb);
641 wfx_bh_request_tx(wvif->wdev);
642 return 0;
643 }
644
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 59099 bytes
Desc: not available
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20191004/29ed29cd/attachment-0001.bin>
More information about the devel
mailing list