summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/usb-tusb6010.c
diff options
context:
space:
mode:
authorRoel Kluin <roel.kluin@gmail.com>2009-04-23 20:10:49 +0200
committerTony Lindgren <tony@atomide.com>2009-04-23 20:10:49 +0200
commitd94a2eddf50c4aa1553acf3025f45d03704a1f97 (patch)
tree38986f5959a6e30105cf2bd95186d69397b0e8a1 /arch/arm/mach-omap2/usb-tusb6010.c
parentARM: OMAP2: Remove defines and resource init for OMAP24XX EAC (diff)
downloadlinux-d94a2eddf50c4aa1553acf3025f45d03704a1f97.tar.xz
linux-d94a2eddf50c4aa1553acf3025f45d03704a1f97.zip
ARM: OMAP2: possible division by 0
In linus' git tree the functions can be found at: vi arch/arm/mach-omap2/usb-tusb6010.c +200 - tusb6010_platform_retime() vi arch/arm/mach-omap2/gpmc.c +94 - gpmc_get_fclk_period() vi arch/arm/mach-omap2/usb-tusb6010.c +53 - tusb_set_async_mode() vi arch/arm/mach-omap2/usb-tusb6010.c +111 - tusb_set_sync_mode() is -ENODEV appropriate when sysclk_ps == 0? This was found by code analysis, please review. ------------------------------>8-------------8<--------------------------------- gpmc_get_fclk_period() may return 0 when gpmc_l3_clk is not enabled. This is not checked in tusb6010_platform_retime() nor in tusb_set_async_mode() it seems. In tusb_set_sync_mode() this may result in a division by zero. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/usb-tusb6010.c')
-rw-r--r--arch/arm/mach-omap2/usb-tusb6010.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c
index 15e509013def..8df55f40f4c0 100644
--- a/arch/arm/mach-omap2/usb-tusb6010.c
+++ b/arch/arm/mach-omap2/usb-tusb6010.c
@@ -187,7 +187,7 @@ int tusb6010_platform_retime(unsigned is_refclk)
unsigned sysclk_ps;
int status;
- if (!refclk_psec)
+ if (!refclk_psec || sysclk_ps == 0)
return -ENODEV;
sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60;