diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-04-12 13:59:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-04-12 13:59:03 -0400 |
commit | d1cb7718cfe3a464189cb3d1ee2c092565bc8b39 (patch) | |
tree | 88dc6a5d23c47b706be9295d4f222cdc88914ded | |
parent | cb098d50ecc0a4729507ddcc7f4ae98c3703fadd (diff) | |
parent | fc167daff581c01ebce8695e9618231cae3561a1 (diff) |
Merge tag 'mmc-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC fixes from Ulf Hansson:
"MMC core:
- Prevent bus reference leak in mmc_blk_init()
MMC host:
- tmio: Fix error handling when issuing CMD23
- jz4740: Fix race condition in IRQ mask update"
* tag 'mmc-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
mmc: tmio: Fix error handling when issuing CMD23
mmc: core: Prevent bus reference leak in mmc_blk_init()
mmc: jz4740: Fix race condition in IRQ mask update
-rw-r--r-- | drivers/mmc/core/block.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/jz4740_mmc.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/tmio_mmc_core.c | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 02485e310c81..9e923cd1d80e 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c | |||
@@ -3080,6 +3080,7 @@ static void __exit mmc_blk_exit(void) | |||
3080 | mmc_unregister_driver(&mmc_driver); | 3080 | mmc_unregister_driver(&mmc_driver); |
3081 | unregister_blkdev(MMC_BLOCK_MAJOR, "mmc"); | 3081 | unregister_blkdev(MMC_BLOCK_MAJOR, "mmc"); |
3082 | unregister_chrdev_region(mmc_rpmb_devt, MAX_DEVICES); | 3082 | unregister_chrdev_region(mmc_rpmb_devt, MAX_DEVICES); |
3083 | bus_unregister(&mmc_rpmb_bus_type); | ||
3083 | } | 3084 | } |
3084 | 3085 | ||
3085 | module_init(mmc_blk_init); | 3086 | module_init(mmc_blk_init); |
diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c index 712e08d9a45e..a0168e9e4fce 100644 --- a/drivers/mmc/host/jz4740_mmc.c +++ b/drivers/mmc/host/jz4740_mmc.c | |||
@@ -362,9 +362,9 @@ static void jz4740_mmc_set_irq_enabled(struct jz4740_mmc_host *host, | |||
362 | host->irq_mask &= ~irq; | 362 | host->irq_mask &= ~irq; |
363 | else | 363 | else |
364 | host->irq_mask |= irq; | 364 | host->irq_mask |= irq; |
365 | spin_unlock_irqrestore(&host->lock, flags); | ||
366 | 365 | ||
367 | writew(host->irq_mask, host->base + JZ_REG_MMC_IMASK); | 366 | writew(host->irq_mask, host->base + JZ_REG_MMC_IMASK); |
367 | spin_unlock_irqrestore(&host->lock, flags); | ||
368 | } | 368 | } |
369 | 369 | ||
370 | static void jz4740_mmc_clock_enable(struct jz4740_mmc_host *host, | 370 | static void jz4740_mmc_clock_enable(struct jz4740_mmc_host *host, |
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c index e30df9ad8197..308029930304 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c | |||
@@ -913,7 +913,7 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host) | |||
913 | host->check_scc_error(host); | 913 | host->check_scc_error(host); |
914 | 914 | ||
915 | /* If SET_BLOCK_COUNT, continue with main command */ | 915 | /* If SET_BLOCK_COUNT, continue with main command */ |
916 | if (host->mrq) { | 916 | if (host->mrq && !mrq->cmd->error) { |
917 | tmio_process_mrq(host, mrq); | 917 | tmio_process_mrq(host, mrq); |
918 | return; | 918 | return; |
919 | } | 919 | } |