Linux Audio

Check our new training course

Loading...
v5.9
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 * xen-stub.c - stub drivers to reserve space for Xen
 4 *
 5 * Copyright (C) 2012 Intel Corporation
 6 *    Author: Liu Jinsong <jinsong.liu@intel.com>
 7 *    Author: Jiang Yunhong <yunhong.jiang@intel.com>
 8 *
 9 * Copyright (C) 2012 Oracle Inc
10 *    Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
 
 
 
 
 
 
 
 
 
 
 
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/export.h>
16#include <linux/types.h>
17#include <linux/acpi.h>
18#include <xen/acpi.h>
19
20#ifdef CONFIG_ACPI
21
22/*--------------------------------------------
23	stub driver for Xen memory hotplug
24--------------------------------------------*/
25
26static const struct acpi_device_id memory_device_ids[] = {
27	{ACPI_MEMORY_DEVICE_HID, 0},
28	{"", 0},
29};
30
31static struct acpi_driver xen_stub_memory_device_driver = {
32	/* same name as native memory driver to block native loaded */
33	.name = "acpi_memhotplug",
34	.class = ACPI_MEMORY_DEVICE_CLASS,
35	.ids = memory_device_ids,
36};
37
38int xen_stub_memory_device_init(void)
39{
40	if (!xen_initial_domain())
41		return -ENODEV;
42
43	/* just reserve space for Xen, block native driver loaded */
44	return acpi_bus_register_driver(&xen_stub_memory_device_driver);
45}
46EXPORT_SYMBOL_GPL(xen_stub_memory_device_init);
47subsys_initcall(xen_stub_memory_device_init);
48
49void xen_stub_memory_device_exit(void)
50{
51	acpi_bus_unregister_driver(&xen_stub_memory_device_driver);
52}
53EXPORT_SYMBOL_GPL(xen_stub_memory_device_exit);
54
55
56/*--------------------------------------------
57	stub driver for Xen cpu hotplug
58--------------------------------------------*/
59
60static const struct acpi_device_id processor_device_ids[] = {
61	{ACPI_PROCESSOR_OBJECT_HID, 0},
62	{ACPI_PROCESSOR_DEVICE_HID, 0},
63	{"", 0},
64};
65
66static struct acpi_driver xen_stub_processor_driver = {
67	/* same name as native processor driver to block native loaded */
68	.name = "processor",
69	.class = ACPI_PROCESSOR_CLASS,
70	.ids = processor_device_ids,
71};
72
73int xen_stub_processor_init(void)
74{
75	if (!xen_initial_domain())
76		return -ENODEV;
77
78	/* just reserve space for Xen, block native driver loaded */
79	return acpi_bus_register_driver(&xen_stub_processor_driver);
80}
81EXPORT_SYMBOL_GPL(xen_stub_processor_init);
82subsys_initcall(xen_stub_processor_init);
83
84void xen_stub_processor_exit(void)
85{
86	acpi_bus_unregister_driver(&xen_stub_processor_driver);
87}
88EXPORT_SYMBOL_GPL(xen_stub_processor_exit);
89
90#endif
v4.6
 
  1/*
  2 * xen-stub.c - stub drivers to reserve space for Xen
  3 *
  4 * Copyright (C) 2012 Intel Corporation
  5 *    Author: Liu Jinsong <jinsong.liu@intel.com>
  6 *    Author: Jiang Yunhong <yunhong.jiang@intel.com>
  7 *
  8 * Copyright (C) 2012 Oracle Inc
  9 *    Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
 10 *
 11 * This program is free software; you can redistribute it and/or modify
 12 * it under the terms of the GNU General Public License as published by
 13 * the Free Software Foundation; either version 2 of the License, or (at
 14 * your option) any later version.
 15 *
 16 * This program is distributed in the hope that it will be useful, but
 17 * WITHOUT ANY WARRANTY; without even the implied warranty of
 18 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
 19 * NON INFRINGEMENT.  See the GNU General Public License for more
 20 * details.
 21 */
 22
 23#include <linux/kernel.h>
 24#include <linux/init.h>
 25#include <linux/export.h>
 26#include <linux/types.h>
 27#include <linux/acpi.h>
 28#include <xen/acpi.h>
 29
 30#ifdef CONFIG_ACPI
 31
 32/*--------------------------------------------
 33	stub driver for Xen memory hotplug
 34--------------------------------------------*/
 35
 36static const struct acpi_device_id memory_device_ids[] = {
 37	{ACPI_MEMORY_DEVICE_HID, 0},
 38	{"", 0},
 39};
 40
 41static struct acpi_driver xen_stub_memory_device_driver = {
 42	/* same name as native memory driver to block native loaded */
 43	.name = "acpi_memhotplug",
 44	.class = ACPI_MEMORY_DEVICE_CLASS,
 45	.ids = memory_device_ids,
 46};
 47
 48int xen_stub_memory_device_init(void)
 49{
 50	if (!xen_initial_domain())
 51		return -ENODEV;
 52
 53	/* just reserve space for Xen, block native driver loaded */
 54	return acpi_bus_register_driver(&xen_stub_memory_device_driver);
 55}
 56EXPORT_SYMBOL_GPL(xen_stub_memory_device_init);
 57subsys_initcall(xen_stub_memory_device_init);
 58
 59void xen_stub_memory_device_exit(void)
 60{
 61	acpi_bus_unregister_driver(&xen_stub_memory_device_driver);
 62}
 63EXPORT_SYMBOL_GPL(xen_stub_memory_device_exit);
 64
 65
 66/*--------------------------------------------
 67	stub driver for Xen cpu hotplug
 68--------------------------------------------*/
 69
 70static const struct acpi_device_id processor_device_ids[] = {
 71	{ACPI_PROCESSOR_OBJECT_HID, 0},
 72	{ACPI_PROCESSOR_DEVICE_HID, 0},
 73	{"", 0},
 74};
 75
 76static struct acpi_driver xen_stub_processor_driver = {
 77	/* same name as native processor driver to block native loaded */
 78	.name = "processor",
 79	.class = ACPI_PROCESSOR_CLASS,
 80	.ids = processor_device_ids,
 81};
 82
 83int xen_stub_processor_init(void)
 84{
 85	if (!xen_initial_domain())
 86		return -ENODEV;
 87
 88	/* just reserve space for Xen, block native driver loaded */
 89	return acpi_bus_register_driver(&xen_stub_processor_driver);
 90}
 91EXPORT_SYMBOL_GPL(xen_stub_processor_init);
 92subsys_initcall(xen_stub_processor_init);
 93
 94void xen_stub_processor_exit(void)
 95{
 96	acpi_bus_unregister_driver(&xen_stub_processor_driver);
 97}
 98EXPORT_SYMBOL_GPL(xen_stub_processor_exit);
 99
100#endif