Messages in this thread | | | Date | Thu, 5 Nov 2020 20:25:53 +0100 | From | Pavel Machek <> | Subject | Re: [PATCH 4.19 178/191] rtc: rx8010: dont modify the global rtc ops |
| |
Hi!
> commit d3b14296da69adb7825022f3224ac6137eb30abf upstream. > > The way the driver is implemented is buggy for the (admittedly unlikely) > use case where there are two RTCs with one having an interrupt configured > and the second not. This is caused by the fact that we use a global > rtc_class_ops struct which we modify depending on whether the irq number > is present or not.
While this fixes very unlikely configuration with two RTCs...
> Fix it by using two const ops structs with and without alarm operations. > While at it: not being able to request a configured interrupt is an error > so don't ignore it and bail out of probe().
...it contains unrelated changes and in particular will break operation when IRQ can not be requested.
I don't believe we need it in -stable.
Best regards, Pavel
> @@ -468,16 +478,16 @@ static int rx8010_probe(struct i2c_clien > > if (err) { > dev_err(&client->dev, "unable to request IRQ\n"); > - client->irq = 0; > - } else { > - rx8010_rtc_ops.read_alarm = rx8010_read_alarm; > - rx8010_rtc_ops.set_alarm = rx8010_set_alarm; > - rx8010_rtc_ops.alarm_irq_enable = rx8010_alarm_irq_enable; > + return err; > }
-- http://www.livejournal.com/~pavelmachek [unhandled content-type:application/pgp-signature] | |