Hi Jean,

On 05/09/2019 14:57, Jean Delvare wrote:
> If this is of any value to you, I tried implementing it in i2c-i801 a
> few days ago. I can't really test it though as I don't have any device
> which triggers an alert on my system, but I am sharing it with you if
> you want to give it a try. You would still need to write the code in
> the slave driver.

and I forgot another issue:

> @@ -1897,8 +1956,10 @@ static void i801_remove(struct pci_dev *
>       pm_runtime_forbid(&dev->dev);
>       pm_runtime_get_noresume(&dev->dev);
>  
> -     i801_disable_host_notify(priv);
> +     i801_restore_slvcmd(priv);
>       i801_del_mux(priv);
> +     if (priv->ara)
> +             i2c_unregister_device(priv->ara);

to me it looks like a race with IRQ handler (IRQ is only disabled *after*
remove()), it can still attempt to use freed ARA device after this line. 

>       i2c_del_adapter(&priv->adapter);
>       i801_acpi_remove(priv);
>       pci_write_config_byte(dev, SMBHSTCFG, priv->original_hstcfg);

-- 
Best regards,
Alexander Sverdlin.

Reply via email to