Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
idpf: add read memory barrier when checking descriptor done bit
Add read memory barrier to ensure the order of operations when accessing control queue descriptors. Specifically, we want to avoid cases where loads can be reordered: 1. Load kernel-patches#1 is dispatched to read descriptor flags. 2. Load kernel-patches#2 is dispatched to read some other field from the descriptor. 3. Load kernel-patches#2 completes, accessing memory/cache at a point in time when the DD flag is zero. 4. NIC DMA overwrites the descriptor, now the DD flag is one. 5. Any fields loaded before step 4 are now inconsistent with the actual descriptor state. Add read memory barrier between steps 1 and 2, so that load kernel-patches#2 is not executed until load kernel-patches#1 has completed. Fixes: 8077c72 ("idpf: add controlq init and reset checks") Reviewed-by: Przemek Kitszel <[email protected]> Reviewed-by: Sridhar Samudrala <[email protected]> Suggested-by: Lance Richardson <[email protected]> Signed-off-by: Emil Tantilov <[email protected]> Tested-by: Krishneil Singh <[email protected]> Signed-off-by: Tony Nguyen <[email protected]> Signed-off-by: NipaLocal <nipa@local>
- Loading branch information