diff options
author | Seung-Woo Kim <sw0312.kim@samsung.com> | 2016-06-20 00:09:45 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2016-07-25 04:34:28 -0400 |
commit | 65257a0deed5aee66b4e3708944f0be62a64cabc (patch) | |
tree | 8e3094068e4775b24f1dd1b7b97b9e68c43f7f78 /drivers/mmc/host/dw_mmc.h | |
parent | 46d179525a1f6d16957dcb4624517bc04142b3e7 (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.h | 4 |
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 |