aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/dw_mmc.h
diff options
context:
space:
mode:
authorSeung-Woo Kim <sw0312.kim@samsung.com>2016-06-20 00:09:45 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2016-07-25 04:34:28 -0400
commit65257a0deed5aee66b4e3708944f0be62a64cabc (patch)
tree8e3094068e4775b24f1dd1b7b97b9e68c43f7f78 /drivers/mmc/host/dw_mmc.h
parent46d179525a1f6d16957dcb4624517bc04142b3e7 (diff)
mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus()
This patch removes following UBSAN warnings in dw_mci_setup_bus(). UBSAN: Undefined behaviour in drivers/mmc/host/dw_mmc.c:1102:14 shift exponent 250 is too large for 32-bit type 'unsigned int' Call trace: [<ffffff90080908a8>] dump_backtrace+0x0/0x380 [<ffffff9008090c3c>] show_stack+0x14/0x20 [<ffffff90087457b8>] dump_stack+0xe0/0x120 [<ffffff90087b1360>] ubsan_epilogue+0x18/0x68 [<ffffff90087b1a94>] __ubsan_handle_shift_out_of_bounds+0x18c/0x1bc [<ffffff9008d89cb8>] dw_mci_setup_bus+0x3a0/0x438 [...] UBSAN: Undefined behaviour in drivers/mmc/host/dw_mmc.c:1132:27 shift exponent 250 is too large for 32-bit type 'unsigned int' Call trace: [<ffffff90080908a8>] dump_backtrace+0x0/0x380 [<ffffff9008090c3c>] show_stack+0x14/0x20 [<ffffff90087457b8>] dump_stack+0xe0/0x120 [<ffffff90087b1360>] ubsan_epilogue+0x18/0x68 [<ffffff90087b1a94>] __ubsan_handle_shift_out_of_bounds+0x18c/0x1bc [<ffffff9008d89c9c>] dw_mci_setup_bus+0x384/0x438 [...] The warnings are caused because of bit shift which is used to filter spamming message for CONFIG_MMC_CLKGATE, but the config is already removed. So this patch just removes the shift. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/dw_mmc.h')
-rw-r--r--drivers/mmc/host/dw_mmc.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 1e8d8380f9cf..59610375202d 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -245,9 +245,6 @@ extern int dw_mci_resume(struct dw_mci *host);
245 * @queue_node: List node for placing this node in the @queue list of 245 * @queue_node: List node for placing this node in the @queue list of
246 * &struct dw_mci. 246 * &struct dw_mci.
247 * @clock: Clock rate configured by set_ios(). Protected by host->lock. 247 * @clock: Clock rate configured by set_ios(). Protected by host->lock.
248 * @__clk_old: The last updated clock with reflecting clock divider.
249 * Keeping track of this helps us to avoid spamming the console
250 * with CONFIG_MMC_CLKGATE.
251 * @flags: Random state bits associated with the slot. 248 * @flags: Random state bits associated with the slot.
252 * @id: Number of this slot. 249 * @id: Number of this slot.
253 * @sdio_id: Number of this slot in the SDIO interrupt registers. 250 * @sdio_id: Number of this slot in the SDIO interrupt registers.
@@ -262,7 +259,6 @@ struct dw_mci_slot {
262 struct list_head queue_node; 259 struct list_head queue_node;
263 260
264 unsigned int clock; 261 unsigned int clock;
265 unsigned int __clk_old;
266 262
267 unsigned long flags; 263 unsigned long flags;
268#define DW_MMC_CARD_PRESENT 0 264#define DW_MMC_CARD_PRESENT 0