2012-11-29 20:45:20

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 0/6] drivers: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

Turns out a few drivers have strayed away from using the
spinlock_t typedef and decided to use struct spinlock
directly. This series converts these drivers to use
spinlock_t. Each change has been compile tested with
allmodconfig and sparse checked. Driver developers
may want to look at the compile error output / sparse
error report supplied in each commit log, in particular
brcmfmac and i915, there are quite a few things that
are not related to this change that the developers
can clean up / fix.

Luis R. Rodriguez (6):
ux500: convert struct spinlock to spinlock_t
i915: convert struct spinlock to spinlock_t
s5p-fimc: convert struct spinlock to spinlock_t
s5p-jpeg: convert struct spinlock to spinlock_t
brcmfmac: convert struct spinlock to spinlock_t
ie6xx_wdt: convert struct spinlock to spinlock_t

drivers/crypto/ux500/cryp/cryp.h | 4 ++--
drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
drivers/gpu/drm/i915/i915_drv.h | 4 ++--
drivers/media/platform/s5p-fimc/mipi-csis.c | 2 +-
drivers/media/platform/s5p-jpeg/jpeg-core.h | 2 +-
drivers/net/wireless/brcm80211/brcmfmac/fweh.h | 2 +-
drivers/watchdog/ie6xx_wdt.c | 2 +-
7 files changed, 10 insertions(+), 10 deletions(-)

--
1.7.10.4


2012-11-29 20:45:26

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 1/6] ux500: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

I was unable to build test with allmodconfig:

mcgrof@frijol ~/linux-next (git::(no branch))$ make C=1 M=drivers/crypto/ux500/

WARNING: Symbol version dump /home/mcgrof/linux-next/Module.symvers
is missing; modules will have no dependencies and modversions.

LD drivers/crypto/ux500/built-in.o
Building modules, stage 2.
MODPOST 0 modules

Cc: Srinidhi Kasagar <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: [email protected]
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/crypto/ux500/cryp/cryp.h | 4 ++--
drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/ux500/cryp/cryp.h b/drivers/crypto/ux500/cryp/cryp.h
index 14cfd05..ba324b2 100644
--- a/drivers/crypto/ux500/cryp/cryp.h
+++ b/drivers/crypto/ux500/cryp/cryp.h
@@ -236,12 +236,12 @@ struct cryp_device_data {
struct clk *clk;
struct regulator *pwr_regulator;
int power_status;
- struct spinlock ctx_lock;
+ spinlock_t ctx_lock;
struct cryp_ctx *current_ctx;
struct klist_node list_node;
struct cryp_dma dma;
bool power_state;
- struct spinlock power_state_spinlock;
+ spinlock_t power_state_spinlock;
bool restore_dev_ctx;
};

diff --git a/drivers/crypto/ux500/hash/hash_alg.h b/drivers/crypto/ux500/hash/hash_alg.h
index cd9351c..0183f5e 100644
--- a/drivers/crypto/ux500/hash/hash_alg.h
+++ b/drivers/crypto/ux500/hash/hash_alg.h
@@ -363,10 +363,10 @@ struct hash_device_data {
struct hash_register __iomem *base;
struct klist_node list_node;
struct device *dev;
- struct spinlock ctx_lock;
+ spinlock_t ctx_lock;
struct hash_ctx *current_ctx;
bool power_state;
- struct spinlock power_state_lock;
+ spinlock_t power_state_lock;
struct regulator *regulator;
struct clk *clk;
bool restore_dev_state;
--
1.7.10.4

2012-11-29 20:45:33

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 2/6] i915: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

LD drivers/gpu/drm/i915/built-in.o
CHECK drivers/gpu/drm/i915/i915_drv.c
CC [M] drivers/gpu/drm/i915/i915_drv.o
CHECK drivers/gpu/drm/i915/i915_dma.c
CC [M] drivers/gpu/drm/i915/i915_dma.o
CHECK drivers/gpu/drm/i915/i915_irq.c
CC [M] drivers/gpu/drm/i915/i915_irq.o
CHECK drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_debugfs.c:558:31: warning: dereference of noderef expression
drivers/gpu/drm/i915/i915_debugfs.c:558:39: warning: dereference of noderef expression
drivers/gpu/drm/i915/i915_debugfs.c:558:51: warning: dereference of noderef expression
drivers/gpu/drm/i915/i915_debugfs.c:558:63: warning: dereference of noderef expression
CC [M] drivers/gpu/drm/i915/i915_debugfs.o
CHECK drivers/gpu/drm/i915/i915_suspend.c
CC [M] drivers/gpu/drm/i915/i915_suspend.o
CHECK drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem.c:3703:14: warning: incorrect type in assignment (different base types)
drivers/gpu/drm/i915/i915_gem.c:3703:14: expected unsigned int [unsigned] [usertype] mask
drivers/gpu/drm/i915/i915_gem.c:3703:14: got restricted gfp_t
drivers/gpu/drm/i915/i915_gem.c:3706:22: warning: invalid assignment: &=
drivers/gpu/drm/i915/i915_gem.c:3706:22: left side has type unsigned int
drivers/gpu/drm/i915/i915_gem.c:3706:22: right side has type restricted gfp_t
drivers/gpu/drm/i915/i915_gem.c:3707:22: warning: invalid assignment: |=
drivers/gpu/drm/i915/i915_gem.c:3707:22: left side has type unsigned int
drivers/gpu/drm/i915/i915_gem.c:3707:22: right side has type restricted gfp_t
drivers/gpu/drm/i915/i915_gem.c:3711:39: warning: incorrect type in argument 2 (different base types)
drivers/gpu/drm/i915/i915_gem.c:3711:39: expected restricted gfp_t [usertype] mask
drivers/gpu/drm/i915/i915_gem.c:3711:39: got unsigned int [unsigned] [usertype] mask
CC [M] drivers/gpu/drm/i915/i915_gem.o
CHECK drivers/gpu/drm/i915/i915_gem_context.c
CC [M] drivers/gpu/drm/i915/i915_gem_context.o
CHECK drivers/gpu/drm/i915/i915_gem_debug.c
CC [M] drivers/gpu/drm/i915/i915_gem_debug.o
CHECK drivers/gpu/drm/i915/i915_gem_evict.c
CC [M] drivers/gpu/drm/i915/i915_gem_evict.o
CHECK drivers/gpu/drm/i915/i915_gem_execbuffer.c
CC [M] drivers/gpu/drm/i915/i915_gem_execbuffer.o
CHECK drivers/gpu/drm/i915/i915_gem_gtt.c
CC [M] drivers/gpu/drm/i915/i915_gem_gtt.o
CHECK drivers/gpu/drm/i915/i915_gem_stolen.c
CC [M] drivers/gpu/drm/i915/i915_gem_stolen.o
CHECK drivers/gpu/drm/i915/i915_gem_tiling.c
CC [M] drivers/gpu/drm/i915/i915_gem_tiling.o
CHECK drivers/gpu/drm/i915/i915_sysfs.c
CC [M] drivers/gpu/drm/i915/i915_sysfs.o
CHECK drivers/gpu/drm/i915/i915_trace_points.c
CC [M] drivers/gpu/drm/i915/i915_trace_points.o
CHECK drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c:1736:9: warning: mixing different enum types
drivers/gpu/drm/i915/intel_display.c:1736:9: int enum transcoder versus
drivers/gpu/drm/i915/intel_display.c:1736:9: int enum pipe
drivers/gpu/drm/i915/intel_display.c:3659:48: warning: mixing different enum types
drivers/gpu/drm/i915/intel_display.c:3659:48: int enum pipe versus
drivers/gpu/drm/i915/intel_display.c:3659:48: int enum transcoder
CC [M] drivers/gpu/drm/i915/intel_display.o
CHECK drivers/gpu/drm/i915/intel_crt.c
CC [M] drivers/gpu/drm/i915/intel_crt.o
CHECK drivers/gpu/drm/i915/intel_lvds.c
CC [M] drivers/gpu/drm/i915/intel_lvds.o
CHECK drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_bios.c:706:60: warning: incorrect type in initializer (different address spaces)
drivers/gpu/drm/i915/intel_bios.c:706:60: expected struct vbt_header *vbt
drivers/gpu/drm/i915/intel_bios.c:706:60: got void [noderef] <asn:2>*vbt
drivers/gpu/drm/i915/intel_bios.c:726:42: warning: incorrect type in argument 1 (different address spaces)
drivers/gpu/drm/i915/intel_bios.c:726:42: expected void const *<noident>
drivers/gpu/drm/i915/intel_bios.c:726:42: got unsigned char [noderef] [usertype] <asn:2>*
drivers/gpu/drm/i915/intel_bios.c:727:40: warning: cast removes address space of expression
drivers/gpu/drm/i915/intel_bios.c:738:24: warning: cast removes address space of expression
CC [M] drivers/gpu/drm/i915/intel_bios.o
CHECK drivers/gpu/drm/i915/intel_ddi.c
drivers/gpu/drm/i915/intel_ddi.c:87:6: warning: symbol 'intel_prepare_ddi_buffers' was not declared. Should it be static?
drivers/gpu/drm/i915/intel_ddi.c:1036:34: warning: mixing different enum types
drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum pipe versus
drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum transcoder
CC [M] drivers/gpu/drm/i915/intel_ddi.o
drivers/gpu/drm/i915/intel_ddi.c: In function ‘intel_ddi_setup_hw_pll_state’:
drivers/gpu/drm/i915/intel_ddi.c:1129:2: warning: ‘port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/gpu/drm/i915/intel_ddi.c:1111:12: note: ‘port’ was declared here
CHECK drivers/gpu/drm/i915/intel_dp.c
CC [M] drivers/gpu/drm/i915/intel_dp.o
CHECK drivers/gpu/drm/i915/intel_hdmi.c
CC [M] drivers/gpu/drm/i915/intel_hdmi.o
CHECK drivers/gpu/drm/i915/intel_sdvo.c
CC [M] drivers/gpu/drm/i915/intel_sdvo.o
CHECK drivers/gpu/drm/i915/intel_modes.c
CC [M] drivers/gpu/drm/i915/intel_modes.o
CHECK drivers/gpu/drm/i915/intel_panel.c
CC [M] drivers/gpu/drm/i915/intel_panel.o
CHECK drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/intel_pm.c:2173:1: warning: symbol 'mchdev_lock' was not declared. Should it be static?
CC [M] drivers/gpu/drm/i915/intel_pm.o
CHECK drivers/gpu/drm/i915/intel_i2c.c
CC [M] drivers/gpu/drm/i915/intel_i2c.o
CHECK drivers/gpu/drm/i915/intel_fb.c
CC [M] drivers/gpu/drm/i915/intel_fb.o
CHECK drivers/gpu/drm/i915/intel_tv.c
CC [M] drivers/gpu/drm/i915/intel_tv.o
CHECK drivers/gpu/drm/i915/intel_dvo.c
CC [M] drivers/gpu/drm/i915/intel_dvo.o
CHECK drivers/gpu/drm/i915/intel_ringbuffer.c
CC [M] drivers/gpu/drm/i915/intel_ringbuffer.o
CHECK drivers/gpu/drm/i915/intel_overlay.c
CC [M] drivers/gpu/drm/i915/intel_overlay.o
CHECK drivers/gpu/drm/i915/intel_sprite.c
CC [M] drivers/gpu/drm/i915/intel_sprite.o
CHECK drivers/gpu/drm/i915/intel_opregion.c
CC [M] drivers/gpu/drm/i915/intel_opregion.o
CHECK drivers/gpu/drm/i915/dvo_ch7xxx.c
CC [M] drivers/gpu/drm/i915/dvo_ch7xxx.o
CHECK drivers/gpu/drm/i915/dvo_ch7017.c
CC [M] drivers/gpu/drm/i915/dvo_ch7017.o
CHECK drivers/gpu/drm/i915/dvo_ivch.c
CC [M] drivers/gpu/drm/i915/dvo_ivch.o
CHECK drivers/gpu/drm/i915/dvo_tfp410.c
CC [M] drivers/gpu/drm/i915/dvo_tfp410.o
CHECK drivers/gpu/drm/i915/dvo_sil164.c
CC [M] drivers/gpu/drm/i915/dvo_sil164.o
CHECK drivers/gpu/drm/i915/dvo_ns2501.c
CC [M] drivers/gpu/drm/i915/dvo_ns2501.o
CHECK drivers/gpu/drm/i915/i915_gem_dmabuf.c
CC [M] drivers/gpu/drm/i915/i915_gem_dmabuf.o
CHECK drivers/gpu/drm/i915/i915_ioc32.c
CC [M] drivers/gpu/drm/i915/i915_ioc32.o
CHECK drivers/gpu/drm/i915/intel_acpi.c
CC [M] drivers/gpu/drm/i915/intel_acpi.o
LD [M] drivers/gpu/drm/i915/i915.o
Building modules, stage 2.
MODPOST 1 modules
CC drivers/gpu/drm/i915/i915.mod.o
LD [M] drivers/gpu/drm/i915/i915.ko

Cc: Daniel Vetter <[email protected]>
Cc: [email protected]
Cc: [email protected]
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/gpu/drm/i915/i915_drv.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 4b83e5f..ef5f33c 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -628,7 +628,7 @@ typedef struct drm_i915_private {
/** forcewake_count is protected by gt_lock */
unsigned forcewake_count;
/** gt_lock is also taken in irq contexts. */
- struct spinlock gt_lock;
+ spinlock_t gt_lock;

struct intel_gmbus gmbus[GMBUS_NUM_PORTS];

@@ -1128,7 +1128,7 @@ struct drm_i915_gem_request {

struct drm_i915_file_private {
struct {
- struct spinlock lock;
+ spinlock_t lock;
struct list_head request_list;
} mm;
struct idr context_idr;
--
1.7.10.4

2012-11-29 20:45:40

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 3/6] s5p-fimc: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

Could not get this to build with allmodconfig:

mcgrof@frijol ~/linux-next (git::(no branch))$ make C=1 M=drivers/media/platform/s5p-fimc/

WARNING: Symbol version dump /home/mcgrof/linux-next/Module.symvers
is missing; modules will have no dependencies and modversions.

LD drivers/media/platform/s5p-fimc/built-in.o
Building modules, stage 2.
MODPOST 0 modules

Cc: Kyungmin Park <[email protected]>
Cc: Sylwester Nawrocki <[email protected]>
Cc: [email protected]
Cc: [email protected]
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/media/platform/s5p-fimc/mipi-csis.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/s5p-fimc/mipi-csis.c b/drivers/media/platform/s5p-fimc/mipi-csis.c
index 4c961b1..86c8775 100644
--- a/drivers/media/platform/s5p-fimc/mipi-csis.c
+++ b/drivers/media/platform/s5p-fimc/mipi-csis.c
@@ -187,7 +187,7 @@ struct csis_state {
const struct csis_pix_format *csis_fmt;
struct v4l2_mbus_framefmt format;

- struct spinlock slock;
+ spinlock_t slock;
struct csis_pktbuf pkt_buf;
struct s5pcsis_event events[S5PCSIS_NUM_EVENTS];
};
--
1.7.10.4

2012-11-29 20:45:49

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 5/6] brcmfmac: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

LD drivers/net/wireless/brcm80211/built-in.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/fwil.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/fwil.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/fweh.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/fweh.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/dhd_common.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/usb.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/usb.o
CHECK drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.c
CC [M] drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.o
LD [M] drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.o
LD drivers/net/wireless/brcm80211/brcmsmac/built-in.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c:1311:6: warning: context imbalance in 'brcms_down' - unexpected unlock
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c:1598:6: warning: context imbalance in 'brcms_rfkill_set_hw_state' - unexpected unlock
CC [M] drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/ucode_loader.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/ucode_loader.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/ampdu.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/antsel.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/antsel.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/channel.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/channel.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/main.c
drivers/net/wireless/brcm80211/brcmsmac/main.c:6246:36: warning: Initializer entry defined twice
drivers/net/wireless/brcm80211/brcmsmac/main.c:6246:43: also defined here
CC [M] drivers/net/wireless/brcm80211/brcmsmac/main.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy_shim.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy_shim.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/pmu.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/pmu.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/rate.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/rate.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/stf.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/stf.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/aiutils.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c:3313:46: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c:17688:47: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c:18187:53: warning: cast truncates bits from constant value (ffff3fff becomes 3fff)
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c:21160:36: warning: cast truncates bits from constant value (ffff3fff becomes 3fff)
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c:23321:35: warning: cast truncates bits from constant value (ffff7fff becomes 7fff)
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c:28343:44: warning: cast truncates bits from constant value (ffff1fff becomes 1fff)
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_n.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_n.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/phy/phy_qmath.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/phy/phy_qmath.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/dma.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/dma.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.o
CHECK drivers/net/wireless/brcm80211/brcmsmac/debug.c
CC [M] drivers/net/wireless/brcm80211/brcmsmac/debug.o
LD [M] drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.o
LD drivers/net/wireless/brcm80211/brcmutil/built-in.o
CHECK drivers/net/wireless/brcm80211/brcmutil/utils.c
CC [M] drivers/net/wireless/brcm80211/brcmutil/utils.o
LD [M] drivers/net/wireless/brcm80211/brcmutil/brcmutil.o
Building modules, stage 2.
MODPOST 3 modules
CC drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.mod.o
LD [M] drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
CC drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.mod.o
LD [M] drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
CC drivers/net/wireless/brcm80211/brcmutil/brcmutil.mod.o
LD [M] drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko

Cc: Brett Rudley <[email protected]>
Cc: Roland Vossen <[email protected]>
Cc: Arend van Spriel <[email protected]>
Cc: Franky (Zhenhui) Lin <[email protected]>
Cc: Kan Yan <[email protected]>
Cc: [email protected]
Cc: [email protected]
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/net/wireless/brcm80211/brcmfmac/fweh.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fweh.h b/drivers/net/wireless/brcm80211/brcmfmac/fweh.h
index b39246a..240a2ea 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/fweh.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/fweh.h
@@ -158,7 +158,7 @@ typedef int (*brcmf_fweh_handler_t)(struct brcmf_if *ifp,
*/
struct brcmf_fweh_info {
struct work_struct event_work;
- struct spinlock evt_q_lock;
+ spinlock_t evt_q_lock;
struct list_head event_q;
int (*evt_handler[BRCMF_E_LAST])(struct brcmf_if *ifp,
const struct brcmf_event_msg *evtmsg,
--
1.7.10.4

2012-11-29 20:45:55

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 6/6] ie6xx_wdt: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

CHECK drivers/watchdog/ie6xx_wdt.c
CC [M] drivers/watchdog/ie6xx_wdt.o
Building modules, stage 2.
MODPOST 43 modules
LD [M] drivers/watchdog/ie6xx_wdt.ko

Cc: Alexander Stein <[email protected]>
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/watchdog/ie6xx_wdt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/watchdog/ie6xx_wdt.c b/drivers/watchdog/ie6xx_wdt.c
index e24ef6a..f2d6573 100644
--- a/drivers/watchdog/ie6xx_wdt.c
+++ b/drivers/watchdog/ie6xx_wdt.c
@@ -82,7 +82,7 @@ MODULE_PARM_DESC(resetmode,

static struct {
unsigned short sch_wdtba;
- struct spinlock unlock_sequence;
+ spinlock_t unlock_sequence;
#ifdef CONFIG_DEBUG_FS
struct dentry *debugfs;
#endif
--
1.7.10.4

2012-11-29 20:46:46

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH 4/6] s5p-jpeg: convert struct spinlock to spinlock_t

From: "Luis R. Rodriguez" <[email protected]>

spinlock_t should always be used.

Could not get this to build with allmodconfig:

mcgrof@frijol ~/linux-next (git::(no branch))$ make C=1 M=drivers/media/platform/s5p-jpeg

WARNING: Symbol version dump /home/mcgrof/linux-next/Module.symvers
is missing; modules will have no dependencies and modversions.

Building modules, stage 2.
MODPOST 0 modules

Cc: Kyungmin Park <[email protected]>
Cc: Sylwester Nawrocki <[email protected]>
Cc: [email protected]
Cc: [email protected]
Reported-by: Hauke Mehrtens <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
---
drivers/media/platform/s5p-jpeg/jpeg-core.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.h b/drivers/media/platform/s5p-jpeg/jpeg-core.h
index 022b9b9..8a4013e 100644
--- a/drivers/media/platform/s5p-jpeg/jpeg-core.h
+++ b/drivers/media/platform/s5p-jpeg/jpeg-core.h
@@ -62,7 +62,7 @@
*/
struct s5p_jpeg {
struct mutex lock;
- struct spinlock slock;
+ spinlock_t slock;

struct v4l2_device v4l2_dev;
struct video_device *vfd_encoder;
--
1.7.10.4

2012-11-29 20:48:25

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH 2/6] i915: convert struct spinlock to spinlock_t

On Thu, Nov 29, 2012 at 12:45:06PM -0800, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <[email protected]>
>
> spinlock_t should always be used.
>
> LD drivers/gpu/drm/i915/built-in.o
> CHECK drivers/gpu/drm/i915/i915_drv.c
> CC [M] drivers/gpu/drm/i915/i915_drv.o
> CHECK drivers/gpu/drm/i915/i915_dma.c
> CC [M] drivers/gpu/drm/i915/i915_dma.o
> CHECK drivers/gpu/drm/i915/i915_irq.c
> CC [M] drivers/gpu/drm/i915/i915_irq.o
> CHECK drivers/gpu/drm/i915/i915_debugfs.c
> drivers/gpu/drm/i915/i915_debugfs.c:558:31: warning: dereference of noderef expression
> drivers/gpu/drm/i915/i915_debugfs.c:558:39: warning: dereference of noderef expression
> drivers/gpu/drm/i915/i915_debugfs.c:558:51: warning: dereference of noderef expression
> drivers/gpu/drm/i915/i915_debugfs.c:558:63: warning: dereference of noderef expression
> CC [M] drivers/gpu/drm/i915/i915_debugfs.o
> CHECK drivers/gpu/drm/i915/i915_suspend.c
> CC [M] drivers/gpu/drm/i915/i915_suspend.o
> CHECK drivers/gpu/drm/i915/i915_gem.c
> drivers/gpu/drm/i915/i915_gem.c:3703:14: warning: incorrect type in assignment (different base types)
> drivers/gpu/drm/i915/i915_gem.c:3703:14: expected unsigned int [unsigned] [usertype] mask
> drivers/gpu/drm/i915/i915_gem.c:3703:14: got restricted gfp_t
> drivers/gpu/drm/i915/i915_gem.c:3706:22: warning: invalid assignment: &=
> drivers/gpu/drm/i915/i915_gem.c:3706:22: left side has type unsigned int
> drivers/gpu/drm/i915/i915_gem.c:3706:22: right side has type restricted gfp_t
> drivers/gpu/drm/i915/i915_gem.c:3707:22: warning: invalid assignment: |=
> drivers/gpu/drm/i915/i915_gem.c:3707:22: left side has type unsigned int
> drivers/gpu/drm/i915/i915_gem.c:3707:22: right side has type restricted gfp_t
> drivers/gpu/drm/i915/i915_gem.c:3711:39: warning: incorrect type in argument 2 (different base types)
> drivers/gpu/drm/i915/i915_gem.c:3711:39: expected restricted gfp_t [usertype] mask
> drivers/gpu/drm/i915/i915_gem.c:3711:39: got unsigned int [unsigned] [usertype] mask
> CC [M] drivers/gpu/drm/i915/i915_gem.o
> CHECK drivers/gpu/drm/i915/i915_gem_context.c
> CC [M] drivers/gpu/drm/i915/i915_gem_context.o
> CHECK drivers/gpu/drm/i915/i915_gem_debug.c
> CC [M] drivers/gpu/drm/i915/i915_gem_debug.o
> CHECK drivers/gpu/drm/i915/i915_gem_evict.c
> CC [M] drivers/gpu/drm/i915/i915_gem_evict.o
> CHECK drivers/gpu/drm/i915/i915_gem_execbuffer.c
> CC [M] drivers/gpu/drm/i915/i915_gem_execbuffer.o
> CHECK drivers/gpu/drm/i915/i915_gem_gtt.c
> CC [M] drivers/gpu/drm/i915/i915_gem_gtt.o
> CHECK drivers/gpu/drm/i915/i915_gem_stolen.c
> CC [M] drivers/gpu/drm/i915/i915_gem_stolen.o
> CHECK drivers/gpu/drm/i915/i915_gem_tiling.c
> CC [M] drivers/gpu/drm/i915/i915_gem_tiling.o
> CHECK drivers/gpu/drm/i915/i915_sysfs.c
> CC [M] drivers/gpu/drm/i915/i915_sysfs.o
> CHECK drivers/gpu/drm/i915/i915_trace_points.c
> CC [M] drivers/gpu/drm/i915/i915_trace_points.o
> CHECK drivers/gpu/drm/i915/intel_display.c
> drivers/gpu/drm/i915/intel_display.c:1736:9: warning: mixing different enum types
> drivers/gpu/drm/i915/intel_display.c:1736:9: int enum transcoder versus
> drivers/gpu/drm/i915/intel_display.c:1736:9: int enum pipe
> drivers/gpu/drm/i915/intel_display.c:3659:48: warning: mixing different enum types
> drivers/gpu/drm/i915/intel_display.c:3659:48: int enum pipe versus
> drivers/gpu/drm/i915/intel_display.c:3659:48: int enum transcoder
> CC [M] drivers/gpu/drm/i915/intel_display.o
> CHECK drivers/gpu/drm/i915/intel_crt.c
> CC [M] drivers/gpu/drm/i915/intel_crt.o
> CHECK drivers/gpu/drm/i915/intel_lvds.c
> CC [M] drivers/gpu/drm/i915/intel_lvds.o
> CHECK drivers/gpu/drm/i915/intel_bios.c
> drivers/gpu/drm/i915/intel_bios.c:706:60: warning: incorrect type in initializer (different address spaces)
> drivers/gpu/drm/i915/intel_bios.c:706:60: expected struct vbt_header *vbt
> drivers/gpu/drm/i915/intel_bios.c:706:60: got void [noderef] <asn:2>*vbt
> drivers/gpu/drm/i915/intel_bios.c:726:42: warning: incorrect type in argument 1 (different address spaces)
> drivers/gpu/drm/i915/intel_bios.c:726:42: expected void const *<noident>
> drivers/gpu/drm/i915/intel_bios.c:726:42: got unsigned char [noderef] [usertype] <asn:2>*
> drivers/gpu/drm/i915/intel_bios.c:727:40: warning: cast removes address space of expression
> drivers/gpu/drm/i915/intel_bios.c:738:24: warning: cast removes address space of expression
> CC [M] drivers/gpu/drm/i915/intel_bios.o
> CHECK drivers/gpu/drm/i915/intel_ddi.c
> drivers/gpu/drm/i915/intel_ddi.c:87:6: warning: symbol 'intel_prepare_ddi_buffers' was not declared. Should it be static?
> drivers/gpu/drm/i915/intel_ddi.c:1036:34: warning: mixing different enum types
> drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum pipe versus
> drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum transcoder
> CC [M] drivers/gpu/drm/i915/intel_ddi.o
> drivers/gpu/drm/i915/intel_ddi.c: In function ‘intel_ddi_setup_hw_pll_state’:
> drivers/gpu/drm/i915/intel_ddi.c:1129:2: warning: ‘port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
> drivers/gpu/drm/i915/intel_ddi.c:1111:12: note: ‘port’ was declared here
> CHECK drivers/gpu/drm/i915/intel_dp.c
> CC [M] drivers/gpu/drm/i915/intel_dp.o
> CHECK drivers/gpu/drm/i915/intel_hdmi.c
> CC [M] drivers/gpu/drm/i915/intel_hdmi.o
> CHECK drivers/gpu/drm/i915/intel_sdvo.c
> CC [M] drivers/gpu/drm/i915/intel_sdvo.o
> CHECK drivers/gpu/drm/i915/intel_modes.c
> CC [M] drivers/gpu/drm/i915/intel_modes.o
> CHECK drivers/gpu/drm/i915/intel_panel.c
> CC [M] drivers/gpu/drm/i915/intel_panel.o
> CHECK drivers/gpu/drm/i915/intel_pm.c
> drivers/gpu/drm/i915/intel_pm.c:2173:1: warning: symbol 'mchdev_lock' was not declared. Should it be static?
> CC [M] drivers/gpu/drm/i915/intel_pm.o
> CHECK drivers/gpu/drm/i915/intel_i2c.c
> CC [M] drivers/gpu/drm/i915/intel_i2c.o
> CHECK drivers/gpu/drm/i915/intel_fb.c
> CC [M] drivers/gpu/drm/i915/intel_fb.o
> CHECK drivers/gpu/drm/i915/intel_tv.c
> CC [M] drivers/gpu/drm/i915/intel_tv.o
> CHECK drivers/gpu/drm/i915/intel_dvo.c
> CC [M] drivers/gpu/drm/i915/intel_dvo.o
> CHECK drivers/gpu/drm/i915/intel_ringbuffer.c
> CC [M] drivers/gpu/drm/i915/intel_ringbuffer.o
> CHECK drivers/gpu/drm/i915/intel_overlay.c
> CC [M] drivers/gpu/drm/i915/intel_overlay.o
> CHECK drivers/gpu/drm/i915/intel_sprite.c
> CC [M] drivers/gpu/drm/i915/intel_sprite.o
> CHECK drivers/gpu/drm/i915/intel_opregion.c
> CC [M] drivers/gpu/drm/i915/intel_opregion.o
> CHECK drivers/gpu/drm/i915/dvo_ch7xxx.c
> CC [M] drivers/gpu/drm/i915/dvo_ch7xxx.o
> CHECK drivers/gpu/drm/i915/dvo_ch7017.c
> CC [M] drivers/gpu/drm/i915/dvo_ch7017.o
> CHECK drivers/gpu/drm/i915/dvo_ivch.c
> CC [M] drivers/gpu/drm/i915/dvo_ivch.o
> CHECK drivers/gpu/drm/i915/dvo_tfp410.c
> CC [M] drivers/gpu/drm/i915/dvo_tfp410.o
> CHECK drivers/gpu/drm/i915/dvo_sil164.c
> CC [M] drivers/gpu/drm/i915/dvo_sil164.o
> CHECK drivers/gpu/drm/i915/dvo_ns2501.c
> CC [M] drivers/gpu/drm/i915/dvo_ns2501.o
> CHECK drivers/gpu/drm/i915/i915_gem_dmabuf.c
> CC [M] drivers/gpu/drm/i915/i915_gem_dmabuf.o
> CHECK drivers/gpu/drm/i915/i915_ioc32.c
> CC [M] drivers/gpu/drm/i915/i915_ioc32.o
> CHECK drivers/gpu/drm/i915/intel_acpi.c
> CC [M] drivers/gpu/drm/i915/intel_acpi.o
> LD [M] drivers/gpu/drm/i915/i915.o
> Building modules, stage 2.
> MODPOST 1 modules
> CC drivers/gpu/drm/i915/i915.mod.o
> LD [M] drivers/gpu/drm/i915/i915.ko
>
> Cc: Daniel Vetter <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Reported-by: Hauke Mehrtens <[email protected]>
> Signed-off-by: Luis R. Rodriguez <[email protected]>
Queued for -next (3.9), thanks for the patch.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

2012-11-29 21:04:04

by Joe Perches

[permalink] [raw]
Subject: [PATCH] checkpatch: Warn when declaring "struct spinlock foo;"

spinlock_t should always be used.

Signed-off-by: Joe Perches <[email protected]>
---
scripts/checkpatch.pl | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e0a674f..f27b0b5 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3336,6 +3336,12 @@ sub process {
"Avoid line continuations in quoted strings\n" . $herecurr);
}

+# check for struct spinlock declarations
+ if ($line =~ /^.\s*\bstruct\s+spinlock\s+\w+\s*;/) {
+ WARN("USE_SPINLOCK_T",
+ "struct spinlock should be spinlock_t\n" . $herecurr);
+ }
+
# Check for misused memsets
if ($^V && $^V ge 5.10.0 &&
defined $stat &&

2012-11-30 08:38:43

by Arend van Spriel

[permalink] [raw]
Subject: Re: [PATCH 0/6] drivers: convert struct spinlock to spinlock_t

On 11/29/2012 09:45 PM, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <[email protected]>
>
> Turns out a few drivers have strayed away from using the
> spinlock_t typedef and decided to use struct spinlock
> directly. This series converts these drivers to use
> spinlock_t. Each change has been compile tested with
> allmodconfig and sparse checked. Driver developers
> may want to look at the compile error output / sparse
> error report supplied in each commit log, in particular
> brcmfmac and i915, there are quite a few things that
> are not related to this change that the developers
> can clean up / fix.

So what is the rationale here. During mainlining our drivers we had to
remove all uses of 'typedef struct foo foo_t;'. The Linux CodingStyle
(chapter 5 Typedefs) is spending a number of lines explaining why.

So is spinlock_t an exception to this rule simply because the kernel
uses spinlock_t all over the place. Using Greg's favorite final email
remark:

Confused.

Gr. AvS

> Luis R. Rodriguez (6):
> ux500: convert struct spinlock to spinlock_t
> i915: convert struct spinlock to spinlock_t
> s5p-fimc: convert struct spinlock to spinlock_t
> s5p-jpeg: convert struct spinlock to spinlock_t
> brcmfmac: convert struct spinlock to spinlock_t
> ie6xx_wdt: convert struct spinlock to spinlock_t
>
> drivers/crypto/ux500/cryp/cryp.h | 4 ++--
> drivers/crypto/ux500/hash/hash_alg.h | 4 ++--
> drivers/gpu/drm/i915/i915_drv.h | 4 ++--
> drivers/media/platform/s5p-fimc/mipi-csis.c | 2 +-
> drivers/media/platform/s5p-jpeg/jpeg-core.h | 2 +-
> drivers/net/wireless/brcm80211/brcmfmac/fweh.h | 2 +-
> drivers/watchdog/ie6xx_wdt.c | 2 +-
> 7 files changed, 10 insertions(+), 10 deletions(-)
>

2012-11-30 19:19:06

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH 0/6] drivers: convert struct spinlock to spinlock_t

On Fri, Nov 30, 2012 at 12:38 AM, Arend van Spriel <[email protected]> wrote:
> So what is the rationale here. During mainlining our drivers we had to
> remove all uses of 'typedef struct foo foo_t;'. The Linux CodingStyle
> (chapter 5 Typedefs) is spending a number of lines explaining why.
>
> So is spinlock_t an exception to this rule simply because the kernel
> uses spinlock_t all over the place.

Yes.

Luis

2012-11-30 20:26:10

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH 0/6] drivers: convert struct spinlock to spinlock_t

On Fri, Nov 30, 2012 at 11:18 AM, Luis R. Rodriguez
<[email protected]> wrote:
> On Fri, Nov 30, 2012 at 12:38 AM, Arend van Spriel <[email protected]> wrote:
>> So what is the rationale here. During mainlining our drivers we had to
>> remove all uses of 'typedef struct foo foo_t;'. The Linux CodingStyle
>> (chapter 5 Typedefs) is spending a number of lines explaining why.
>>
>> So is spinlock_t an exception to this rule simply because the kernel
>> uses spinlock_t all over the place.
>
> Yes.

Let me provide a better explanation. In practice drivers should not be
creating their own typedefs given that generally the reasons to create
them do not exist for drivers. The kernel may provide their own though
for reasons explained in CodingStyle and in such cases the drivers
should use these supplied typedefs.

Luis

2012-11-30 21:21:46

by Arend van Spriel

[permalink] [raw]
Subject: Re: [PATCH 0/6] drivers: convert struct spinlock to spinlock_t

On 11/30/2012 09:25 PM, Luis R. Rodriguez wrote:
> On Fri, Nov 30, 2012 at 11:18 AM, Luis R. Rodriguez
> <[email protected]> wrote:
>> On Fri, Nov 30, 2012 at 12:38 AM, Arend van Spriel <[email protected]> wrote:
>>> So what is the rationale here. During mainlining our drivers we had to
>>> remove all uses of 'typedef struct foo foo_t;'. The Linux CodingStyle
>>> (chapter 5 Typedefs) is spending a number of lines explaining why.
>>>
>>> So is spinlock_t an exception to this rule simply because the kernel
>>> uses spinlock_t all over the place.
>>
>> Yes.
>
> Let me provide a better explanation. In practice drivers should not be
> creating their own typedefs given that generally the reasons to create
> them do not exist for drivers. The kernel may provide their own though
> for reasons explained in CodingStyle and in such cases the drivers
> should use these supplied typedefs.

Ok. Fine by me. It just looked like a case of saying a and doing b.
Thanks for taking time giving the better explanation :-)

Gr. AvS