iommu/vt-d: use dedicated bitmap to track remapping entry allocation status
authorJiang Liu <jiang.liu@linux.intel.com>
Mon, 6 Jan 2014 06:18:08 +0000 (14:18 +0800)
committerJoerg Roedel <joro@8bytes.org>
Tue, 7 Jan 2014 16:16:19 +0000 (17:16 +0100)
Currently Intel interrupt remapping drivers uses the "present" flag bit
in remapping entry to track whether an entry is allocated or not.
It works as follow:
1) allocate a remapping entry and set its "present" flag bit to 1
2) compose other fields for the entry
3) update the remapping entry with the composed value

The remapping hardware may access the entry between step 1 and step 3,
which then observers an entry with the "present" flag set but random
values in all other fields.

This patch introduces a dedicated bitmap to track remapping entry
allocation status instead of sharing the "present" flag with hardware,
thus eliminate the race window. It also simplifies the implementation.

Tested-and-reviewed-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
drivers/iommu/intel_irq_remapping.c
include/linux/intel-iommu.h

Simple merge
Simple merge