diff options
| -rw-r--r-- | drivers/crypto/chelsio/chcr_algo.c | 13 | ||||
| -rw-r--r-- | drivers/crypto/chelsio/chcr_core.c | 4 |
2 files changed, 3 insertions, 14 deletions
diff --git a/drivers/crypto/chelsio/chcr_algo.c b/drivers/crypto/chelsio/chcr_algo.c index 8a76fce22943..73bbd499b6ff 100644 --- a/drivers/crypto/chelsio/chcr_algo.c +++ b/drivers/crypto/chelsio/chcr_algo.c | |||
| @@ -200,17 +200,10 @@ void chcr_verify_tag(struct aead_request *req, u8 *input, int *err) | |||
| 200 | 200 | ||
| 201 | static int chcr_inc_wrcount(struct chcr_dev *dev) | 201 | static int chcr_inc_wrcount(struct chcr_dev *dev) |
| 202 | { | 202 | { |
| 203 | int err = 0; | ||
| 204 | |||
| 205 | spin_lock_bh(&dev->lock_chcr_dev); | ||
| 206 | if (dev->state == CHCR_DETACH) | 203 | if (dev->state == CHCR_DETACH) |
| 207 | err = 1; | 204 | return 1; |
| 208 | else | 205 | atomic_inc(&dev->inflight); |
| 209 | atomic_inc(&dev->inflight); | 206 | return 0; |
| 210 | |||
| 211 | spin_unlock_bh(&dev->lock_chcr_dev); | ||
| 212 | |||
| 213 | return err; | ||
| 214 | } | 207 | } |
| 215 | 208 | ||
| 216 | static inline void chcr_dec_wrcount(struct chcr_dev *dev) | 209 | static inline void chcr_dec_wrcount(struct chcr_dev *dev) |
diff --git a/drivers/crypto/chelsio/chcr_core.c b/drivers/crypto/chelsio/chcr_core.c index 239b933d6df6..029a7354f541 100644 --- a/drivers/crypto/chelsio/chcr_core.c +++ b/drivers/crypto/chelsio/chcr_core.c | |||
| @@ -243,15 +243,11 @@ static void chcr_detach_device(struct uld_ctx *u_ctx) | |||
| 243 | { | 243 | { |
| 244 | struct chcr_dev *dev = &u_ctx->dev; | 244 | struct chcr_dev *dev = &u_ctx->dev; |
| 245 | 245 | ||
| 246 | spin_lock_bh(&dev->lock_chcr_dev); | ||
| 247 | if (dev->state == CHCR_DETACH) { | 246 | if (dev->state == CHCR_DETACH) { |
| 248 | spin_unlock_bh(&dev->lock_chcr_dev); | ||
| 249 | pr_debug("Detached Event received for already detach device\n"); | 247 | pr_debug("Detached Event received for already detach device\n"); |
| 250 | return; | 248 | return; |
| 251 | } | 249 | } |
| 252 | dev->state = CHCR_DETACH; | 250 | dev->state = CHCR_DETACH; |
| 253 | spin_unlock_bh(&dev->lock_chcr_dev); | ||
| 254 | |||
| 255 | if (atomic_read(&dev->inflight) != 0) { | 251 | if (atomic_read(&dev->inflight) != 0) { |
| 256 | schedule_delayed_work(&dev->detach_work, WQ_DETACH_TM); | 252 | schedule_delayed_work(&dev->detach_work, WQ_DETACH_TM); |
| 257 | wait_for_completion(&dev->detach_comp); | 253 | wait_for_completion(&dev->detach_comp); |
