Am Montag, den 25.01.2016, 18:44 +0900 schrieb Alexandre Courbot: > nvkm_device_tegra_new initializes the irq member of the Tegra device > to -1 in order to signal that it is uninitialized. However, > nvkm_device_tegra_fini tests it against 0 to check whether an IRQ has > been allocated or not. This leads to free_irq being called on -1 > during > device initialization. > The convention in other parts of the Linux kernel is that IRQ number 0 means unallocated/invalid IRQ. So I think it is the initialization to -1 that should be fixed instead.
> Signed-off-by: Alexandre Courbot <[email protected]> > --- > drm/nouveau/nvkm/engine/device/tegra.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drm/nouveau/nvkm/engine/device/tegra.c > b/drm/nouveau/nvkm/engine/device/tegra.c > index 7f8a42721eb2..0a22439fd9ae 100644 > --- a/drm/nouveau/nvkm/engine/device/tegra.c > +++ b/drm/nouveau/nvkm/engine/device/tegra.c > @@ -195,9 +195,9 @@ static void > nvkm_device_tegra_fini(struct nvkm_device *device, bool suspend) > { > struct nvkm_device_tegra *tdev = nvkm_device_tegra(device); > - if (tdev->irq) { > + if (tdev->irq != -1) { > free_irq(tdev->irq, tdev); > - tdev->irq = 0; > + tdev->irq = -1; > }; > } > _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
