On Friday 30 October 2015 17:36:45 Timur Tabi wrote: > On 10/30/2015 05:28 PM, Arnd Bergmann wrote: > >>> > >Why ENODEV? Could you make this handle restarted system calls? > >> > > >> >This is the self test code. It gets called from probe. If there is a > >> >problem with the device or system configuration, I don't want to enable > >> >this device. I can certainly return a different error code though. > >> >What's a good code? > > I see. probe() is not restartable, so it cannot be -ERESTARTSYS. > > > > Maybe better use wait_event_timeout and not handle the signals then. > > It will eventually time out if something goes wrong. > > What about -EPROBE_DEFER? Isn't that "restartable"? Granted, it's only > supposed to be used if the driver is dependent on another driver to > probe, so I'm not sure it applies here. If the self-test fails, then it > is possible that it could succeed later? No, this is different. The probe function can get called from all sorts of contexts (sys_init_module, device_create, deferred probing), and not all of them go back to user space when returning an error, so we cannot deliver a signal to the calling process this way. Arnd -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html