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