summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Kiryanov <rkir@google.com>2018-11-13 16:47:15 -0800
committerRoman Kiryanov <rkir@google.com>2018-11-14 10:01:27 -0800
commite1b1fe16409b9509e628e2dca6286f577408ce73 (patch)
tree8cf6f9c7eab52d641b1e7728b8e143fd1385fa6c
parent041eaf6fcea81f22122381f3c114bb7376c52a7c (diff)
downloadgoldfish-e1b1fe16409b9509e628e2dca6286f577408ce73.tar.gz
Tell the HW guest's PAGE_SIZE
PAGE_SIZE will be used by HW for alignment. Bug: 116046430 Change-Id: I035b929747e9e45826420e57b784e7b964628fde Signed-off-by: Roman Kiryanov <rkir@google.com>
-rw-r--r--drivers/misc/goldfish_address_space.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/misc/goldfish_address_space.c b/drivers/misc/goldfish_address_space.c
index c7de1ef4a273..81679463c221 100644
--- a/drivers/misc/goldfish_address_space.c
+++ b/drivers/misc/goldfish_address_space.c
@@ -25,10 +25,11 @@ MODULE_LICENSE("GPLv2");
enum address_space_register_id {
ADDRESS_SPACE_REGISTER_COMMAND = 0,
ADDRESS_SPACE_REGISTER_STATUS = 4,
- ADDRESS_SPACE_REGISTER_BLOCK_SIZE_LOW = 8,
- ADDRESS_SPACE_REGISTER_BLOCK_SIZE_HIGH = 12,
- ADDRESS_SPACE_REGISTER_BLOCK_OFFSET_LOW = 16,
- ADDRESS_SPACE_REGISTER_BLOCK_OFFSET_HIGH = 20,
+ ADDRESS_SPACE_REGISTER_GUEST_PAGE_SIZE = 8,
+ ADDRESS_SPACE_REGISTER_BLOCK_SIZE_LOW = 12,
+ ADDRESS_SPACE_REGISTER_BLOCK_SIZE_HIGH = 16,
+ ADDRESS_SPACE_REGISTER_BLOCK_OFFSET_LOW = 20,
+ ADDRESS_SPACE_REGISTER_BLOCK_OFFSET_HIGH = 24,
};
enum address_space_command_id {
@@ -397,6 +398,10 @@ static int __must_check create_address_space_device(struct pci_dev *dev,
goto out_memunmap;
}
+ address_space_write_register(state->io_registers,
+ ADDRESS_SPACE_REGISTER_GUEST_PAGE_SIZE,
+ PAGE_SIZE);
+
state->magic = ADDRESS_SPACE_MAGIC_U32;
state->dev = dev;
state->driver_state = driver_state;