On Friday, 26 November 2021 09:00:06 CET Bernatowicz, Marcin wrote: > > On 11/18/2021 9:41 AM, Janusz Krzysztofik wrote: > > Strange -ENODEV responses from the kernel to i915 driver rebind attempts > > have been sporadically observed. After successfully unbinding the driver > > from a device by writing a string representing its PCI bus address to > > /sys/bus/pci/driver/i915/unbind, the test then fails while writing the > > same device PCI bus address string to /sys/bus/pci/drivers/i915/bind. It > > is unlikely that the device disappears from the bus when this happens -- > > the test would attempt to rescan the bus in such cases while it doesn't. > > > > To shed more light on what may be going on, extend error messages emitted > > by the test with the device PCI bus address string it uses also printed. > > > > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@xxxxxxxxxxxxxxx> > > --- > > tests/core_hotunplug.c | 12 ++++++------ > > 1 file changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c > > index b36616688..2f2fb7ac1 100644 > > --- a/tests/core_hotunplug.c > > +++ b/tests/core_hotunplug.c > > @@ -174,11 +174,11 @@ static void driver_unbind(struct hotunplug *priv, const char *prefix, > > igt_set_timeout(timeout, "Driver unbind timeout!"); > > igt_assert_f(igt_sysfs_set(priv->fd.sysfs_drv, "unbind", > > priv->dev_bus_addr), > > - "Driver unbind failure!\n"); > > + "Driver unbind failure (%s)!\n", priv->dev_bus_addr); > > igt_reset_timeout(); > > > > igt_assert_f(faccessat(priv->fd.sysfs_drv, priv->dev_bus_addr, F_OK, 0), > > - "Unbound device still present\n"); > > + "Unbound device still present (%s)\n", priv->dev_bus_addr); > > } > > > > /* Re-bind the driver to the device */ > > @@ -190,12 +190,12 @@ static void driver_bind(struct hotunplug *priv, int timeout) > > igt_set_timeout(timeout, "Driver re-bind timeout!"); > > igt_assert_f(igt_sysfs_set(priv->fd.sysfs_drv, "bind", > > priv->dev_bus_addr), > > - "Driver re-bind failure\n!"); > > + "Driver re-bind failure (%s)!\n", priv->dev_bus_addr); > > igt_reset_timeout(); > > > > igt_fail_on_f(faccessat(priv->fd.sysfs_drv, priv->dev_bus_addr, > > F_OK, 0), > > - "Rebound device not present!\n"); > > + "Rebound device not present (%s)!\n", priv->dev_bus_addr); > > > > if (priv->snd_unload) > > igt_kmod_load("snd_hda_intel", NULL); > > @@ -223,7 +223,7 @@ static void device_unplug(struct hotunplug *priv, const char *prefix, > > igt_assert_eq(priv->fd.sysfs_dev, -1); > > > > igt_assert_f(faccessat(priv->fd.sysfs_bus, priv->dev_bus_addr, F_OK, 0), > > - "Unplugged device still present\n"); > > + "Unplugged device still present (%s)\n", priv->dev_bus_addr); > > } > > > > /* Re-discover the device by rescanning its bus */ > > @@ -239,7 +239,7 @@ static void bus_rescan(struct hotunplug *priv, int timeout) > > > > igt_fail_on_f(faccessat(priv->fd.sysfs_bus, priv->dev_bus_addr, > > F_OK, 0), > > - "Fakely unplugged device not rediscovered!\n"); > > + "Fakely unplugged device not rediscovered (%s)!\n", priv->dev_bus_addr); > > } > > > > static void cleanup(struct hotunplug *priv) > > > LGTM, > Reviewed-by: Marcin Bernatowicz <marcin.bernatowicz@xxxxxxxxxxxxxxx> Thanks Marcin, pushed. Janusz