summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-17media: omap_vout: fix wrong identingMauro Carvalho Chehab
As warned: drivers/media/platform/omap/omap_vout.c:711 omap_vout_buffer_setup() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: fsl-viu: fix __iomem annotationsMauro Carvalho Chehab
Those annotations are wrong, causing this warning: drivers/media/platform/fsl-viu.c:1440:21: warning: incorrect type in assignment (different address spaces) drivers/media/platform/fsl-viu.c:1440:21: expected struct viu_reg *vr drivers/media/platform/fsl-viu.c:1440:21: got struct viu_reg [noderef] <asn:2>*[assigned] viu_regs Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: fsl-viu: use %p to print pointersMauro Carvalho Chehab
Solve those warnings: drivers/media/platform/fsl-viu.c:299 restart_video_queue() warn: argument 3 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:506 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:518 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:528 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 2 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 3 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 4 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:1329 viu_mmap() warn: argument 2 to %08lx specifier is cast from pointer drivers/media/platform/fsl-viu.c:1334 viu_mmap() warn: argument 2 to %08lx specifier is cast from pointer Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: isppreview: fix __user annotationsMauro Carvalho Chehab
The 'from' variable at preview_config() expects an __user * type. However, the logic there does: from = *(void * __user *) ((void *)cfg + attr->config_offset); With actually means a void pointer, pointing to a void __ user pointer. When the first pointer is de-referenced with *(foo), the type it returns is "void *" instead of "void __user *". Change it to: from = *(void __user **) ((void *)cfg + attr->config_offset); in order to obtain, when de-referenced, a void __user pointer, as desired. That prevent those warnings: drivers/media/platform/omap3isp/isppreview.c:893:45: warning: incorrect type in initializer (different address spaces) drivers/media/platform/omap3isp/isppreview.c:893:45: expected void [noderef] <asn:1>*from drivers/media/platform/omap3isp/isppreview.c:893:45: got void *[noderef] <asn:1><noident> drivers/media/platform/omap3isp/isppreview.c:893:47: warning: dereference of noderef expression Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: ispstat: use %p to print the address of a bufferMauro Carvalho Chehab
Instead of converting to int, use %p. That prevents this warning: drivers/media/platform/omap3isp/ispstat.c:451 isp_stat_bufs_alloc() warn: argument 7 to %08lx specifier is cast from pointer Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: vpbe_display: get rid of warningsMauro Carvalho Chehab
Solve those warnings: drivers/media/platform/davinci/vpbe_display.c:288 vpbe_start_streaming() warn: inconsistent indenting drivers/media/platform/davinci/vpbe_display.c:1356 register_device() warn: argument 3 to %x specifier is cast from pointer drivers/media/platform/davinci/vpbe_display.c:1356 register_device() warn: argument 4 to %x specifier is cast from pointer Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: vpbe_display: properly handle error caseMauro Carvalho Chehab
if v4l2_subdev_call(..., VENC_GET_FLD,...) fails, it currently returns a random value. Instead, return 1. That's probably better than returning 0, as this is very likely what happens in practice with the current code, as as the probably of an unititialized 32 bits integer to have an specific value (0, in this case), is 1/(2^32). An alternative would be to return an error code, and let the caller to hint, based on the past received frame, but that sounds weird. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: mmp-driver: add needed __iomem marks to power_regsMauro Carvalho Chehab
Solve those warnings: drivers/media/platform/marvell-ccic/mmp-driver.c:135:41: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:135:41: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:135:41: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:136:44: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:136:44: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:136:44: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:174:38: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:174:38: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:174:38: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:175:38: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:175:38: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:175:38: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:195:48: warning: incorrect type in argument 1 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:195:48: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:195:48: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:196:55: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:196:55: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:196:55: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:197:54: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:197:54: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:197:54: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:202:48: warning: incorrect type in argument 1 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:202:48: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:202:48: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:203:55: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:203:55: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:203:55: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:204:54: warning: incorrect type in argument 2 (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:204:54: expected void [noderef] <asn:2>*<noident> drivers/media/platform/marvell-ccic/mmp-driver.c:204:54: got void * drivers/media/platform/marvell-ccic/mmp-driver.c:389:25: warning: incorrect type in assignment (different address spaces) drivers/media/platform/marvell-ccic/mmp-driver.c:389:25: expected void *power_regs drivers/media/platform/marvell-ccic/mmp-driver.c:389:25: got void [noderef] <asn:2>* Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17powerpc/64s: Default l1d_size to 64K in RFI fallback flushMadhavan Srinivasan
If there is no d-cache-size property in the device tree, l1d_size could be zero. We don't actually expect that to happen, it's only been seen on mambo (simulator) in some configurations. A zero-size l1d_size leads to the loop in the asm wrapping around to 2^64-1, and then walking off the end of the fallback area and eventually causing a page fault which is fatal. Just default to 64K which is correct on some CPUs, and sane enough to not cause a crash on others. Fixes: aa8a5e0062ac9 ('powerpc/64s: Add support for RFI flush of L1-D cache') Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com> [mpe: Rewrite comment and change log] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-04-17media: davinci: fix an inconsistent identMauro Carvalho Chehab
drivers/media/platform/davinci/vpbe_osd.c:849 try_layer_config() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: isif: reorder a statement to match coding styleMauro Carvalho Chehab
On all places, we do: void <asn_ref> *foo; Here, it is doing, instead: void * <asn_ref> foo; That tricks static analyzers, making it see errors where there's none. So, just reorder in order to cleanup those warnings: drivers/media/platform/davinci/isif.c:1066:22: warning: incorrect type in assignment (different address spaces) drivers/media/platform/davinci/isif.c:1066:22: expected void *[noderef] <asn:2>addr drivers/media/platform/davinci/isif.c:1066:22: got void [noderef] <asn:2>* drivers/media/platform/davinci/isif.c:1074:44: warning: incorrect type in assignment (different address spaces) drivers/media/platform/davinci/isif.c:1074:44: expected void [noderef] <asn:2>*static [toplevel] [assigned] base_addr drivers/media/platform/davinci/isif.c:1074:44: got void *[noderef] <asn:2>addr drivers/media/platform/davinci/isif.c:1078:51: warning: incorrect type in assignment (different address spaces) drivers/media/platform/davinci/isif.c:1078:51: expected void [noderef] <asn:2>*static [toplevel] [assigned] linear_tbl0_addr drivers/media/platform/davinci/isif.c:1078:51: got void *[noderef] <asn:2>addr drivers/media/platform/davinci/isif.c:1082:51: warning: incorrect type in assignment (different address spaces) drivers/media/platform/davinci/isif.c:1082:51: expected void [noderef] <asn:2>*static [toplevel] [assigned] linear_tbl1_addr drivers/media/platform/davinci/isif.c:1082:51: got void *[noderef] <asn:2>addr drivers/media/platform/davinci/isif.c:1067:22: warning: dereference of noderef expression Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: si470x: fix __be16 annotationsMauro Carvalho Chehab
The annotations there are wrong as warned: drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: warning: incorrect type in assignment (different base types) drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: expected unsigned short [unsigned] [short] <noident> drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: got restricted __be16 [usertype] <noident> drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16 drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16 Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: fix __user annotationsMauro Carvalho Chehab
The __user annotations on this driver are wrong, causing lots of warnings: drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22: warning: incorrect type in assignment (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22: expected void [noderef] <asn:1>*from drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22: got void *[noderef] <asn:1><noident> drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20: warning: incorrect type in assignment (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20: expected void [noderef] <asn:1>*to drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20: got void *[noderef] <asn:1><noident> drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41: warning: incorrect type in initializer (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41: expected struct ipipeif_params *config drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41: got void [noderef] <asn:1>*arg drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46: expected void [noderef] <asn:1>*arg drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46: got void *arg drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32: expected void const [noderef] <asn:1>*from drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32: got struct vpfe_rsz_config_params *config drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27: warning: incorrect type in argument 1 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27: expected void [noderef] <asn:1>*to drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27: got void *<noident> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: cleanup ipipe_[g|s]_config logicMauro Carvalho Chehab
Reduce one ident level inside those functions and use BIT() macro. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: fix a typo for "default"Mauro Carvalho Chehab
resizer_set_defualt_configuration -> resizer_set_default_configuration Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: don't use kernel-doc markup for simple commentsMauro Carvalho Chehab
Fix those two warnings: drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c:90: warning: Function parameter or member 'interface' not described in 'MODULE_PARM_DESC' drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c:90: warning: Function parameter or member '(default' not described in 'MODULE_PARM_DESC' Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: vpfe_video: remove an unused varMauro Carvalho Chehab
as warned: drivers/staging/media/davinci_vpfe/vpfe_video.c: In function 'vpfe_streamon': drivers/staging/media/davinci_vpfe/vpfe_video.c:1471:31: warning: variable 'sdinfo' set but not used [-Wunused-but-set-variable] struct vpfe_ext_subdev_info *sdinfo; ^~~~~~ While here, cleanup this kernel-doc warning: drivers/staging/media/davinci_vpfe/vpfe_video.c:225: warning: Function parameter or member 'pipe' not described in 'vpfe_video_validate_pipeline' Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: get rid of an unused var at dm365_isif.cMauro Carvalho Chehab
Not sure what was the original idea here, but the implementation went into a different way, and the fmt var is not used anymore, as warned: drivers/staging/media/davinci_vpfe/dm365_isif.c: In function '__isif_get_format': drivers/staging/media/davinci_vpfe/dm365_isif.c:1401:29: warning: variable 'fmt' set but not used [-Wunused-but-set-variable] struct v4l2_subdev_format fmt; ^~~ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: mark __iomem as suchMauro Carvalho Chehab
There are several usages of an __iomem memory that aren't marked as such, causing those warnings: drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:201:27: warning: incorrect type in assignment (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:201:27: expected void *ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:201:27: got void [noderef] <asn:2>*ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: warning: incorrect type in argument 1 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: expected void const volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: warning: incorrect type in argument 1 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: expected void const volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:510:42: warning: incorrect type in initializer (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:510:42: expected void *ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:510:42: got void [noderef] <asn:2>*ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: warning: incorrect type in argument 1 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: expected void const volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:71:27: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:797:42: warning: incorrect type in initializer (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:797:42: expected void *ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:797:42: got void [noderef] <asn:2>*ipipeif_base_addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: warning: incorrect type in argument 2 (different address spaces) drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: expected void volatile [noderef] <asn:2>*addr drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:76:26: got void * Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: fix vpfe_ipipe_init() error handlingMauro Carvalho Chehab
As warned: drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1834 vpfe_ipipe_init() error: we previously assumed 'res' could be null (see line 1797) There's something wrong at vpfe_ipipe_init(): 1) it caches the resourse_size() from from the first region and reuses to the second region; 2) the "res" var is overridden 3 times; 3) at free logic, it assumes that "res->start" is not overridden by platform_get_resource(pdev, IORESOURCE_MEM, 6), but that's not true, as it can even be NULL there. This patch fixes the above issues by: a) store the resources used by release_mem_region() on a separate var; b) stop caching resource_size(), using the function where needed. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: dm365_ipipe: remove an unused varMauro Carvalho Chehab
drivers/staging/media/davinci_vpfe/dm365_ipipe.c:74:17: warning: variable 'dev' set but not used [-Wunused-but-set-variable] struct device *dev; ^~~ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci_vpfe: remove useless checks from ipipeMauro Carvalho Chehab
The dm365_ipipe_hw.c and dm365_ipipe.c file check if several table pointers, declared at davinci_vpfe_user.h, are filled before using them. The problem is that those pointers come from struct declarations like: struct vpfe_ipipe_yee { ... short table[VPFE_IPIPE_MAX_SIZE_YEE_LUT]; }; So, they can't be NULL! Solve those warnings: drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:433 ipipe_set_lutdpc_regs() warn: this array is probably non-NULL. 'dpc->table' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:763 ipipe_set_gamma_regs() warn: this array is probably non-NULL. 'gamma->table_r' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:766 ipipe_set_gamma_regs() warn: this array is probably non-NULL. 'gamma->table_b' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:769 ipipe_set_gamma_regs() warn: this array is probably non-NULL. 'gamma->table_g' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:791 ipipe_set_3d_lut_regs() warn: this array is probably non-NULL. 'lut_3d->table' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:903 ipipe_set_gbce_regs() warn: this array is probably non-NULL. 'gbce->table' drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c:946 ipipe_set_ee_regs() warn: this array is probably non-NULL. 'ee->table' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:59 ipipe_validate_lutdpc_params() warn: this array is probably non-NULL. 'lutdpc->table' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:697 ipipe_get_gamma_params() warn: this array is probably non-NULL. 'gamma_param->table_r' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:705 ipipe_get_gamma_params() warn: this array is probably non-NULL. 'gamma_param->table_g' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:712 ipipe_get_gamma_params() warn: this array is probably non-NULL. 'gamma_param->table_b' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:745 ipipe_get_3d_lut_params() warn: this array is probably non-NULL. 'lut_param->table' drivers/staging/media/davinci_vpfe/dm365_ipipe.c:926 ipipe_get_gbce_params() warn: this array is probably non-NULL. 'gbce_param->table' Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: staging: davinci_vpfe: allow building with COMPILE_TESTMauro Carvalho Chehab
This is a little bit hashish, but this driver is at staging, so it won't become worse. With this small change at Makefile, we can now build it with COMPILE_TEST. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: si470x: allow build both USB and I2C at the same timeMauro Carvalho Chehab
Currently, either USB or I2C is built. Change it to allow having both enabled at the same time. The main reason is that COMPILE_TEST all[yes/mod]builds will now contain all drivers under drivers/media. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: omap4iss: make it build with COMPILE_TESTMauro Carvalho Chehab
This driver compile as-is with COMPILE_TEST. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: omap: allow building it with COMPILE_TESTMauro Carvalho Chehab
Now that we have stubs for omap FB driver, let it build with COMPILE_TEST. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: omap2: omapfb: allow building it with COMPILE_TESTMauro Carvalho Chehab
This driver builds cleanly with COMPILE_TEST, and it is needed in order to allow building drivers/media omap2 driver. So, change the logic there to allow building it. Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci: get rid of lots of kernel-doc warningsMauro Carvalho Chehab
Driver build produce lots of warnings due to wrong kernel-doc markups: drivers/media/platform/davinci/vpbe.c:60: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_current_encoder_info' drivers/media/platform/davinci/vpbe.c:78: warning: Function parameter or member 'cfg' not described in 'vpbe_find_encoder_sd_index' drivers/media/platform/davinci/vpbe.c:78: warning: Function parameter or member 'index' not described in 'vpbe_find_encoder_sd_index' drivers/media/platform/davinci/vpbe.c:105: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_g_cropcap' drivers/media/platform/davinci/vpbe.c:105: warning: Function parameter or member 'cropcap' not described in 'vpbe_g_cropcap' drivers/media/platform/davinci/vpbe.c:127: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_enum_outputs' drivers/media/platform/davinci/vpbe.c:127: warning: Function parameter or member 'output' not described in 'vpbe_enum_outputs' drivers/media/platform/davinci/vpbe.c:221: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_set_output' drivers/media/platform/davinci/vpbe.c:221: warning: Function parameter or member 'index' not described in 'vpbe_set_output' drivers/media/platform/davinci/vpbe.c:316: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_get_output' drivers/media/platform/davinci/vpbe.c:328: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_s_dv_timings' drivers/media/platform/davinci/vpbe.c:328: warning: Function parameter or member 'dv_timings' not described in 'vpbe_s_dv_timings' drivers/media/platform/davinci/vpbe.c:380: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_g_dv_timings' drivers/media/platform/davinci/vpbe.c:380: warning: Function parameter or member 'dv_timings' not described in 'vpbe_g_dv_timings' drivers/media/platform/davinci/vpbe.c:405: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_enum_dv_timings' drivers/media/platform/davinci/vpbe.c:405: warning: Function parameter or member 'timings' not described in 'vpbe_enum_dv_timings' drivers/media/platform/davinci/vpbe.c:436: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_s_std' drivers/media/platform/davinci/vpbe.c:436: warning: Function parameter or member 'std_id' not described in 'vpbe_s_std' drivers/media/platform/davinci/vpbe.c:475: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_g_std' drivers/media/platform/davinci/vpbe.c:475: warning: Function parameter or member 'std_id' not described in 'vpbe_g_std' drivers/media/platform/davinci/vpbe.c:500: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_set_mode' drivers/media/platform/davinci/vpbe.c:500: warning: Function parameter or member 'mode_info' not described in 'vpbe_set_mode' drivers/media/platform/davinci/vpbe.c:585: warning: Function parameter or member 'dev' not described in 'vpbe_initialize' drivers/media/platform/davinci/vpbe.c:585: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_initialize' drivers/media/platform/davinci/vpbe.c:779: warning: Function parameter or member 'dev' not described in 'vpbe_deinitialize' drivers/media/platform/davinci/vpbe.c:779: warning: Function parameter or member 'vpbe_dev' not described in 'vpbe_deinitialize' drivers/media/platform/davinci/vpbe_osd.c:144: warning: Function parameter or member 'sd' not described in '_osd_dm6446_vid0_pingpong' drivers/media/platform/davinci/vpbe_osd.c:144: warning: Function parameter or member 'field_inversion' not described in '_osd_dm6446_vid0_pingpong' drivers/media/platform/davinci/vpbe_osd.c:144: warning: Function parameter or member 'fb_base_phys' not described in '_osd_dm6446_vid0_pingpong' drivers/media/platform/davinci/vpbe_osd.c:144: warning: Function parameter or member 'lconfig' not described in '_osd_dm6446_vid0_pingpong' drivers/media/platform/davinci/vpbe_osd.c:799: warning: Function parameter or member 'sd' not described in 'try_layer_config' drivers/media/platform/davinci/vpbe_osd.c:799: warning: Function parameter or member 'layer' not described in 'try_layer_config' drivers/media/platform/davinci/vpbe_osd.c:799: warning: Function parameter or member 'lconfig' not described in 'try_layer_config' drivers/media/platform/davinci/vpbe_display.c:578: warning: Function parameter or member 'disp_dev' not described in 'vpbe_try_format' drivers/media/platform/davinci/vpbe_display.c:578: warning: Function parameter or member 'pixfmt' not described in 'vpbe_try_format' drivers/media/platform/davinci/vpbe_display.c:578: warning: Function parameter or member 'check' not described in 'vpbe_try_format' drivers/media/platform/davinci/vpbe_display.c:943: warning: Function parameter or member 'file' not described in 'vpbe_display_s_std' drivers/media/platform/davinci/vpbe_display.c:943: warning: Function parameter or member 'priv' not described in 'vpbe_display_s_std' drivers/media/platform/davinci/vpbe_display.c:943: warning: Function parameter or member 'std_id' not described in 'vpbe_display_s_std' drivers/media/platform/davinci/vpbe_display.c:975: warning: Function parameter or member 'file' not described in 'vpbe_display_g_std' drivers/media/platform/davinci/vpbe_display.c:975: warning: Function parameter or member 'priv' not described in 'vpbe_display_g_std' drivers/media/platform/davinci/vpbe_display.c:975: warning: Function parameter or member 'std_id' not described in 'vpbe_display_g_std' drivers/media/platform/davinci/vpbe_display.c:998: warning: Function parameter or member 'file' not described in 'vpbe_display_enum_output' drivers/media/platform/davinci/vpbe_display.c:998: warning: Function parameter or member 'priv' not described in 'vpbe_display_enum_output' drivers/media/platform/davinci/vpbe_display.c:998: warning: Function parameter or member 'output' not described in 'vpbe_display_enum_output' drivers/media/platform/davinci/vpbe_display.c:1025: warning: Function parameter or member 'file' not described in 'vpbe_display_s_output' drivers/media/platform/davinci/vpbe_display.c:1025: warning: Function parameter or member 'priv' not described in 'vpbe_display_s_output' drivers/media/platform/davinci/vpbe_display.c:1025: warning: Function parameter or member 'i' not described in 'vpbe_display_s_output' drivers/media/platform/davinci/vpbe_display.c:1054: warning: Function parameter or member 'file' not described in 'vpbe_display_g_output' drivers/media/platform/davinci/vpbe_display.c:1054: warning: Function parameter or member 'priv' not described in 'vpbe_display_g_output' drivers/media/platform/davinci/vpbe_display.c:1054: warning: Function parameter or member 'i' not described in 'vpbe_display_g_output' drivers/media/platform/davinci/vpbe_display.c:1074: warning: Function parameter or member 'file' not described in 'vpbe_display_enum_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1074: warning: Function parameter or member 'priv' not described in 'vpbe_display_enum_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1074: warning: Function parameter or member 'timings' not described in 'vpbe_display_enum_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1104: warning: Function parameter or member 'file' not described in 'vpbe_display_s_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1104: warning: Function parameter or member 'priv' not described in 'vpbe_display_s_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1104: warning: Function parameter or member 'timings' not described in 'vpbe_display_s_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1137: warning: Function parameter or member 'file' not described in 'vpbe_display_g_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1137: warning: Function parameter or member 'priv' not described in 'vpbe_display_g_dv_timings' drivers/media/platform/davinci/vpbe_display.c:1137: warning: Function parameter or member 'dv_timings' not described in 'vpbe_display_g_dv_timings' Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: vpbe_venc: don't store return codes if they won't be usedMauro Carvalho Chehab
Fix those two warnings drivers/media/platform/davinci/vpbe_venc.c: In function ‘venc_set_ntsc’: drivers/media/platform/davinci/vpbe_venc.c:230:6: warning: variable ‘val’ set but not used [-Wunused-but-set-variable] u32 val; ^~~ drivers/media/platform/davinci/vpbe_venc.c: In function ‘venc_sub_dev_init’: drivers/media/platform/davinci/vpbe_venc.c:611:6: warning: variable ‘err’ set but not used [-Wunused-but-set-variable] int err; ^~~ AR drivers/media/platform/davinci/built-in.a Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci: allow build vpbe_display with COMPILE_TESTMauro Carvalho Chehab
Except for some includes (with doesn't seem to be used), this driver builds fine with COMPILE_TEST. So, add checks there to avoid building it if ARCH_DAVINCI is not selected. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: davinci: allow building isif codeMauro Carvalho Chehab
The only reason why this driver doesn't build with COMPILE_TEST is because it includes mach/mux.h. It turns that none of the macros defined there are used. So, get rid of it, in order to allow it to build with COMPILE_TEST. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: mmp-driver: make two functions staticMauro Carvalho Chehab
Those functions are used only internally: CC drivers/media/platform/marvell-ccic/mmp-driver.o drivers/media/platform/marvell-ccic/mmp-driver.c:186:6: warning: no previous prototype for ‘mcam_ctlr_reset’ [-Wmissing-prototypes] void mcam_ctlr_reset(struct mcam_camera *mcam) ^~~~~~~~~~~~~~~ drivers/media/platform/marvell-ccic/mmp-driver.c:217:6: warning: no previous prototype for ‘mmpcam_calc_dphy’ [-Wmissing-prototypes] void mmpcam_calc_dphy(struct mcam_camera *mcam) ^~~~~~~~~~~~~~~~ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: marvel-ccic: re-enable mmp-driver buildMauro Carvalho Chehab
This driver was disabled back in 2015 from builds because of some troubles with the platform_data definition. Now that this got fixed, re-enable it. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: mmp-camera.h: add missing platform dataMauro Carvalho Chehab
Those definitions used to be part of the original patch: https://patchwork.kernel.org/patch/2815221/ But, somehow, nobody ever noticed until today. Years later, Arnd discovered that mmp-camera driver doesn't build and make it depend on BROKEN. Add the missing bits here, in order to remove BROKEN dependency. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: exymos4-is: allow compile test for EXYNOS FIMC-LITEMauro Carvalho Chehab
There's nothing that prevents building this driver with COMPILE_TEST. So, enable it. While here, make the Kconfig dependency cleaner by removing the unneeded if block. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: cec_gpio: allow building CEC_GPIO with COMPILE_TESTMauro Carvalho Chehab
At least on i386, building with allyesconfig doesn't enable PREEMPT, causing cec_gpio to not build. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: fsl-viu: allow building it with COMPILE_TESTMauro Carvalho Chehab
There aren't many things that would be needed to allow it to build with compile test. Add the needed bits. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17netfilter: conntrack: include kmemleak.h for kmemleak_not_leak()Stephen Rothwell
After merging the netfilter tree, today's linux-next build (powerpc ppc64_defconfig) failed like this: net/netfilter/nf_conntrack_extend.c: In function 'nf_ct_ext_add': net/netfilter/nf_conntrack_extend.c:74:2: error: implicit declaration of function 'kmemleak_not_leak' [-Werror=implicit-function-declaration] kmemleak_not_leak(old); ^~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors Fixes: 114aa35d06d4 ("netfilter: conntrack: silent a memory leak warning") Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2018-04-17media: fsl-viu: mark static functions as suchMauro Carvalho Chehab
There are several functions that are used only inside the driver. Stop exposing that to global symbolspace. Get rid of the following gcc warnings: drivers/media/platform/fsl-viu.c:240:17: warning: no previous prototype for ‘format_by_fourcc’ [-Wmissing-prototypes] struct viu_fmt *format_by_fourcc(int fourcc) ^~~~~~~~~~~~~~~~ drivers/media/platform/fsl-viu.c:253:6: warning: no previous prototype for ‘viu_start_dma’ [-Wmissing-prototypes] void viu_start_dma(struct viu_dev *dev) ^~~~~~~~~~~~~ drivers/media/platform/fsl-viu.c:262:6: warning: no previous prototype for ‘viu_stop_dma’ [-Wmissing-prototypes] void viu_stop_dma(struct viu_dev *dev) ^~~~~~~~~~~~ drivers/media/platform/fsl-viu.c:807:5: warning: no previous prototype for ‘vidioc_g_fbuf’ [-Wmissing-prototypes] int vidioc_g_fbuf(struct file *file, void *priv, struct v4l2_framebuffer *arg) ^~~~~~~~~~~~~ drivers/media/platform/fsl-viu.c:818:5: warning: no previous prototype for ‘vidioc_s_fbuf’ [-Wmissing-prototypes] int vidioc_s_fbuf(struct file *file, void *priv, const struct v4l2_framebuffer *arg) ^~~~~~~~~~~~~ drivers/media/platform/fsl-viu.c: In function ‘viu_open’: drivers/media/platform/fsl-viu.c:1170:6: warning: variable ‘status_cfg’ set but not used [-Wunused-but-set-variable] u32 status_cfg; ^~~~~~~~~~ drivers/media/platform/fsl-viu.c: At top level: drivers/media/platform/fsl-viu.c:1304:6: warning: no previous prototype for ‘viu_reset’ [-Wmissing-prototypes] void viu_reset(struct viu_reg *reg) ^~~~~~~~~ Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17media: omap3isp/isp: remove an unused static varMauro Carvalho Chehab
The isp_xclk_init_data const data isn't used anywere. drivers/media/platform/omap3isp/isp.c:294:35: warning: ‘isp_xclk_init_data’ defined but not used [-Wunused-const-variable=] static const struct clk_init_data isp_xclk_init_data = { ^~~~~~~~~~~~~~~~~~ Fixes: 9b28ee3c9122 ("[media] omap3isp: Use the common clock framework") Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-04-17s390/signal: cleanup uapi struct sigactionMartin Schwidefsky
The struct sigaction for user space in arch/s390/include/uapi/asm/signal.h is ill defined. The kernel uses two structures 'struct sigaction' and 'struct old_sigaction', the correlation in the kernel for both 31 and 64 bit is as follows sys_sigaction -> struct old_sigaction sys_rt_sigaction -> struct sigaction The correlation of the (single) uapi definition for 'struct sigaction' under '#ifndef __KERNEL__': 31-bit: sys_sigaction -> uapi struct sigaction 31-bit: sys_rt_sigaction -> no structure available 64-bit: sys_sigaction -> no structure available 64-bit: sys_rt_sigaction -> uapi struct sigaction This is quite confusing. To make it a bit less confusing make the uapi definition of 'struct sigaction' usable for sys_rt_sigaction for both 31-bit and 64-bit. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2018-04-17MAINTAINERS: Update e-mail address for Christoffer DallChristoffer Dall
Update my e-mail address to a working address. Signed-off-by: Christoffer Dall <christoffer.dall@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-04-17KVM: arm/arm64: Close VMID generation raceMarc Zyngier
Before entering the guest, we check whether our VMID is still part of the current generation. In order to avoid taking a lock, we start with checking that the generation is still current, and only if not current do we take the lock, recheck, and update the generation and VMID. This leaves open a small race: A vcpu can bump up the global generation number as well as the VM's, but has not updated the VMID itself yet. At that point another vcpu from the same VM comes in, checks the generation (and finds it not needing anything), and jumps into the guest. At this point, we end-up with two vcpus belonging to the same VM running with two different VMIDs. Eventually, the VMID used by the second vcpu will get reassigned, and things will really go wrong... A simple solution would be to drop this initial check, and always take the lock. This is likely to cause performance issues. A middle ground is to convert the spinlock to a rwlock, and only take the read lock on the fast path. If the check fails at that point, drop it and acquire the write lock, rechecking the condition. This ensures that the above scenario doesn't occur. Cc: stable@vger.kernel.org Reported-by: Mark Rutland <mark.rutland@arm.com> Tested-by: Shannon Zhao <zhaoshenglong@huawei.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-04-17objtool: Support HOSTCFLAGS and HOSTLDFLAGSLaura Abbott
It may be useful to compile host programs with different flags (e.g. hardening). Ensure that objtool picks up the appropriate flags. Signed-off-by: Laura Abbott <labbott@redhat.com> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kbuild@vger.kernel.org Link: http://lkml.kernel.org/r/05a360681176f1423cb2fde8faae3a0a0261afc5.1523560825.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-04-17drm/exynos: exynos_drm_fb -> drm_framebufferDaniel Stone
Now exynos_drm_fb is just an empty wrapper around drm_framebuffer, we can drop it. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com>
2018-04-17drm/exynos: Move dma_addr out of exynos_drm_fbDaniel Stone
This can be calculated from the GEM BO DMA address as well as the offset stored in the base framebuffer. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com>
2018-04-17drm/exynos: Move GEM BOs to drm_framebufferDaniel Stone
Since drm_framebuffer can now store GEM objects directly, place them there rather than in our own subclass. As this makes the framebuffer create_handle and destroy functions the same as the GEM framebuffer helper, we can reuse those. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com>
2018-04-17trace_kprobe: Remove warning message "Could not insert probe at..."Song Liu
This warning message is not very helpful, as the return value should already show information about the error. Also, this message will spam dmesg if the user space does testing in a loop, like: for x in {0..5} do echo p:xx xx+$x >> /sys/kernel/debug/tracing/kprobe_events done Reported-by: Vince Weaver <vincent.weaver@maine.edu> Signed-off-by: Song Liu <songliubraving@fb.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: kernel-team@fb.com Link: http://lkml.kernel.org/r/20180413185513.3626052-1-songliubraving@fb.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-04-16blk-mq: start request gstate with gen 1Jianchao Wang
rq->gstate and rq->aborted_gstate both are zero before rqs are allocated. If we have a small timeout, when the timer fires, there could be rqs that are never allocated, and also there could be rq that has been allocated but not initialized and started. At the moment, the rq->gstate and rq->aborted_gstate both are 0, thus the blk_mq_terminate_expired will identify the rq is timed out and invoke .timeout early. For scsi, this will cause scsi_times_out to be invoked before the scsi_cmnd is not initialized, scsi_cmnd->device is still NULL at the moment, then we will get crash. Cc: Bart Van Assche <bart.vanassche@wdc.com> Cc: Tejun Heo <tj@kernel.org> Cc: Ming Lei <ming.lei@redhat.com> Cc: Martin Steigerwald <Martin@Lichtvoll.de> Cc: stable@vger.kernel.org Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-04-16block/swim: Select appropriate drive on device openFinn Thain
The driver supports internal and external FDD units so the floppy_open function must not hard-code the drive location. Cc: Laurent Vivier <lvivier@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: stable@vger.kernel.org # v4.14+ Tested-by: Stan Johnson <userm57@yahoo.com> Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Acked-by: Laurent Vivier <lvivier@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>