mirror of https://github.com/ipxe/ipxe.git
[block] Ignore redundant xfer_window_changed() messages
For some block device protocols, the active path may continue to receive xfer_window_changed() notifications during normal use. These currently result in the active path being erroneously closed. Fix by ignoring any xfer_window_changed() messages if this path is already the active path. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/8/merge
parent
fa879f9f52
commit
414b4fc9c5
|
@ -282,6 +282,10 @@ static size_t sanpath_block_window ( struct san_path *sanpath __unused ) {
|
||||||
static void sanpath_step ( struct san_path *sanpath ) {
|
static void sanpath_step ( struct san_path *sanpath ) {
|
||||||
struct san_device *sandev = sanpath->sandev;
|
struct san_device *sandev = sanpath->sandev;
|
||||||
|
|
||||||
|
/* Ignore if we are already the active device */
|
||||||
|
if ( sanpath == sandev->active )
|
||||||
|
return;
|
||||||
|
|
||||||
/* Wait until path has become available */
|
/* Wait until path has become available */
|
||||||
if ( ! xfer_window ( &sanpath->block ) )
|
if ( ! xfer_window ( &sanpath->block ) )
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue