mmc: block: fix packed command header endianness
authorTaras Kondratiuk <takondra@cisco.com>
Wed, 13 Jul 2016 22:05:38 +0000 (22:05 +0000)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:13:49 +0000 (13:13 +0000)
commit20e66be86b73c86e3190ab27fbba179663437a8e
tree8ced861a659a0e34362aaa6dd57f36e2eb684f6f
parent27a604eb9d1bda51f4f47f49c1a91c719d8d54af
mmc: block: fix packed command header endianness

commit f68381a70bb2b26c31b13fdaf67c778f92fd32b4 upstream.

The code that fills packed command header assumes that CPU runs in
little-endian mode. Hence the header is malformed in big-endian mode
and causes MMC data transfer errors:

[  563.200828] mmcblk0: error -110 transferring data, sector 2048, nr 8, cmd response 0x900, card status 0xc40
[  563.219647] mmcblk0: packed cmd failed, nr 2, sectors 16, failure index: -1

Convert header data to LE.

Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
Fixes: ce39f9d17c14 ("mmc: support packed write command for eMMC4.5 devices")
Cc: <stable@vger.kernel.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/mmc/card/block.c