On 24.11.2023 02:47, Marek Marczykowski-Górecki wrote:
> @@ -357,7 +356,17 @@ static int cf_check _msixtbl_write(
> const struct hvm_io_handler *handler, uint64_t address, uint32_t len,
> uint64_t val)
> {
> - return msixtbl_write(current, address, len, val);
> + /* ignore invalid length or unaligned writes */
Nit: Style (capital first letter).
> + if ( len != 4 && len != 8 || !IS_ALIGNED(address, len) )
Please parenthesize the && as an operand of ||.
> --- a/xen/common/kernel.c
> +++ b/xen/common/kernel.c
> @@ -642,6 +642,7 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void)
> arg)
> fi.submap |= (1U << XENFEAT_direct_mapped);
> else
> fi.submap |= (1U << XENFEAT_not_direct_mapped);
> + fi.submap |= (1U << XENFEAT_dm_msix_all_writes);
This probably wants to move up into the x86-only section?
Jan