Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: core: cd_label must be last entry of mmc_gpio struct

commit bfd694d5e21c ("mmc: core: Add tunable delay
before detecting card after card is inserted") adds
"u32 cd_debounce_delay_ms" to the last of mmc_gpio
struct and cause "char cd_label[0]" NOT work as string
pointer of card detect label, when "cat /proc/interrupts",
the devname for card detect gpio is incorrect as below:

144: 0 gpio-mxc 22 Edge ▒
161: 0 gpio-mxc 7 Edge ▒

Move the cd_label field down to fix this, and drop the
zero from the array size to prevent future similar bugs,
the result is correct as below:

144: 0 gpio-mxc 22 Edge 2198000.mmc cd
161: 0 gpio-mxc 7 Edge 2190000.mmc cd

Fixes: bfd694d5e21c ("mmc: core: Add tunable delay before detecting card after card is inserted")
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Anson Huang and committed by
Ulf Hansson
60feca8f 25a98edd

+1 -1
+1 -1
drivers/mmc/core/slot-gpio.c
··· 27 27 bool override_cd_active_level; 28 28 irqreturn_t (*cd_gpio_isr)(int irq, void *dev_id); 29 29 char *ro_label; 30 - char cd_label[0]; 31 30 u32 cd_debounce_delay_ms; 31 + char cd_label[]; 32 32 }; 33 33 34 34 static irqreturn_t mmc_gpio_cd_irqt(int irq, void *dev_id)