diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2009-04-23 11:10:49 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-04-23 11:10:49 -0700 |
commit | d94a2eddf50c4aa1553acf3025f45d03704a1f97 (patch) | |
tree | 38986f5959a6e30105cf2bd95186d69397b0e8a1 /arch/arm/mach-omap2/usb-tusb6010.c | |
parent | 6b7bff3169192e2870f68f47fde25a22e136918e (diff) | |
download | op-kernel-dev-d94a2eddf50c4aa1553acf3025f45d03704a1f97.zip op-kernel-dev-d94a2eddf50c4aa1553acf3025f45d03704a1f97.tar.gz |
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.c | 2 |
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 15e5090..8df55f4 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; |