Message ID | 1456958018-7849-3-git-send-email-wsa@the-dreams.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Hello. On 3/3/2016 1:33 AM, Wolfram Sang wrote: > From: Wolfram Sang <wsa+renesas@sang-engineering.com> > > The clk API may return 0 on clk_get_rate, so we should check the result before > using it as a divisor. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> MBR, Sergei
On Wed, Mar 02, 2016 at 11:33:33PM +0100, Wolfram Sang wrote: > From: Wolfram Sang <wsa+renesas@sang-engineering.com> > > The clk API may return 0 on clk_get_rate, so we should check the result before > using it as a divisor. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Ping. > --- > > Should go individually via subsystem tree. > > drivers/net/ethernet/renesas/ravb_main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index 88656ceb6e2946..ce1954a6a12726 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -1691,6 +1691,9 @@ static int ravb_set_gti(struct net_device *ndev) > rate = clk_get_rate(clk); > clk_put(clk); > > + if (!rate) > + return -EINVAL; > + > inc = 1000000000ULL << 20; > do_div(inc, rate); > > -- > 2.7.0 > >
On 04/04/2016 12:36 AM, Wolfram Sang wrote: >> From: Wolfram Sang <wsa+renesas@sang-engineering.com> >> >> The clk API may return 0 on clk_get_rate, so we should check the result before >> using it as a divisor. >> >> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > > Ping. http://patchwork.ozlabs.org/patch/591160/ I have no idea why it's marked this way... Dave? MBR, Sergei
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 88656ceb6e2946..ce1954a6a12726 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1691,6 +1691,9 @@ static int ravb_set_gti(struct net_device *ndev) rate = clk_get_rate(clk); clk_put(clk); + if (!rate) + return -EINVAL; + inc = 1000000000ULL << 20; do_div(inc, rate);