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)
commit360eb3c5687e2df23e29e97878238765bfe6a756
tree6c97eb6de7e35cf4e3f552de8f20d7c3b1926787
parentdbad086433af81513c84678070522455fefebe2a
iommu/vt-d: use dedicated bitmap to track remapping entry allocation status

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
This page took 0.028811 seconds and 5 git commands to generate.