Re: [PATCH 1/1] x86/iommu: use bit structures for context_entry

From: ZhenHua
Date: Thu May 23 2013 - 20:44:18 EST


Use lo and hi for clear, may run faster than memset.

But it is not a big problem. Never mind.

Thanks
ZhenHua

On 05/24/2013 08:36 AM, Joe Perches wrote:
On Fri, 2013-05-24 at 08:22 +0800, Li, Zhen-Hua wrote:
There is a structure named context_entry used by intel iommu, and there
are some bit operations on it. Use bit structure may make these operations
easy.
[]
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
[]
@@ -221,55 +221,28 @@ get_context_addr_from_root(struct root_entry *root)
* 8-23: domain id
*/
struct context_entry {
- u64 lo;
- u64 hi;
+ union {
+ struct {
+ u64 present:1,
why use struct and union at all?

Why not just:

struct context_entry {
u64 present:1,
fpd:1,
translation_type:2,
reserved_l:8,
asr:52;
u64 aw:3,
avail:4,
reserved_h1:1,
did:16,
reserved_h2:40;
};

@@ -743,7 +716,8 @@ static void clear_context_table(struct intel_iommu *iommu, u8 bus, u8 devfn)
[]
if (context) {
- context_clear_entry(&context[devfn]);
+ context[devfn].lo = 0;
+ context[devfn].hi = 0;
memset(&context[devfn], 0, sizeof(...))



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/