lkml.org 
[lkml]   [2013]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] GenWQE: Fix endian issues detected by sparse
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@linux.vnet.ibm.com>

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


\
 
 \ /
  Last update: 2013-12-20 18:01    [W:0.095 / U:0.584 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site