On Fri, Dec 20, 2013 at 04:26:10PM +0100, Frank Haverkamp wrote: > Fengguang Wu used CF=-D__CHECK_ENDIAN__ to check the GenWQE driver for > endian issues. Sparse found a couple of those. Most of them were caused > by not correctly handling __be64/32 and __u64/32. Those I was able to > fix with appropriate castings. > > One more serious issue was the ATS entry in struct genwqe_ddcb_cmd. > The kernel expected it in big-endian, but the type was defined __u64. > I decided that it is better to keep the interface consistent using > host endian byte-odering instead of having a mixture. With this change > the kernel likes to see host endian byte order for the ATS entry. That > would have been an interface change, if someone would have used the > driver already. Since this is not the case, I hope it is ok to fix it > now. > > For the genqwe_readq/writeq/readl/writel functions I enforced the casts. > > It still complains, as far as I can see, about some copy_to/from_user() > usages: > > CHECK char-misc/drivers/misc/genwqe/card_dev.c > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > CC [M] drivers/misc/genwqe/card_dev.o > CHECK char-misc/drivers/misc/genwqe/card_ddcb.c > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers) > char-misc/arch/x86/include/asm/uaccess.h:625:18: expected void *<noident> > char-misc/arch/x86/include/asm/uaccess.h:625:18: got void const *from > CC [M] drivers/misc/genwqe/card_ddcb.o > LD [M] drivers/misc/genwqe/genwqe_card.o > > I appreciate some help from you to figure out what is causig those, and > making a proposal how to fix them. > > I included the missing header file to fix the > implicit-function-declaration warning when using dynamic_hex_dump. > > Signed-off-by: Frank Haverkamp <haver@xxxxxxxxxxxxxxxxxx> In the future (I missed this as well), please use a "Reported-by:" tag to document who reported the problem to you. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html