diff --git a/Cargo.lock b/Cargo.lock index 4b2dde874..b3defb3a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2953,8 +2953,8 @@ dependencies = [ [[package]] name = "hubtools" -version = "0.4.7" -source = "git+https://github.com/oxidecomputer/hubtools#d38e22464c3991ffad8754020ad0dd533b7ccdde" +version = "0.4.6" +source = "git+https://github.com/oxidecomputer/hubtools#f48e2da029ba6552cff5c07ff8a2fc21cc56aa32" dependencies = [ "hex", "lpc55_areas", diff --git a/drv/lpc55-update-server/src/images.rs b/drv/lpc55-update-server/src/images.rs index cdc7e0e65..4de325522 100644 --- a/drv/lpc55-update-server/src/images.rs +++ b/drv/lpc55-update-server/src/images.rs @@ -599,7 +599,7 @@ impl From<&[u8]> for Epoch { impl Epoch { pub fn can_update_to(&self, next: Epoch) -> bool { - self.value >= next.value + self.value <= next.value } } @@ -611,8 +611,8 @@ impl Epoch { /// so that images can be rejected early, i.e. before any flash has /// been altered. pub fn check_rollback_policy( - next_image: ImageAccess<'_>, active_image: ImageAccess<'_>, + next_image: ImageAccess<'_>, complete: bool, ) -> Result<(), UpdateError> { let next_epoch = get_image_epoch(&next_image)?; diff --git a/drv/lpc55-update-server/src/main.rs b/drv/lpc55-update-server/src/main.rs index 2e3d5a476..84e53a7df 100644 --- a/drv/lpc55-update-server/src/main.rs +++ b/drv/lpc55-update-server/src/main.rs @@ -202,14 +202,6 @@ impl idl::InOrderUpdateImpl for ServerImpl<'_> { self.header_block = None; return Err(e.into()); } - let active_image = - ImageAccess::new_flash(&self.flash, component, slot.other()); - if let Err(e) = - check_rollback_policy(active_image, next_image, false) - { - self.header_block = None; - return Err(e.into()); - } } else { // Block order is enforced above. If we're here then we have // seen block zero already.