On 01/20/2010 07:19 PM, Jiri Slaby wrote:
When both remote controller and receiver intfs are handled by af9015, .probe do nothing for remote intf, but when .disconnect is called for both of them it touches intfdata every time. For remote it crashes obviously (as intfdata are unset). Altough there is test against data being NULL, it is not enough. It is because someone before us does not set intf drvdata to NULL. (In this case the hid layer.) But we cannot rely on intf being NULL anyway. Fix that by checking bInterfaceNumber in af9015_usb_device_exit and do actually nothing if it is not 0.
I was a little bit surprised when saw this error, why it haven't detected earlier. When I initially added interface check for .probe it was surely needed, it was creating two instances without that check in that time. When I now test this patch with debugs enabled I don't see .probe and .disconnect be called for this HID interface (interface 1) at all and thus checks not needed. I have Fedora Kernel 2.6.31.12 running with latest v4l-dvb. Is there now some kind of check added recently which blocks .probe and disconnect from HID interface?
regards Antti -- http://palosaari.fi/ -- 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