[staging:staging-testing 46/59] drivers/staging/wfx/bh.c:76:3: note: in expansion of macro 'le16_to_cpus'
kbuild test robot
lkp at intel.com
Fri Oct 4 13:28:46 UTC 2019
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-testing
head: 40115bbc40e2fd2de0e01ef2a28e0d09a1b5d0d1
commit: b0998f0c040daf798d2f847d9588d57f2e2ade69 [46/59] staging: wfx: add IRQ handling
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 b0998f0c040daf798d2f847d9588d57f2e2ade69
# 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/linux/gpio/consumer.h:5,
from drivers/staging/wfx/bh.c:8:
drivers/staging/wfx/bh.c: In function 'rx_helper':
>> include/uapi/linux/byteorder/big_endian.h:97:37: warning: passing argument 1 of '__swab16s' makes pointer from integer without a cast [-Wint-conversion]
#define __le16_to_cpus(x) __swab16s((x))
^
>> include/linux/byteorder/generic.h:115:22: note: in expansion of macro '__le16_to_cpus'
#define le16_to_cpus __le16_to_cpus
^~~~~~~~~~~~~~
>> drivers/staging/wfx/bh.c:76:3: note: in expansion of macro 'le16_to_cpus'
le16_to_cpus(hif->len);
^~~~~~~~~~~~
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/linux/gpio/consumer.h:5,
from drivers/staging/wfx/bh.c:8:
include/uapi/linux/swab.h:230:20: note: expected '__u16 * {aka short unsigned int *}' but argument is of type 'uint16_t {aka short unsigned int}'
static inline void __swab16s(__u16 *p)
^~~~~~~~~
vim +/le16_to_cpus +76 drivers/staging/wfx/bh.c
> 8 #include <linux/gpio/consumer.h>
9 #include <net/mac80211.h>
10
11 #include "bh.h"
12 #include "wfx.h"
13 #include "hwio.h"
14 #include "hif_api_cmd.h"
15
16 static void device_wakeup(struct wfx_dev *wdev)
17 {
18 if (!wdev->pdata.gpio_wakeup)
19 return;
20 if (gpiod_get_value(wdev->pdata.gpio_wakeup))
21 return;
22
23 gpiod_set_value(wdev->pdata.gpio_wakeup, 1);
24 if (wfx_api_older_than(wdev, 1, 4)) {
25 if (!completion_done(&wdev->hif.ctrl_ready))
26 udelay(2000);
27 } else {
28 // completion.h does not provide any function to wait
29 // completion without consume it (a kind of
30 // wait_for_completion_done_timeout()). So we have to emulate
31 // it.
32 if (wait_for_completion_timeout(&wdev->hif.ctrl_ready, msecs_to_jiffies(2) + 1))
33 complete(&wdev->hif.ctrl_ready);
34 else
35 dev_err(wdev->dev, "timeout while wake up chip\n");
36 }
37 }
38
39 static void device_release(struct wfx_dev *wdev)
40 {
41 if (!wdev->pdata.gpio_wakeup)
42 return;
43
44 gpiod_set_value(wdev->pdata.gpio_wakeup, 0);
45 }
46
47 static int rx_helper(struct wfx_dev *wdev, size_t read_len, int *is_cnf)
48 {
49 struct sk_buff *skb;
50 struct hif_msg *hif;
51 size_t alloc_len;
52 size_t computed_len;
53 int release_count;
54 int piggyback = 0;
55
56 WARN_ON(read_len < 4);
57 WARN(read_len > round_down(0xFFF, 2) * sizeof(u16),
58 "%s: request exceed WFx capability", __func__);
59
60 // Add 2 to take into account piggyback size
61 alloc_len = wdev->hwbus_ops->align_size(wdev->hwbus_priv, read_len + 2);
62 skb = dev_alloc_skb(alloc_len);
63 if (!skb)
64 return -ENOMEM;
65
66 if (wfx_data_read(wdev, skb->data, alloc_len))
67 goto err;
68
69 piggyback = le16_to_cpup((u16 *) (skb->data + alloc_len - 2));
70
71 hif = (struct hif_msg *) skb->data;
72 WARN(hif->encrypted & 0x1, "unsupported encryption type");
73 if (hif->encrypted == 0x2) {
74 BUG(); // Not yet implemented
75 } else {
> 76 le16_to_cpus(hif->len);
77 computed_len = round_up(hif->len, 2);
78 }
79 if (computed_len != read_len) {
80 dev_err(wdev->dev, "inconsistent message length: %zu != %zu\n",
81 computed_len, read_len);
82 print_hex_dump(KERN_INFO, "hif: ", DUMP_PREFIX_OFFSET, 16, 1,
83 hif, read_len, true);
84 goto err;
85 }
86
87 if (!(hif->id & HIF_ID_IS_INDICATION)) {
88 (*is_cnf)++;
89 if (hif->id == HIF_CNF_ID_MULTI_TRANSMIT)
90 release_count = le32_to_cpu(((struct hif_cnf_multi_transmit *) hif->body)->num_tx_confs);
91 else
92 release_count = 1;
93 WARN(wdev->hif.tx_buffers_used < release_count, "corrupted buffer counter");
94 wdev->hif.tx_buffers_used -= release_count;
95 if (!wdev->hif.tx_buffers_used)
96 wake_up(&wdev->hif.tx_buffers_empty);
97 }
98
99 if (hif->id != HIF_IND_ID_EXCEPTION && hif->id != HIF_IND_ID_ERROR) {
100 if (hif->seqnum != wdev->hif.rx_seqnum)
101 dev_warn(wdev->dev, "wrong message sequence: %d != %d\n",
102 hif->seqnum, wdev->hif.rx_seqnum);
103 wdev->hif.rx_seqnum = (hif->seqnum + 1) % (HIF_COUNTER_MAX + 1);
104 }
105
106 skb_put(skb, hif->len);
107 dev_kfree_skb(skb); /* FIXME: handle received data */
108
109 return piggyback;
110
111 err:
112 if (skb)
113 dev_kfree_skb(skb);
114 return -EIO;
115 }
116
---
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/10a2ca6c/attachment-0001.bin>
More information about the devel
mailing list