Skip to content
  • Steven Rostedt's avatar
    lib/devres.c: fix some sparse warnings · b104d6a5
    Steven Rostedt authored
    
    
    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: default avatarSteven Rostedt <rostedt@goodmis.org>
    Cc: Tejun Heo <tj@kernel.org>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b104d6a5