Re: function call fw_iso_resource_mange(..) (core-iso.c) does not return

From: Stephan Gatzka
Date: Wed May 22 2013 - 04:59:27 EST



A third (fourth?) way to fix it --- feasible or not --- would be to break
the dependency between the worklets. In this case, use a timer to cancel
outbound transactions if the request-transmit IRQ event was not received
before a timeout. We had such a timeout in the older ieee1394 drivers and
we also had it in earlier versions of the firewire drivers, at a risk of a
race between CPU and OHCI.

Why do we need a timer? If we guarantee that bus_reset_work() always make progress (if we put it into its own queue), it should always be able to complete the corresponding completion object the other works are waiting for.

Regards,

Stephan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/