From 648920e86b42ca0219b501b81ca0af6489bd796c Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Mon, 22 Aug 2011 19:19:56 +0000 Subject: [PATCH] scst: Avoid triggering BUG() on uniprocessor systems On uniprocessor systems with lock debugging disabled spin_is_locked() returns false. Disable the spin_is_locked() checks if CONFIG_SMP has not been defined. Reported-by: Frank Signed-off-by: Dave Carroll Cc: scst-devel Cc: Frank git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3828 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_lib.c | 2 ++ scst/src/scst_pres.h | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 6280eb324..d6a465d1b 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -6595,7 +6595,9 @@ void scst_unblock_dev(struct scst_device *dev) TRACE_MGMT_DBG("Device UNBLOCK(new %d), dev %s", dev->block_count-1, dev->virt_name); +#ifdef CONFIG_SMP EXTRACHECKS_BUG_ON(!spin_is_locked(&dev->dev_lock)); +#endif if (--dev->block_count == 0) { struct scst_cmd *cmd, *tcmd; diff --git a/scst/src/scst_pres.h b/scst/src/scst_pres.h index 9b9020c9a..75d3215c3 100644 --- a/scst/src/scst_pres.h +++ b/scst/src/scst_pres.h @@ -55,7 +55,9 @@ static inline void scst_inc_pr_readers_count(struct scst_cmd *cmd, if (!locked) spin_lock_bh(&dev->dev_lock); +#ifdef CONFIG_SMP EXTRACHECKS_BUG_ON(!spin_is_locked(&dev->dev_lock)); +#endif dev->pr_readers_count++; cmd->dec_pr_readers_count_needed = 1; @@ -83,7 +85,9 @@ static inline void scst_dec_pr_readers_count(struct scst_cmd *cmd, if (!locked) spin_lock_bh(&dev->dev_lock); +#ifdef CONFIG_SMP EXTRACHECKS_BUG_ON(!spin_is_locked(&dev->dev_lock)); +#endif dev->pr_readers_count--; cmd->dec_pr_readers_count_needed = 0;