Re: [PATCH v2] i2c: iproc: fix race between client unreg and isr

2020-08-10 Thread Ray Jui
On 8/8/2020 7:47 AM, Florian Fainelli wrote: > > > On 8/7/2020 8:55 PM, Dhananjay Phadke wrote: >> On 8/7/2020, Florian Fainelli wrote: When i2c client unregisters, synchronize irq before setting iproc_i2c->slave to NULL. (1) disable_irq() (2) Mask event enable bits in

Re: [PATCH v2] i2c: iproc: fix race between client unreg and isr

2020-08-08 Thread Florian Fainelli
On 8/7/2020 8:55 PM, Dhananjay Phadke wrote: > On 8/7/2020, Florian Fainelli wrote: >>> When i2c client unregisters, synchronize irq before setting >>> iproc_i2c->slave to NULL. >>> >>> (1) disable_irq() >>> (2) Mask event enable bits in control reg >>> (3) Erase slave address (avoid further wri

Re: [PATCH v2] i2c: iproc: fix race between client unreg and isr

2020-08-07 Thread Dhananjay Phadke
On 8/7/2020, Florian Fainelli wrote: > > When i2c client unregisters, synchronize irq before setting > > iproc_i2c->slave to NULL. > > > > (1) disable_irq() > > (2) Mask event enable bits in control reg > > (3) Erase slave address (avoid further writes to rx fifo) > > (4) Flush tx and rx FIFOs > >

Re: [PATCH v2] i2c: iproc: fix race between client unreg and isr

2020-08-07 Thread Florian Fainelli
On 8/7/2020 3:02 PM, Dhananjay Phadke wrote: > When i2c client unregisters, synchronize irq before setting > iproc_i2c->slave to NULL. > > (1) disable_irq() > (2) Mask event enable bits in control reg > (3) Erase slave address (avoid further writes to rx fifo) > (4) Flush tx and rx FIFOs > (5)

[PATCH v2] i2c: iproc: fix race between client unreg and isr

2020-08-07 Thread Dhananjay Phadke
When i2c client unregisters, synchronize irq before setting iproc_i2c->slave to NULL. (1) disable_irq() (2) Mask event enable bits in control reg (3) Erase slave address (avoid further writes to rx fifo) (4) Flush tx and rx FIFOs (5) Clear pending event (interrupt) bits in status reg (6) enable_ir