uio: don't free irq that was not requested
[firefly-linux-kernel-4.4.55.git] / drivers / uio / uio.c
index 65bf0676d54afc785107822f51a696ae373a2702..3257d4220d0102e876b8aa7888865797a616123e 100644 (file)
@@ -879,7 +879,8 @@ void uio_unregister_device(struct uio_info *info)
 
        uio_dev_del_attributes(idev);
 
-       free_irq(idev->info->irq, idev);
+       if (info->irq && info->irq != UIO_IRQ_CUSTOM)
+               free_irq(info->irq, idev);
 
        device_destroy(&uio_class, MKDEV(uio_major, idev->minor));