Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 402c5e15 authored by Jan Beulich's avatar Jan Beulich Committed by Konrad Rzeszutek Wilk
Browse files

xen/pciback: miscellaneous adjustments



This is a minor bugfix and a set of small cleanups; as it is not clear
whether this needs splitting into pieces (and if so, at what
granularity), it is a single combined patch.
- add a missing return statement to an error path in
  kill_domain_by_device()
- use pci_is_enabled() rather than raw atomic_read()
- remove a bogus attempt to zero-terminate an already zero-terminated
  string
- #define DRV_NAME once uniformly in the shared local header
- make DRIVER_ATTR() variables static
- eliminate a pointless use of list_for_each_entry_safe()
- add MODULE_ALIAS()
- a little bit of constification
- adjust a few messages
- remove stray semicolons from inline function definitions

Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
[v1: Dropped the resource_size fix, altered the description]
[v2: Fixed cleanpatch.pl comments]
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 04df3552
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
#include "conf_space.h"
#include "conf_space_quirks.h"

#define DRV_NAME	"xen-pciback"
static int permissive;
module_param(permissive, bool, 0644);

+1 −2
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@ struct pci_bar_info {
	int which;
};

#define DRV_NAME	"xen-pciback"
#define is_enable_cmd(value) ((value)&(PCI_COMMAND_MEMORY|PCI_COMMAND_IO))
#define is_master_cmd(value) ((value)&PCI_COMMAND_MASTER)

@@ -25,7 +24,7 @@ static int command_read(struct pci_dev *dev, int offset, u16 *value, void *data)
	int ret;

	ret = xen_pcibk_read_config_word(dev, offset, value, data);
	if (!atomic_read(&dev->enable_cnt))
	if (!pci_is_enabled(dev))
		return ret;

	for (i = 0; i < PCI_ROM_RESOURCE; i++) {
+1 −2
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@
#include "conf_space_quirks.h"

LIST_HEAD(xen_pcibk_quirks);
#define	DRV_NAME	"xen-pciback"
static inline const struct pci_device_id *
match_one_device(const struct pci_device_id *id, const struct pci_dev *dev)
{
@@ -36,7 +35,7 @@ static struct xen_pcibk_config_quirk *xen_pcibk_find_quirk(struct pci_dev *dev)
			goto out;
	tmp_quirk = NULL;
	printk(KERN_DEBUG DRV_NAME
	       ":quirk didn't match any device xen_pciback knows about\n");
	       ": quirk didn't match any device known\n");
out:
	return tmp_quirk;
}
+1 −1
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ static int __xen_pcibk_get_pcifront_dev(struct pci_dev *pcidev,
	return 1;
}

struct xen_pcibk_backend xen_pcibk_passthrough_backend = {
const struct xen_pcibk_backend xen_pcibk_passthrough_backend = {
	.name           = "passthrough",
	.init           = __xen_pcibk_init_devices,
	.free		= __xen_pcibk_release_devices,
+16 −18
Original line number Diff line number Diff line
@@ -21,8 +21,6 @@
#include "conf_space.h"
#include "conf_space_quirks.h"

#define DRV_NAME	"xen-pciback"

static char *pci_devs_to_hide;
wait_queue_head_t xen_pcibk_aer_wait_queue;
/*Add sem for sync AER handling and xen_pcibk remove/reconfigue ops,
@@ -514,12 +512,14 @@ static void kill_domain_by_device(struct pcistub_device *psdev)
	int err;
	char nodename[PCI_NODENAME_MAX];

	if (!psdev)
	if (!psdev) {
		dev_err(&psdev->dev->dev,
			"device is NULL when do AER recovery/kill_domain\n");
		return;
	}

	snprintf(nodename, PCI_NODENAME_MAX, "/local/domain/0/backend/pci/%d/0",
		psdev->pdev->xdev->otherend_id);
	nodename[strlen(nodename)] = '\0';

again:
	err = xenbus_transaction_start(&xbt);
@@ -605,7 +605,7 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
	if (test_bit(_XEN_PCIF_active,
		(unsigned long *)&psdev->pdev->sh_info->flags)) {
		dev_dbg(&psdev->dev->dev,
			"schedule pci_conf service in xen_pcibk\n");
			"schedule pci_conf service in " DRV_NAME "\n");
		xen_pcibk_test_and_schedule_op(psdev->pdev);
	}

@@ -995,8 +995,7 @@ static ssize_t pcistub_slot_add(struct device_driver *drv, const char *buf,
		err = count;
	return err;
}

DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add);
static DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add);

static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf,
				   size_t count)
@@ -1015,8 +1014,7 @@ static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf,
		err = count;
	return err;
}

DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove);
static DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove);

static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)
{
@@ -1039,8 +1037,7 @@ static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf)

	return count;
}

DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL);
static DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL);

static ssize_t pcistub_irq_handler_show(struct device_driver *drv, char *buf)
{
@@ -1069,8 +1066,7 @@ static ssize_t pcistub_irq_handler_show(struct device_driver *drv, char *buf)
	spin_unlock_irqrestore(&pcistub_devices_lock, flags);
	return count;
}

DRIVER_ATTR(irq_handlers, S_IRUSR, pcistub_irq_handler_show, NULL);
static DRIVER_ATTR(irq_handlers, S_IRUSR, pcistub_irq_handler_show, NULL);

static ssize_t pcistub_irq_handler_switch(struct device_driver *drv,
					  const char *buf,
@@ -1106,7 +1102,8 @@ static ssize_t pcistub_irq_handler_switch(struct device_driver *drv,
		err = count;
	return err;
}
DRIVER_ATTR(irq_handler_state, S_IWUSR, NULL, pcistub_irq_handler_switch);
static DRIVER_ATTR(irq_handler_state, S_IWUSR, NULL,
		   pcistub_irq_handler_switch);

static ssize_t pcistub_quirk_add(struct device_driver *drv, const char *buf,
				 size_t count)
@@ -1170,8 +1167,8 @@ static ssize_t pcistub_quirk_show(struct device_driver *drv, char *buf)

	return count;
}

DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show, pcistub_quirk_add);
static DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show,
		   pcistub_quirk_add);

static ssize_t permissive_add(struct device_driver *drv, const char *buf,
			      size_t count)
@@ -1236,8 +1233,8 @@ static ssize_t permissive_show(struct device_driver *drv, char *buf)
	spin_unlock_irqrestore(&pcistub_devices_lock, flags);
	return count;
}

DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show, permissive_add);
static DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show,
		   permissive_add);

static void pcistub_exit(void)
{
@@ -1374,3 +1371,4 @@ module_init(xen_pcibk_init);
module_exit(xen_pcibk_cleanup);

MODULE_LICENSE("Dual BSD/GPL");
MODULE_ALIAS("xen-backend:pci");
Loading