From c114014c1c6b46bb0f925cce2aa4624e249a275c Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 30 Jan 2013 16:29:09 +0100 Subject: [PATCH] nova: kernel patch for assign_pci Apply lookup of pci config memory address to target pd. --- base-nova/patches/assign_pci.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 base-nova/patches/assign_pci.patch diff --git a/base-nova/patches/assign_pci.patch b/base-nova/patches/assign_pci.patch new file mode 100644 index 000000000..b49f2a486 --- /dev/null +++ b/base-nova/patches/assign_pci.patch @@ -0,0 +1,16 @@ +diff --git a/src/syscall.cpp b/src/syscall.cpp +index ee6dc42..9d5eba3 100644 +--- a/src/syscall.cpp ++++ b/src/syscall.cpp +@@ -462,8 +487,10 @@ void Ec::sys_assign_pci() + sys_finish(); + } + ++ Pd * pd = static_cast(obj); ++ + Paddr phys; unsigned rid; +- if (EXPECT_FALSE (!Pd::current->Space_mem::lookup (r->dev(), phys) || (rid = Pci::phys_to_rid (phys)) == ~0U)) { ++ if (EXPECT_FALSE (!pd->Space_mem::lookup (r->dev(), phys) || (rid = Pci::phys_to_rid (phys)) == ~0U)) { + trace (TRACE_ERROR, "%s: Non-DEV CAP (%#lx)", __func__, r->dev()); + sys_finish(); + }