lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 24 Mar 2015 02:32:01 +0000 From: "Wu, Feng" <feng.wu@...el.com> To: Joerg Roedel <joro@...tes.org> CC: "dwmw2@...radead.org" <dwmw2@...radead.org>, "jiang.liu@...ux.intel.com" <jiang.liu@...ux.intel.com>, "iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "Wu, Feng" <feng.wu@...el.com> Subject: RE: [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts > -----Original Message----- > From: Joerg Roedel [mailto:joro@...tes.org] > Sent: Monday, March 23, 2015 7:58 PM > To: Wu, Feng > Cc: dwmw2@...radead.org; jiang.liu@...ux.intel.com; > iommu@...ts.linux-foundation.org; linux-kernel@...r.kernel.org > Subject: Re: [v4 2/8] iommu, x86: Define new irte structure for VT-d > Posted-Interrupts > > Hi Feng, > > On Mon, Feb 02, 2015 at 04:06:58PM +0800, Feng Wu wrote: > > Add a new irte_pi structure for VT-d Posted-Interrupts. > > > > Signed-off-by: Feng Wu <feng.wu@...el.com> > > Reviewed-by: Jiang Liu <jiang.liu@...ux.intel.com> > > Acked-by: David Woodhouse <David.Woodhouse@...el.com> > > --- > > include/linux/dmar.h | 32 ++++++++++++++++++++++++++++++++ > > 1 files changed, 32 insertions(+), 0 deletions(-) > > > > diff --git a/include/linux/dmar.h b/include/linux/dmar.h > > index 8473756..c7f9cda 100644 > > --- a/include/linux/dmar.h > > +++ b/include/linux/dmar.h > > @@ -212,6 +212,38 @@ struct irte { > > }; > > }; > > > > +struct irte_pi { > > I think it is better to put this as a union into struct irte. It saves > memory and unnecessary casting in later patches. Thanks for the comments! Do you mean doing it like the following? struct irte { union { struct { __u64 present : 1, fpd : 1, dst_mode : 1, redir_hint : 1, trigger_mode : 1, dlvry_mode : 3, avail : 4, __reserved_1 : 4, vector : 8, __reserved_2 : 8, dest_id : 32; }; struct { __u64 present : 1, fpd : 1, __reserved_1 : 6, avail : 4, __reserved_2 : 2, urg : 1, pst : 1, vector : 8, __reserved_3 : 14, pda_l : 26; }; __u64 low; }; union { struct { __u64 sid : 16, sq : 2, svt : 2, __reserved_3 : 44; }; struct { __u64 sid : 16, sq : 2, svt : 2, __reserved_4 : 12, pda_h : 32; }; __u64 high; }; }; In fact, I also intended to make these two defines as one, however, this code will get build error ("duplicated member") with new version of GCC, such as, gcc 4.9.1. I cannot find a good way to handle this gracefully, since I don't want to impact the existing usage of this structure . Do you have any ideas about this? Thanks a lot! Thanks, Feng > > > Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists