cxl: sparse: Silence iomem warning in debugfs file creation
authorDaniel Axtens <dja@axtens.net>
Fri, 7 Aug 2015 03:18:20 +0000 (13:18 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 12 Aug 2015 04:49:29 +0000 (14:49 +1000)
An IO address, tagged with __iomem, is passed to debugfs_create_file
as private data. This requires that it be cast to void *. The cast
drops the __iomem annotation and so creates a sparse warning:

  drivers/misc/cxl/debugfs.c:51:57: warning: cast removes address space of expression

The address space marker is added back in the file operations
(fops_io_u64).

Silence the warning with __force.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Acked-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/misc/cxl/debugfs.c

index 825c412..18df6f4 100644 (file)
@@ -48,7 +48,7 @@ DEFINE_SIMPLE_ATTRIBUTE(fops_io_x64, debugfs_io_u64_get, debugfs_io_u64_set, "0x
 static struct dentry *debugfs_create_io_x64(const char *name, umode_t mode,
                                            struct dentry *parent, u64 __iomem *value)
 {
-       return debugfs_create_file(name, mode, parent, (void *)value, &fops_io_x64);
+       return debugfs_create_file(name, mode, parent, (void __force *)value, &fops_io_x64);
 }
 
 int cxl_debugfs_adapter_add(struct cxl *adapter)