On Sun 21 July 2013 10:14:03 Larry Finger wrote: > On 07/21/2013 02:06 AM, Vladimir Kondratiev wrote: > > On Saturday, July 20, 2013 09:46:48 PM Larry Finger wrote: > >> Building driver wil6210 in 3.10 and 3.11 kernels yields the following errors: > >> > >> CC [M] drivers/net/wireless/ath/wil6210/debugfs.o > >> drivers/net/wireless/ath/wil6210/debugfs.c: In function 'wil_print_ring': > >> drivers/net/wireless/ath/wil6210/debugfs.c:163:11: error: pointer targets in passing argument 5 of 'hex_dump_to_buffer' differ in signedness [- Werror=pointer-sign] > >> false); > >> ^ > >> In file included from include/linux/kernel.h:13:0, > >> from include/linux/cache.h:4, > >> from include/linux/time.h:4, > >> from include/linux/stat.h:18, > >> from include/linux/module.h:10, > >> from drivers/net/wireless/ath/wil6210/debugfs.c:17: > >> include/linux/printk.h:361:13: note: expected 'char *' but argument is of type 'unsigned char *' > >> extern void hex_dump_to_buffer(const void *buf, size_t len, > >> ^ > >> drivers/net/wireless/ath/wil6210/debugfs.c: In function 'wil_txdesc_debugfs_show': > >> drivers/net/wireless/ath/wil6210/debugfs.c:429:10: error: pointer targets in passing argument 5 of 'hex_dump_to_buffer' differ in signedness [- Werror=pointer-sign] > >> sizeof(printbuf), false); > >> ^ > >> In file included from include/linux/kernel.h:13:0, > >> from include/linux/cache.h:4, > >> from include/linux/time.h:4, > >> from include/linux/stat.h:18, > >> from include/linux/module.h:10, > >> from drivers/net/wireless/ath/wil6210/debugfs.c:17: > >> include/linux/printk.h:361:13: note: expected 'char *' but argument is of type 'unsigned char *' > >> extern void hex_dump_to_buffer(const void *buf, size_t len, > >> ^ > >> cc1: all warnings being treated as errors > >> make[5]: *** [drivers/net/wireless/ath/wil6210/debugfs.o] Error 1 > >> make[4]: *** [drivers/net/wireless/ath/wil6210] Error 2 > >> make[3]: *** [drivers/net/wireless/ath] Error 2 > >> make[2]: *** [drivers/net/wireless] Error 2 > >> make[1]: *** [drivers/net] Error 2 > >> make: *** [drivers] Error 2 > >> > >> These errors are fixed by changing the type of the buffer from "unsigned char *" to "char *". > >> > >> Reported-by: Thomas Fjellstrom <thomas@xxxxxxxxxxxxx> > >> Tested-by: Thomas Fjellstrom <thomas@xxxxxxxxxxxxx> > >> Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx> > >> Cc: Stable <stable@xxxxxxxxxxxxxxx> [3.10] > >> Cc: Thomas Fjellstrom <thomas@xxxxxxxxxxxxx> > >> --- > >> drivers/net/wireless/ath/wil6210/debugfs.c | 4 ++-- > >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c > >> index e8308ec..ab63676 100644 > >> --- a/drivers/net/wireless/ath/wil6210/debugfs.c > >> +++ b/drivers/net/wireless/ath/wil6210/debugfs.c > >> @@ -145,7 +145,7 @@ static void wil_print_ring(struct seq_file *s, const char *prefix, > >> le16_to_cpu(hdr.type), hdr.flags); > >> if (len <= MAX_MBOXITEM_SIZE) { > >> int n = 0; > >> - unsigned char printbuf[16 * 3 + 2]; > >> + char printbuf[16 * 3 + 2]; > >> unsigned char databuf[MAX_MBOXITEM_SIZE]; > >> void __iomem *src = wmi_buffer(wil, d.addr) + > >> sizeof(struct wil6210_mbox_hdr); > >> @@ -416,7 +416,7 @@ static int wil_txdesc_debugfs_show(struct seq_file *s, void *data) > >> seq_printf(s, " SKB = %p\n", skb); > >> > >> if (skb) { > >> - unsigned char printbuf[16 * 3 + 2]; > >> + char printbuf[16 * 3 + 2]; > >> int i = 0; > >> int len = le16_to_cpu(d->dma.length); > >> void *p = skb->data; > >> > > Hmm, I have no warning for this with neither 3.10 nor 3.11 kernel version; but > > patch is correct, and here is my > > Signed-off-by: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx> > > Thanks. I did not see any warning or error either; however, it did happen for > Thomas. I'm not sure what combination of compiler version and/or switches lead > to the problem, but his system apparently uses them. If it helps, I'm running a fresh install of Debian Sid with gcc 4.8.1. I've noticed that each newer successive version of gcc gets more strict with what code it accepts without warning, or error. A lot of my only somewhat old code tends to have a lot more warnings. Especially that signedness warning. It also looked like that that driver or section of the kernel was compiling with -Werror. I haven't verrified that but I remember seeing "treating all warnings as errors" at one point. > Larry > > -- Thomas Fjellstrom thomas@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html