diff options
author | Jia-Ju Bai <baijiaju@tsinghua.edu.cn> | 2020-08-02 21:29:49 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-11-10 10:23:51 +0100 |
commit | ad3394d7f62b30afb824116a07dfe7b1b9900c85 (patch) | |
tree | ddfcd2e617ce3934cfe1639baf5a4cf6aa88aec5 /security | |
parent | 1b47891c58b8430fb87927c1d815ca8702e98478 (diff) | |
download | linux-stable-ad3394d7f62b30afb824116a07dfe7b1b9900c85.tar.gz linux-stable-ad3394d7f62b30afb824116a07dfe7b1b9900c85.tar.bz2 linux-stable-ad3394d7f62b30afb824116a07dfe7b1b9900c85.zip |
p54: avoid accessing the data mapped to streaming DMA
commit 478762855b5ae9f68fa6ead1edf7abada70fcd5f upstream.
In p54p_tx(), skb->data is mapped to streaming DMA on line 337:
mapping = pci_map_single(..., skb->data, ...);
Then skb->data is accessed on line 349:
desc->device_addr = ((struct p54_hdr *)skb->data)->req_id;
This access may cause data inconsistency between CPU cache and hardware.
To fix this problem, ((struct p54_hdr *)skb->data)->req_id is stored in
a local variable before DMA mapping, and then the driver accesses this
local variable instead of skb->data.
Cc: <stable@vger.kernel.org>
Signed-off-by: Jia-Ju Bai <baijiaju@tsinghua.edu.cn>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200802132949.26788-1-baijiaju@tsinghua.edu.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions