Jan Beulich
2012-Oct-02 14:55 UTC
[PATCH] VT-d: make remap_entry_to_msi_msg() return consistent message
During debugging of another problem I found that in x2APIC mode, the destination field of the low address value wasn''t passed back correctly. While this is benign in most cases (as the value isn''t being used anywhere), it can be confusing (and misguiding) when printing the value read or when comparing it to the one previously passed into the inverse function. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -504,7 +504,11 @@ static int remap_entry_to_msi_msg( MSI_ADDR_REDIRECTION_CPU: MSI_ADDR_REDIRECTION_LOWPRI); if ( x2apic_enabled ) + { msg->dest32 = iremap_entry->lo.dst; + msg->address_lo |+ (iremap_entry->lo.dst & 0xff) << MSI_ADDR_DEST_ID_SHIFT; + } else msg->address_lo | ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Keir Fraser
2012-Oct-02 17:00 UTC
Re: [PATCH] VT-d: make remap_entry_to_msi_msg() return consistent message
On 02/10/2012 15:55, "Jan Beulich" <JBeulich@suse.com> wrote:> During debugging of another problem I found that in x2APIC mode, the > destination field of the low address value wasn''t passed back > correctly. While this is benign in most cases (as the value isn''t being > used anywhere), it can be confusing (and misguiding) when printing the > value read or when comparing it to the one previously passed into the > inverse function. > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/drivers/passthrough/vtd/intremap.c > +++ b/xen/drivers/passthrough/vtd/intremap.c > @@ -504,7 +504,11 @@ static int remap_entry_to_msi_msg( > MSI_ADDR_REDIRECTION_CPU: > MSI_ADDR_REDIRECTION_LOWPRI); > if ( x2apic_enabled ) > + { > msg->dest32 = iremap_entry->lo.dst; > + msg->address_lo |> + (iremap_entry->lo.dst & 0xff) << MSI_ADDR_DEST_ID_SHIFT; > + } > else > msg->address_lo |> ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT; > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Jan Beulich
2012-Oct-03 12:58 UTC
Re: [PATCH] VT-d: make remap_entry_to_msi_msg() return consistent message
>>> Keir Fraser <keir@xen.org> 10/02/12 7:01 PM >>> >On 02/10/2012 15:55, "Jan Beulich" <JBeulich@suse.com> wrote: > >> During debugging of another problem I found that in x2APIC mode, the >> destination field of the low address value wasn''t passed back >> correctly. While this is benign in most cases (as the value isn''t being >> used anywhere), it can be confusing (and misguiding) when printing the >> value read or when comparing it to the one previously passed into the >> inverse function. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > >Acked-by: Keir Fraser <keir@xen.org>Actually on my way home yesterday I realized that this is not consistent, i.e. fails to cover symmetrically the !x2apic case. Therefore, I''d like to adjust this to pull out the msg->dest32 assignment from the conditional. Will that be okay to commit without re-submission? Jan> --- a/xen/drivers/passthrough/vtd/intremap.c > +++ b/xen/drivers/passthrough/vtd/intremap.c > @@ -504,7 +504,11 @@ static int remap_entry_to_msi_msg( > MSI_ADDR_REDIRECTION_CPU: > MSI_ADDR_REDIRECTION_LOWPRI); > if ( x2apic_enabled ) > + { > msg->dest32 = iremap_entry->lo.dst; > + msg->address_lo |> + (iremap_entry->lo.dst & 0xff) << MSI_ADDR_DEST_ID_SHIFT; > + } > else > msg->address_lo |> ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT; > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Keir Fraser
2012-Oct-03 14:33 UTC
Re: [PATCH] VT-d: make remap_entry_to_msi_msg() return consistent message
On 03/10/2012 13:58, "Jan Beulich" <jbeulich@suse.com> wrote:>>>> Keir Fraser <keir@xen.org> 10/02/12 7:01 PM >>> >> On 02/10/2012 15:55, "Jan Beulich" <JBeulich@suse.com> wrote: >> >>> During debugging of another problem I found that in x2APIC mode, the >>> destination field of the low address value wasn''t passed back >>> correctly. While this is benign in most cases (as the value isn''t being >>> used anywhere), it can be confusing (and misguiding) when printing the >>> value read or when comparing it to the one previously passed into the >>> inverse function. >>> >>> Signed-off-by: Jan Beulich <jbeulich@suse.com> >> >> Acked-by: Keir Fraser <keir@xen.org> > > Actually on my way home yesterday I realized that this is not consistent, i.e. > fails to cover symmetrically the !x2apic case. Therefore, I''d like to adjust > this > to pull out the msg->dest32 assignment from the conditional. Will that be okay > to commit without re-submission?Yes, that''s fine by me. -- Keir> Jan > >> --- a/xen/drivers/passthrough/vtd/intremap.c >> +++ b/xen/drivers/passthrough/vtd/intremap.c >> @@ -504,7 +504,11 @@ static int remap_entry_to_msi_msg( >> MSI_ADDR_REDIRECTION_CPU: >> MSI_ADDR_REDIRECTION_LOWPRI); >> if ( x2apic_enabled ) >> + { >> msg->dest32 = iremap_entry->lo.dst; >> + msg->address_lo |>> + (iremap_entry->lo.dst & 0xff) << MSI_ADDR_DEST_ID_SHIFT; >> + } >> else >> msg->address_lo |>> ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT; >> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xen.org >> http://lists.xen.org/xen-devel > > > > >