mirror of
https://github.com/ipxe/ipxe
synced 2025-12-28 18:42:53 +03:00
[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:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user