Comment 28 for bug 357724

Revision history for this message
Colin Ian King (colin-king) wrote :

SRU Justification:

Impact: A failed radio-maestro probe always generates a kernel oops.

Probe failures in maestro_probe cause a double call to
video_device_release():

 a) indirectly when calling video_unregister_device()
via dev->release(dev) in device_release()
 b) explicity in the error handling at label errfr1

The second call causes the oops. This bug was introduced
with commit aa5e90af7d78d1711f8f4275ce3638817c0023dc when the
release method was added to struct video_device maestro_radio
but the error handling was not updated to take this into
consideration.

The fix: Correct the error handling path to avoid the
double release.

Test case: Without this fix, the kernel generates an oops when a probe
fails. With the fix, there is no oops. Tested by user GertjanVD.