• S
    lib/devres.c: fix some sparse warnings · b104d6a5
    Steven Rostedt 提交于
    Having a discussion about sparse warnings in the kernel, and that we
    should clean them up, I decided to pick a random file to do so.  This
    happened to be devres.c which gives the following warnings:
    
        CHECK   lib/devres.c
      lib/devres.c:83:9: warning: cast removes address space of expression
      lib/devres.c:117:31: warning: incorrect type in return expression (different address spaces)
      lib/devres.c:117:31:    expected void [noderef] <asn:2>*
      lib/devres.c:117:31:    got void *
      lib/devres.c:125:31: warning: incorrect type in return expression (different address spaces)
      lib/devres.c:125:31:    expected void [noderef] <asn:2>*
      lib/devres.c:125:31:    got void *
      lib/devres.c:136:26: warning: incorrect type in assignment (different address spaces)
      lib/devres.c:136:26:    expected void [noderef] <asn:2>*[assigned] dest_ptr
      lib/devres.c:136:26:    got void *
      lib/devres.c:226:9: warning: cast removes address space of expression
    
    Mostly it's just the use of typecasting to void * without adding
    __force, or returning ERR_PTR(-ESOMEERR) without typecasting to a
    __iomem type.
    
    I added a helper macro IOMEM_ERR_PTR() that does the typecast to make
    the code a little nicer than adding ugly typecasts to the code.
    Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
    Cc: Tejun Heo <tj@kernel.org>
    Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    b104d6a5
devres.c 10.3 KB