<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/mmc, branch v4.13-rc6</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.13-rc6</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.13-rc6'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2017-08-09T11:19:44+00:00</updated>
<entry>
<title>mmc: block: fix lockdep splat when removing mmc_block module</title>
<updated>2017-08-09T11:19:44+00:00</updated>
<author>
<name>Michał Mirosław</name>
<email>mirq-linux@rere.qmqm.pl</email>
</author>
<published>2017-08-08T23:48:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3f8b23a09a87aa65df3e13129cb2d9cffcb394db'/>
<id>urn:sha1:3f8b23a09a87aa65df3e13129cb2d9cffcb394db</id>
<content type='text'>
Fix lockdep splat introduced in v4.13-rc4.

[  266.297226] ------------[ cut here ]------------
[  266.300078] WARNING: CPU: 2 PID: 176 at /mnt/src/jaja/git/tf300t/include/linux/blkdev.h:657 mmc_blk_remove_req+0xd0/0xe8 [mmc_block]
[  266.302937] Modules linked in: mmc_block(-) sdhci_tegra sdhci_pltfm sdhci pwrseq_simple pwrseq_emmc mmc_core
[  266.305941] CPU: 2 PID: 176 Comm: rmmod Tainted: G        W       4.13.0-rc4mq-00208-gb691e67724b8-dirty #694
[  266.308852] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[  266.311719] [&lt;b011144c&gt;] (unwind_backtrace) from [&lt;b010ca54&gt;] (show_stack+0x18/0x1c)
[  266.314664] [&lt;b010ca54&gt;] (show_stack) from [&lt;b062e3f4&gt;] (dump_stack+0x84/0x98)
[  266.317644] [&lt;b062e3f4&gt;] (dump_stack) from [&lt;b01214f4&gt;] (__warn+0xf4/0x10c)
[  266.320542] [&lt;b01214f4&gt;] (__warn) from [&lt;b01215d4&gt;] (warn_slowpath_null+0x28/0x30)
[  266.323534] [&lt;b01215d4&gt;] (warn_slowpath_null) from [&lt;af067858&gt;] (mmc_blk_remove_req+0xd0/0xe8 [mmc_block])
[  266.326568] [&lt;af067858&gt;] (mmc_blk_remove_req [mmc_block]) from [&lt;af068f40&gt;] (mmc_blk_remove_parts.constprop.6+0x50/0x64 [mmc_block])
[  266.329678] [&lt;af068f40&gt;] (mmc_blk_remove_parts.constprop.6 [mmc_block]) from [&lt;af0693b8&gt;] (mmc_blk_remove+0x24/0x140 [mmc_block])
[  266.332894] [&lt;af0693b8&gt;] (mmc_blk_remove [mmc_block]) from [&lt;af0052ec&gt;] (mmc_bus_remove+0x20/0x28 [mmc_core])
[  266.336198] [&lt;af0052ec&gt;] (mmc_bus_remove [mmc_core]) from [&lt;b046aa64&gt;] (device_release_driver_internal+0x164/0x200)
[  266.339367] [&lt;b046aa64&gt;] (device_release_driver_internal) from [&lt;b046ab54&gt;] (driver_detach+0x40/0x74)
[  266.342537] [&lt;b046ab54&gt;] (driver_detach) from [&lt;b046982c&gt;] (bus_remove_driver+0x68/0xdc)
[  266.345660] [&lt;b046982c&gt;] (bus_remove_driver) from [&lt;af06ad40&gt;] (mmc_blk_exit+0xc/0x2cc [mmc_block])
[  266.348875] [&lt;af06ad40&gt;] (mmc_blk_exit [mmc_block]) from [&lt;b01aee30&gt;] (SyS_delete_module+0x1c4/0x254)
[  266.352068] [&lt;b01aee30&gt;] (SyS_delete_module) from [&lt;b0108480&gt;] (ret_fast_syscall+0x0/0x34)
[  266.355308] ---[ end trace f68728a0d3053b72 ]---

Fixes: 7c84b8b43d3d ("mmc: block: bypass the queue even if usage is present for hotplug")
Signed-off-by: Michał Mirosław &lt;mirq-linux@rere.qmqm.pl&gt;
Reviewed-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: mmc: correct the logic for setting HS400ES signal voltage</title>
<updated>2017-08-08T16:55:43+00:00</updated>
<author>
<name>Haibo Chen</name>
<email>haibo.chen@nxp.com</email>
</author>
<published>2017-08-08T10:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=92ddd95919466de5d34f3cb43635da9a7f9ab814'/>
<id>urn:sha1:92ddd95919466de5d34f3cb43635da9a7f9ab814</id>
<content type='text'>
Change the default err value to -EINVAL, make sure the card only
has type EXT_CSD_CARD_TYPE_HS400_1_8V also do the signal voltage
setting when select hs400es mode.

Fixes: commit 1720d3545b77 ("mmc: core: switch to 1V8 or 1V2 for hs400es mode")
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Haibo Chen &lt;haibo.chen@nxp.com&gt;
Reviewed-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: host: omap_hsmmc: Add CMD23 capability to omap_hsmmc driver</title>
<updated>2017-08-08T08:11:07+00:00</updated>
<author>
<name>Kishon Vijay Abraham I</name>
<email>kishon@ti.com</email>
</author>
<published>2017-08-08T05:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ac2b21157a3104ad2daa21c65e6cc73604edba0b'/>
<id>urn:sha1:ac2b21157a3104ad2daa21c65e6cc73604edba0b</id>
<content type='text'>
omap_hsmmc driver always relied on CMD12 to stop transmission.
However if CMD12 is not issued at the correct timing, the card will
indicate a out of range error. With certain cards in some of the
DRA7 based boards, -EIO error is observed. By Adding CMD23 capability,
the MMC core will send MMC_SET_BLOCK_COUNT command before
MMC_READ_MULTIPLE_BLOCK/MMC_WRITE_MULTIPLE_BLOCK commands.

commit a04e6bae9e6f12 ("mmc: core: check also R1 response for
stop commands") exposed this bug in omap_hsmmc driver.

Signed-off-by: Kishon Vijay Abraham I &lt;kishon@ti.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: block: bypass the queue even if usage is present for hotplug</title>
<updated>2017-08-03T09:00:39+00:00</updated>
<author>
<name>Shawn Lin</name>
<email>shawn.lin@rock-chips.com</email>
</author>
<published>2017-07-25T01:11:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7c84b8b43d3d550fa6f0b57277d03f2e1bafb357'/>
<id>urn:sha1:7c84b8b43d3d550fa6f0b57277d03f2e1bafb357</id>
<content type='text'>
The commit 304419d8a7e9 ("mmc: core: Allocate per-request data using the
block layer core") refactored mechanism of queue handling caused
mmc_init_request() can be called just after mmc_cleanup_queue() caused null
pointer dereference.

Another commit bbdc74dc19e0 ("mmc: block: Prevent new req entering queue
after its cleanup") tried to fix the problem. However it actually miss one
corner case.

We could still reproduce the issue mentioned with these steps:
(1) insert a SD card and mount it
(2) hotplug it, so it will leave md-&gt;usage still be counted
(3) reboot the system which will sync data and umount the card

[Unable to handle kernel NULL pointer dereference at virtual address
00000000
[user pgtable: 4k pages, 48-bit VAs, pgd = ffff80007bab3000
[[0000000000000000] *pgd=000000007a828003, *pud=0000000078dce003,
*pmd=000000007aab6003, *pte=0000000000000000
[Internal error: Oops: 96000007 [#1] PREEMPT SMP
[Modules linked in:
[CPU: 3 PID: 3507 Comm: umount Tainted: G        W
4.13.0-rc1-next-20170720-00012-g9d9bf45 #33
[Hardware name: Firefly-RK3399 Board (DT)
[task: ffff80007a1de200 task.stack: ffff80007a01c000
[PC is at mmc_init_request+0x14/0xc4
[LR is at alloc_request_size+0x4c/0x74
[pc : [&lt;ffff0000087d7150&gt;] lr : [&lt;ffff000008378fe0&gt;] pstate: 600001c5
[sp : ffff80007a01f8f0

....

[[&lt;ffff0000087d7150&gt;] mmc_init_request+0x14/0xc4
[[&lt;ffff000008378fe0&gt;] alloc_request_size+0x4c/0x74
[[&lt;ffff00000817ac28&gt;] mempool_create_node+0xb8/0x17c
[[&lt;ffff00000837aadc&gt;] blk_init_rl+0x9c/0x120
[[&lt;ffff000008396580&gt;] blkg_alloc+0x110/0x234
[[&lt;ffff000008396ac8&gt;] blkg_create+0x424/0x468
[[&lt;ffff00000839877c&gt;] blkg_lookup_create+0xd8/0x14c
[[&lt;ffff0000083796bc&gt;] generic_make_request_checks+0x368/0x3b0
[[&lt;ffff00000837b050&gt;] generic_make_request+0x1c/0x240

So mmc_blk_put wouldn't calling blk_cleanup_queue which actually the
QUEUE_FLAG_DYING and QUEUE_FLAG_BYPASS should stay. Block core expect
blk_queue_bypass_{start, end} internally to bypass/drain the queue before
actually dying the queue, so it didn't expose API to set the queue bypass.
I think we should set QUEUE_FLAG_BYPASS whenever queue is removed, although
the md-&gt;usage is still counted, as no dispatch queue could be found then.

Fixes: 304419d8a7e9 ("mmc: core: Allocate per-request data using the block layer core")
Signed-off-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: sdhci-of-at91: force card detect value for non removable devices</title>
<updated>2017-08-03T08:50:55+00:00</updated>
<author>
<name>Ludovic Desroches</name>
<email>ludovic.desroches@microchip.com</email>
</author>
<published>2017-07-26T14:02:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7a1e3f143176e8ebdb2f5a9b3b47abc18b879d90'/>
<id>urn:sha1:7a1e3f143176e8ebdb2f5a9b3b47abc18b879d90</id>
<content type='text'>
When the device is non removable, the card detect signal is often used
for another purpose i.e. muxed to another SoC peripheral or used as a
GPIO. It could lead to wrong behaviors depending the default value of
this signal if not muxed to the SDHCI controller.

Fixes: bb5f8ea4d514 ("mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC")
Signed-off-by: Ludovic Desroches &lt;ludovic.desroches@microchip.com&gt;
Acked-by: Adrian Hunter &lt;adrian.hunter@intel.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: dw_mmc: fix the wrong condition check of getting num-slots from DT</title>
<updated>2017-07-27T13:57:30+00:00</updated>
<author>
<name>Shawn Lin</name>
<email>shawn.lin@rock-chips.com</email>
</author>
<published>2017-07-21T08:39:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=16f5df8b5d71ef2eaeac067806de7ebd6df3f2d0'/>
<id>urn:sha1:16f5df8b5d71ef2eaeac067806de7ebd6df3f2d0</id>
<content type='text'>
Change to print the information about when the deprecated "num-slots" DT
binding is being used, as to avoid confusion when browsing the log:

dwmmc_rockchip fe320000.dwmmc: 'num-slots' was deprecated.

Signed-off-by: Shawn Lin &lt;shawn.lin@rock-chips.com&gt;
Fixes: d30a8f7bdf64 ("mmc: dw_mmc: deprecated the "num-slots" property")
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: host: omap_hsmmc: remove unused platform callbacks</title>
<updated>2017-07-17T13:05:52+00:00</updated>
<author>
<name>Faiz Abbas</name>
<email>faiz_abbas@ti.com</email>
</author>
<published>2017-07-14T12:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=36acbd9e8377c27570b887e2332a5e1f0b140e16'/>
<id>urn:sha1:36acbd9e8377c27570b887e2332a5e1f0b140e16</id>
<content type='text'>
Remove unused callbacks in the omap_hsmmc_platform_data structure

Signed-off-by: Faiz Abbas &lt;faiz_abbas@ti.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>mmc: sunxi: Keep default timing phase settings for new timing mode</title>
<updated>2017-07-17T10:29:53+00:00</updated>
<author>
<name>Chen-Yu Tsai</name>
<email>wens@csie.org</email>
</author>
<published>2017-07-14T06:42:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=26cb2be4c7c42644ccd147c786edb9006300ee56'/>
<id>urn:sha1:26cb2be4c7c42644ccd147c786edb9006300ee56</id>
<content type='text'>
The register for the "new timing mode" also has bit fields for setting
output and sample timing phases. According to comments in Allwinner's
BSP kernel, the default values are good enough.

Keep the default values already in the hardware when setting new timing
mode, instead of overwriting the whole register.

Fixes: 9a37e53e451e ("mmc: sunxi: Enable the new timings for the A64 MMC
controllers")
Signed-off-by: Chen-Yu Tsai &lt;wens@csie.org&gt;
Acked-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'mmc-v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc</title>
<updated>2017-07-14T20:10:06+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2017-07-14T20:10:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=907afe5923b4f89b3c377e8ce3b495124321659c'/>
<id>urn:sha1:907afe5923b4f89b3c377e8ce3b495124321659c</id>
<content type='text'>
Pull MMC fixes from Ulf Hansson:
 "Here are a couple of mmc fixes intended for v4.13 rc1.

  MMC core:
   - Restore some behaviour of MMC_IOC_MULTI_CMD commands
   - Fix using un-initialized variable in mmc_blk_issue_drv_op()
   - Fix mmc block queue cleanup

  MMC host:
   - sdhci-acpi: Workaround conflict with PCI wifi on GPD Win handheld
   - tmio-mmc: Fix bad pointer math"

* tag 'mmc-v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
  mmc: tmio-mmc: fix bad pointer math
  mmc: block: Prevent new req entering queue after its cleanup
  mmc: block: Let MMC_IOC_MULTI_CMD return zero again for zero entries
  mmc: block: Initialize ret in mmc_blk_issue_drv_op() for MMC_DRV_OP_IOCTL
  mmc: sdhci-acpi: Workaround conflict with PCI wifi on GPD Win handheld
</content>
</entry>
<entry>
<title>mmc: tmio-mmc: fix bad pointer math</title>
<updated>2017-07-13T09:56:35+00:00</updated>
<author>
<name>Chris Brandt</name>
<email>chris.brandt@renesas.com</email>
</author>
<published>2017-07-12T15:40:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9c284c41c0886f09e75c323a16278b6d353b0b4a'/>
<id>urn:sha1:9c284c41c0886f09e75c323a16278b6d353b0b4a</id>
<content type='text'>
The existing code gives an incorrect pointer value.
The buffer pointer 'buf' was of type unsigned short *, and 'count' was a
number in bytes. A cast of buf should have been used.

However, instead of casting, just change the code to use u32 pointers.

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Fixes: 8185e51f358a: ("mmc: tmio-mmc: add support for 32bit data port")
Signed-off-by: Chris Brandt &lt;chris.brandt@renesas.com&gt;
Reviewed-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Acked-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
</feed>
