linux/drivers
Ulf Hansson a0a1e633bc UPSTREAM: mmc: block: Use the mmc host device index as the mmcblk device index
Commit 520bd7a8b4 ("mmc: core: Optimize boot time by detecting cards
simultaneously") causes regressions for some platforms.

These platforms relies on fixed mmcblk device indexes, instead of
deploying the defacto standard with UUID/PARTUUID. In other words their
rootfs needs to be available at hardcoded paths, like /dev/mmcblk0p2.

Such guarantees have never been made by the kernel, but clearly the above
commit changes the behaviour. More precisely, because of that the order
changes of how cards becomes detected, so do their corresponding mmcblk
device indexes.

As the above commit significantly improves boot time for some platforms
(magnitude of seconds), let's avoid reverting this change but instead
restore the behaviour of how mmcblk device indexes becomes picked.

By using the same index for the mmcblk device as for the corresponding mmc
host device, the probe order of mmc host devices decides the index we get
for the mmcblk device.

For those platforms that suffers from a regression, one could expect that
this updated behaviour should be sufficient to meet their expectations of
"fixed" mmcblk device indexes.

Another side effect from this change, is that the same index is used for
the mmc host device, the mmcblk device and the mmc block queue. That
should clarify their relationship.

Reported-by: Peter Hurley <peter@hurleysoftware.com>
Reported-by: Laszlo Fiat <laszlo.fiat@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Fixes: 520bd7a8b4 ("mmc: core: Optimize boot time by detecting cards
simultaneously")
Cc: <stable@vger.kernel.org>

Change-Id: I8fe12a3858f3e2ace8fcc785befbae588108e2db
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
(cherry picked from commit 9aaf3437aa)
2016-10-10 21:30:31 +08:00
..
accessibility
acpi ACPI / osi: Fix an issue that acpi_osi=!* cannot disable ACPICA internal strings 2016-06-01 12:15:50 -07:00
adc
amba rk: revert to v3.10 2015-11-11 15:57:28 +08:00
android Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-03-14 15:32:21 +08:00
ata scsi: fix race between simultaneous decrements of ->host_failed 2016-07-27 09:47:39 -07:00
atm rk: revert to v3.10 2015-11-11 15:57:28 +08:00
auxdisplay rk: revert to v3.10 2015-11-11 15:57:28 +08:00
base UPSTREAM: regmap: fix deadlock on _regmap_raw_write() error path 2016-09-23 10:05:03 +08:00
bcma
block nbd: ratelimit error msgs after socket close 2016-05-11 11:21:10 +02:00
bluetooth UPSTREAM: Bluetooth: hci_ldisc: Fix null pointer derefence in case of early data 2016-10-07 11:35:58 +08:00
bus bus: imx-weim: Take the 'status' property value into account 2016-05-04 14:48:54 -07:00
cdrom rk: revert to v3.10 2015-11-11 15:57:28 +08:00
char Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-07-29 21:38:37 +01:00
cir
clk clk: rk3399: add 2016M for clk_cpub 2016-10-10 20:19:59 +08:00
clocksource UPSTREAM: clocksource/drivers/rockchip: Add support for the rk3399 SoC 2016-06-22 19:55:45 +08:00
cmmb
connector connector: bump skb->users before callback invocation 2016-01-04 21:46:45 -05:00
cpufreq cpufreq: interactive: add touch boost and init some param on rockchip platform 2016-09-05 14:58:41 +08:00
cpuidle LSK 16.06 v4.4-android 2016-07-05 18:36:47 +08:00
crypto crypto: qat - make qat_asym_algs.o depend on asn1 headers 2016-07-27 09:47:40 -07:00
dca
devfreq PM / devfreq: add to show current load of device 2016-08-29 14:58:21 +08:00
dio
dma UPSTREAM: dmaengine: core: Skip mask matching when it is not provided to private_candidate 2016-07-05 14:29:36 +08:00
dma-buf CHROMIUM: android: fix warning when releasing active sync point 2016-02-16 13:53:25 -08:00
edac EDAC, sb_edac: Fix rank lookup on Broadwell 2016-07-27 09:47:27 -07:00
eisa rk: revert to v3.10 2015-11-11 15:57:28 +08:00
extcon extcon: Add EXTCON_USB_VBUS_EN for USB Type-C 2016-10-07 15:42:26 +08:00
firewire IEEE 1394 subsystem patch: 2015-11-11 10:21:34 -08:00
firmware UPSTREAM: ARM: 8481/2: drivers: psci: replace psci firmware calls 2016-08-10 18:25:36 +08:00
fmc
fpga fpga manager: Fix firmware resource leak on error 2015-11-24 15:25:46 -08:00
gpio LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
gpu MALI: midgard: RK: not to power off all the pm cores 2016-09-29 16:38:10 +08:00
headset_observe
hid hid: rkvr: add remove sync process, add sync ioctl to sync with nanoc before trasmitting 2016-09-14 09:03:52 +08:00
hsi hsi: controllers:remove redundant code 2015-10-30 16:10:40 +01:00
hv Drivers: hv: vmbus: Fix a Host signaling bug 2016-03-03 15:07:16 -08:00
hwmon LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
hwspinlock drivers/hwspinlock: fix race between radix tree insertion and lookup 2016-02-25 12:01:23 -08:00
hwtracing coresight: etm-perf: incorporating sink definition from the cmd line 2016-06-20 11:16:03 -06:00
i2c i2c: rk3x: Fix variable 'min_total_ns' unused warning 2016-09-23 09:43:04 +08:00
ide mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
idle intel_idle: prevent SKL-H boot failure when C8+C9+C10 enabled 2016-04-12 09:09:05 -07:00
iio LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
infiniband IB/mlx4: Properly initialize GRH TClass and FlowLabel in AHs 2016-07-27 09:47:27 -07:00
input input: sensors: hall: do not enable hall default 2016-09-26 16:03:13 +08:00
iommu LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
ipack
irqchip LSK 16.06 v4.4-android 2016-07-05 18:36:47 +08:00
isdn ser_gigaset: remove unnecessary kfree() calls from release method 2015-12-15 13:24:21 -05:00
leds Merge branch 'torvalds/master' 2015-11-11 19:52:00 +08:00
lguest rk: revert to v3.10 2015-11-11 15:57:28 +08:00
lightnvm lightnvm: wrong offset in bad blk lun calculation 2015-12-29 08:28:32 -07:00
macintosh rk: revert to v3.10 2015-11-11 15:57:28 +08:00
mailbox Merge branch 'torvalds/master' 2015-11-11 19:52:00 +08:00
mcb mcb: Fixed bar number assignment for the gdd 2016-06-01 12:15:53 -07:00
md ANDROID: dm verity fec: initialize recursion level 2016-07-11 12:41:28 +05:30
media camera: rockchip: camsys driver 0.0x21.5 2016-08-29 11:36:54 +08:00
memory memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing 2016-07-27 09:47:35 -07:00
memstick rk: revert to v3.10 2015-11-11 15:57:28 +08:00
message SCSI queue for 4.4. 2015-11-12 07:06:18 -05:00
mfd mfd: fusb302: add usb super speed property support. 2016-10-10 20:16:45 +08:00
misc misc: rk_scr: change config placement 2016-09-10 11:59:26 +08:00
mmc UPSTREAM: mmc: block: Use the mmc host device index as the mmcblk device index 2016-10-10 21:30:31 +08:00
mtd LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
mtk_wcn_bt
mtk_wcn_combo
net net: rkwifi: add 'disable_proptx = 1' for AP6354 2016-09-07 13:59:17 +08:00
nfc Linux 4.4-rc1 2015-11-18 14:36:06 +08:00
ntb rk: revert to v3.10 2015-11-11 15:57:28 +08:00
nubus
nvdimm libnvdimm, pfn: fix uuid validation 2016-04-20 15:41:54 +09:00
nvme NVMe: IO ending fixes on surprise removal 2015-12-22 10:12:04 -07:00
nvmem UPSTREAM: nvmem: rockchip-efuse: add rk3399-efuse support 2016-09-09 16:24:57 +08:00
of Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2016-07-29 21:38:37 +01:00
oprofile
parisc parisc iommu: fix panic due to trying to allocate too large region 2015-12-12 16:07:25 +01:00
parport rk: revert to v3.10 2015-11-11 15:57:28 +08:00
pci PCI: rockchip: fix wrong clr for phy interrupt 2016-08-31 14:02:04 +08:00
pcmcia pcmcia: db1xxx_ss: fix last irq_to_gpio user 2016-04-20 15:42:09 +09:00
perf FROMLIST: drivers/perf: arm-pmu: Handle per-interrupt affinity mask 2016-07-27 20:54:48 +08:00
phy usb: phy-rockchip-inno-usb2: fix wrong charging state when otg host connect 2016-10-09 18:27:16 +08:00
pinctrl pinctrl: rockchip: better show irq chip name 2016-09-22 18:09:49 +08:00
platform LSK 16.06 v4.4-android 2016-07-05 18:36:47 +08:00
pnp rk: revert to v3.10 2015-11-11 15:57:28 +08:00
power power: rk818: use EXTCON_USB_VBUS_EN to notify rk818 enable otg 2016-10-09 18:21:15 +08:00
powercap powercap / RAPL: fix BIOS lock check 2015-12-12 02:31:11 +01:00
pps
ps3
ptp
pwm pwm: rockchip: add rk_fb config_done for voppwm 2016-08-31 13:57:58 +08:00
rapidio rk: revert to v3.10 2015-11-11 15:57:28 +08:00
ras
regulator regulator: mp8865: add set_voltage_time_sel func 2016-10-10 20:19:43 +08:00
remoteproc remoteproc: fix memory leak of remoteproc ida cache layers 2015-11-26 17:44:28 +02:00
reset Merge branch 'torvalds/master' 2015-11-11 19:52:00 +08:00
rk_nand drivers: rk_nand: move inline function from asm code to c code 2016-09-12 20:25:52 +08:00
rpmsg
rtc Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2016-05-13 12:20:56 +08:00
s390 s390/dasd: fix diag 0x250 inline assembly 2016-03-16 08:42:58 -07:00
sbus rk: revert to v3.10 2015-11-11 15:57:28 +08:00
scsi 53c700: fix BUG on untagged commands 2016-07-27 09:47:39 -07:00
sfi
sh drivers: sh: Restore legacy clock domain on SuperH platforms 2016-03-09 15:34:49 -08:00
smc
sn
soc rk_fiq_debugger: Reset and set uart to loopback mode before init 2016-09-26 18:33:23 +08:00
spi spi: rockchip: set pinctrl state when suspend and resume 2016-08-26 10:46:22 +08:00
spmi char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
ssb
staging drivers: iio: imu: fix initial screen offset when switch app 2016-09-26 18:35:39 +08:00
switch Revert "Revert "drivers: switch: remove S_IWUSR from dev_attr"" 2016-07-05 19:00:15 +08:00
target target: Fix target_release_cmd_kref shutdown comp leak 2016-04-12 09:09:02 -07:00
tc
testcode
thermal thermal: rockchip: add temperature dump when panic 2016-08-26 17:26:48 +08:00
thunderbolt thunderbolt: Fix double free of drom buffer 2016-06-01 12:15:53 -07:00
tty LSK 16.07 v4.4-android 2016-08-10 15:15:47 +08:00
uio rk: revert to v3.10 2015-11-11 15:57:28 +08:00
usb usb: dwc3: gadget: fix trb ring full bug 2016-10-07 16:40:12 +08:00
uwb driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
vfio vfio: fix ioctl error handling 2016-03-09 15:34:50 -08:00
vhost vhost: replace % with & on data path 2015-12-07 17:28:10 +02:00
video video: rockchip: rk fb: add hot plug state indicate extent screen state 2016-10-09 18:47:36 +08:00
virt
virtio virtio_balloon: fix PFN format for virtio-1 2016-07-27 09:47:34 -07:00
vlynq
vme rk: revert to v3.10 2015-11-11 15:57:28 +08:00
w1 w1: ds2482: Manage SLPZ pin sleep state 2016-02-16 13:54:18 -08:00
watchdog Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git 2016-05-13 12:20:56 +08:00
xen xen/acpi: allow xen-acpi-processor driver to load on Xen 4.7 2016-07-27 09:47:39 -07:00
zorro
Kconfig rk_headset: re-enable driver/headset_observe/ 2016-09-27 18:14:36 +08:00
Makefile rk_headset: re-enable driver/headset_observe/ 2016-09-27 18:14:36 +08:00