diff options
author | Jan Beulich <JBeulich@suse.com> | 2014-06-02 15:58:25 +0200 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2014-06-20 22:04:32 +0200 |
commit | 8e0629c1d4ce86ce7d98ca8756f42769bb17a3c8 (patch) | |
tree | 3b82fe0fc81f5d2671bf3a33667422e1f36ea93e /lib/string_helpers.c | |
parent | Linux 3.16-rc1 (diff) | |
download | linux-8e0629c1d4ce86ce7d98ca8756f42769bb17a3c8.tar.xz linux-8e0629c1d4ce86ce7d98ca8756f42769bb17a3c8.zip |
swiotlb: don't assume PA 0 is invalid
In 2.6.29 io_tlb_orig_addr[] got converted from storing virtual addresses
to storing physical ones. While checking virtual addresses against NULL
is a legitimate thing to catch invalid entries, checking physical ones
against zero isn't: There's no guarantee that PFN 0 is reserved on a
particular platform.
Since it is unclear whether the check in swiotlb_tbl_unmap_single() is
actually needed, retain it but check against a guaranteed invalid physical
address. This requires setting up the array in a suitable fashion. And
since the original code failed to invalidate array entries when regions
get unmapped, this is being fixed at once along with adding a similar
check to swiotlb_tbl_sync_single().
Obviously the less intrusive change would be to simply drop the check in
swiotlb_tbl_unmap_single().
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'lib/string_helpers.c')
0 files changed, 0 insertions, 0 deletions