Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build error and clippy warnings from rust 1.74-nightly #79

Merged
merged 2 commits into from
Aug 25, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/sev/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
//
// Author: Joerg Roedel <jroedel@suse.de>

// For bitflags definitions
#![allow(clippy::bad_bit_mask)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is clippy complains about RMPFlags?

What about allow it only for that definition?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It complained about RMPFlags, especially the zero masks for VMPL0 and NONE. I tried to make it only for the struct definition, but clippy didn't accept that. If you know a way to do that, feel free to send a PR to update the annotation :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah okay now I see, I'll check if there is a way.

But just to understand better, what is the purpose of RMPFlags::VMPL0 flag since it is 0?
Where I can find some info about it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anyway, looking at bitflags/bitflags#373 it seems it happens only on bitflags v1., I'll take a look if we can switch to v2.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RMPFlags are used to generate a bitmask for the RMPUPDATE instruction, where the SVSM can define the access permissions for pages, e.g. giving access to VMPL1 or make a page a VMSA page. For targeting VMPL0 permissions, the flag has to be 0 :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joergroedel okay I see, thanks for the details!
I opened #80 to switch to a new version of bitflags avoiding to suppress this error.


use crate::address::{Address, VirtAddr};
use crate::error::SvsmError;
use crate::types::{GUEST_VMPL, PAGE_SIZE, PAGE_SIZE_2M};
Expand Down