Signed-off-by: Krzysztof Hałasa <khc@xxxxxxxxx> diff --git a/drivers/crypto/ixp4xx_crypto.c b/drivers/crypto/ixp4xx_crypto.c index 99f06e1..0c7e4f5 100644 --- a/drivers/crypto/ixp4xx_crypto.c +++ b/drivers/crypto/ixp4xx_crypto.c @@ -277,26 +277,25 @@ static struct crypt_ctl *get_crypt_desc(void) int i; static int idx = 0; unsigned long flags; + struct crypt_ctl *desc = NULL; spin_lock_irqsave(&desc_lock, flags); if (unlikely(!crypt_virt)) setup_crypt_desc(); - if (unlikely(!crypt_virt)) { - spin_unlock_irqrestore(&desc_lock, flags); - return NULL; - } + if (unlikely(!crypt_virt)) + goto out; + i = idx; if (crypt_virt[i].ctl_flags == CTL_FLAG_UNUSED) { if (++idx >= NPE_QLEN) idx = 0; crypt_virt[i].ctl_flags = CTL_FLAG_USED; - spin_unlock_irqrestore(&desc_lock, flags); - return crypt_virt +i; - } else { - spin_unlock_irqrestore(&desc_lock, flags); - return NULL; + desc = crypt_virt + i; } +out: + spin_unlock_irqrestore(&desc_lock, flags); + return desc; } static spinlock_t emerg_lock; @@ -319,12 +318,10 @@ static struct crypt_ctl *get_crypt_desc_emerg(void) if (++idx >= NPE_QLEN_TOTAL) idx = NPE_QLEN; crypt_virt[i].ctl_flags = CTL_FLAG_USED; - spin_unlock_irqrestore(&emerg_lock, flags); - return crypt_virt +i; - } else { - spin_unlock_irqrestore(&emerg_lock, flags); - return NULL; + desc = crypt_virt +i; } + spin_unlock_irqrestore(&emerg_lock, flags); + return desc; } static void free_buf_chain(struct device *dev, struct buffer_desc *buf,u32 phys) -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html