Skip to contentSkip to conversation

Patch "iommu/amd: Fix the left value check of cmd buffer" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Jan 9, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

iommu/amd: Fix the left value check of cmd buffer

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
iommu-amd-fix-the-left-value-check-of-cmd-buffer.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 432abf68a79332282329286d190e21fe3ac02a31 Mon Sep 17 00:00:00 2001

From: Huang Rui <[email protected]>
Date: Mon, 12 Dec 2016 07:28:26 -0500
Subject: iommu/amd: Fix the left value check of cmd buffer

From: Huang Rui <[email protected]>

commit 432abf68a79332282329286d190e21fe3ac02a31 upstream.

The generic command buffer entry is 128 bits (16 bytes), so the offset of tail and head pointer should be 16 bytes aligned and increased with 0x10 per command.

When cmd buf is full, head = (tail + 0x10) % CMD_BUFFER_SIZE.

So when left space of cmd buf should be able to store only two command, we should be issued one COMPLETE_WAIT additionally to wait all older commands completed. Then the left space should be increased after IOMMU fetching from cmd buf.

So left check value should be left <= 0x20 (two commands).

Fixes ac0ea6e92b222 ('x86/amd-iommu: Improve handling of full command buffer')
---
 drivers/iommu/amd_iommu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iommu/amd_iommu.c +1 -1
@@ -926,7 +926,7 @@ again:
 	next_tail = (tail + sizeof(*cmd)) % CMD_BUFFER_SIZE;
 	left      = (head - next_tail) % CMD_BUFFER_SIZE;
 
-	if (left <= 2) {
+	if (left <= 0x20) {
 		struct iommu_cmd sync_cmd;
 		volatile u64 sem = 0;
 		int ret;

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/iommu-amd-fix-the-left-value-check-of-cmd-buffer.patch