Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1369605 > unrolled thread
| Started by | Jake Oshins <jakeo@microsoft.com> |
|---|---|
| First post | 2016-04-01 23:40 +0200 |
| Last post | 2016-04-02 00:20 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v3 6/7] drivers:hv: Record MMIO range in use by frame buffer Jake Oshins <jakeo@microsoft.com> - 2016-04-01 23:40 +0200
Re: [PATCH v3 6/7] drivers:hv: Record MMIO range in use by frame buffer kbuild test robot <lkp@intel.com> - 2016-04-02 00:20 +0200
[PATCH] drivers:hv: fix resource_size.cocci warnings kbuild test robot <lkp@intel.com> - 2016-04-02 00:20 +0200
| From | Jake Oshins <jakeo@microsoft.com> |
|---|---|
| Date | 2016-04-01 23:40 +0200 |
| Subject | [PATCH v3 6/7] drivers:hv: Record MMIO range in use by frame buffer |
| Message-ID | <rjeXo-1OQ-21@gated-at.bofh.it> |
Later in the boot sequence, we need to figure out which memory
ranges can be given out to various paravirtual drivers. The
hyperv_fb driver should, ideally, be placed right on top of
the frame buffer, without some other device getting plopped on
top of this range in the meantime. Recording this now allows
that to be guaranteed.
Signed-off-by: Jake Oshins <jakeo@microsoft.com>
---
drivers/hv/vmbus_drv.c | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index dfc6149..df59bfb 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -41,6 +41,7 @@
#include <linux/ptrace.h>
#include <linux/screen_info.h>
#include <linux/kdebug.h>
+#include <linux/efi.h>
#include "hyperv_vmbus.h"
static struct acpi_device *hv_acpi_dev;
@@ -101,6 +102,8 @@ static struct notifier_block hyperv_panic_block = {
.notifier_call = hyperv_panic_event,
};
+static const char *fb_mmio_name = "fb_range";
+static struct resource *fb_mmio;
struct resource *hyperv_mmio;
DEFINE_SEMAPHORE(hyperv_mmio_lock);
@@ -1091,6 +1094,12 @@ static int vmbus_acpi_remove(struct acpi_device *device)
struct resource *next_res;
if (hyperv_mmio) {
+ if (fb_mmio) {
+ __release_region(hyperv_mmio, fb_mmio->start,
+ fb_mmio->end - fb_mmio->start + 1);
+ fb_mmio = NULL;
+ }
+
for (cur_res = hyperv_mmio; cur_res; cur_res = next_res) {
next_res = cur_res->sibling;
kfree(cur_res);
@@ -1100,6 +1109,30 @@ static int vmbus_acpi_remove(struct acpi_device *device)
return 0;
}
+static void vmbus_reserve_fb(void)
+{
+ int size;
+ /*
+ * Make a claim for the frame buffer in the resource tree under the
+ * first node, which will be the one below 4GB. The length seems to
+ * be underreported, particularly in a Generation 1 VM. So start out
+ * reserving a larger area and make it smaller until it succeeds.
+ */
+
+ if (screen_info.lfb_base) {
+ if (efi_enabled(EFI_BOOT))
+ size = max_t(__u32, screen_info.lfb_size, 0x800000);
+ else
+ size = max_t(__u32, screen_info.lfb_size, 0x4000000);
+
+ for (; !fb_mmio && (size >= 0x100000); size >>= 1) {
+ fb_mmio = __request_region(hyperv_mmio,
+ screen_info.lfb_base, size,
+ fb_mmio_name, 0);
+ }
+ }
+}
+
/**
* vmbus_allocate_mmio() - Pick a memory-mapped I/O range.
* @new: If successful, supplied a pointer to the
@@ -1261,8 +1294,10 @@ static int vmbus_acpi_add(struct acpi_device *device)
if (ACPI_FAILURE(result))
continue;
- if (hyperv_mmio)
+ if (hyperv_mmio) {
+ vmbus_reserve_fb();
break;
+ }
}
ret_val = 0;
--
1.9.1
[toc] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2016-04-02 00:20 +0200 |
| Subject | Re: [PATCH v3 6/7] drivers:hv: Record MMIO range in use by frame buffer |
| Message-ID | <rjfA6-2lK-13@gated-at.bofh.it> |
| In reply to | #1369605 |
Hi Jake, [auto build test WARNING on v4.6-rc1] [also build test WARNING on next-20160401] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Jake-Oshins/drivers-hv-Ensure-that-bridge-windows-don-t-overlap/20160402-053702 coccinelle warnings: (new ones prefixed by >>) >> drivers/hv/vmbus_drv.c:1099:15-18: ERROR: Missing resource_size with fb_mmio Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
[toc] | [prev] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2016-04-02 00:20 +0200 |
| Subject | [PATCH] drivers:hv: fix resource_size.cocci warnings |
| Message-ID | <rjfA6-2lK-21@gated-at.bofh.it> |
| In reply to | #1369605 |
drivers/hv/vmbus_drv.c:1099:15-18: ERROR: Missing resource_size with fb_mmio
Use resource_size function on resource object
instead of explicit computation.
Generated by: scripts/coccinelle/api/resource_size.cocci
CC: Jake Oshins <jakeo@microsoft.com>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---
vmbus_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -1096,7 +1096,7 @@ static int vmbus_acpi_remove(struct acpi
if (hyperv_mmio) {
if (fb_mmio) {
__release_region(hyperv_mmio, fb_mmio->start,
- fb_mmio->end - fb_mmio->start + 1);
+ resource_size(fb_mmio));
fb_mmio = NULL;
}
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web