david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[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>
This commit is contained in:
Michael Brown 2017-03-28 18:58:47 +03:00
parent fa879f9f52
commit 414b4fc9c5
1 changed files with 4 additions and 0 deletions

View File

@ -282,6 +282,10 @@ static size_t sanpath_block_window ( struct san_path *sanpath __unused ) {
static void sanpath_step ( struct san_path *sanpath ) {
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 */
if ( ! xfer_window ( &sanpath->block ) )
return;