Am 27.02.2016 um 20:50 schrieb Mauro Carvalho Chehab: > Em Sat, 27 Feb 2016 19:39:16 +0100 > Heiner Kallweit <hkallweit1@xxxxxxxxx> escreveu: > >> Am 27.02.2016 um 19:05 schrieb Mauro Carvalho Chehab: >>> Em Sat, 27 Feb 2016 17:10:41 +0100 >>> Heiner Kallweit <hkallweit1@xxxxxxxxx> escreveu: >>> >>>> Am 27.02.2016 um 13:14 schrieb Heiner Kallweit: >>>>> Since this commit I see the following error when the Nuvoton RC driver is loaded: >>>>> >>>>> input: failed to attach handler kbd to device input3, error: -22 >>>>> >>>>> Error 22 (EINVAL) comes from the new check in rc_open(). >>>>> >>>> >>>> Complete call chain seems to be: >>>> rc_register_device >>>> input_register_device >>>> input_attach_handler >>>> kbd_connect >>>> input_open_device >>>> ir_open >>>> rc_open >>>> >>>> rc_register_device calls input_register_device before dev->initialized = true, >>>> therefore the new check in rc_open fails. At a first glance I'd say that we have >>>> to remove this check from rc_open. >>> >>> Hmm... maybe we could, instead, do: >>> >>> if (!rdev->initialized) { >>> rval = -ERESTARTSYS; >>> goto unlock; >>> } >>> >> Looking at the source code of the functions in the call chain I see no special >> handling of ERESTARTSYS. It's treated like any other error, therefore I don't >> think this helps. > > The expected behavior is that the Kernel syscall code to handle ERESTARTSYS > internally, and either return EAGAIN to userspace, or try again until > it succeeds, depending on the open mode. > I tested it and returning ERESTARTSYS instead of EINVAL doesn't help. The behavior is the same. As far as I can see no syscall code is involved in this call chain. > So, it seems a worth trial. > > Thanks, > Mauro > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html