diff options
Diffstat (limited to 'drivers/pci/pci-stub.c')
| -rw-r--r-- | drivers/pci/pci-stub.c | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/pci/pci-stub.c b/drivers/pci/pci-stub.c index f7b68ca6cc9..886fb357027 100644 --- a/drivers/pci/pci-stub.c +++ b/drivers/pci/pci-stub.c @@ -2,13 +2,13 @@   *   * Copyright (C) 2008 Red Hat, Inc.   * Author: - * 	Chris Wright + *	Chris Wright   *   * This work is licensed under the terms of the GNU GPL, version 2.   *   * Usage is simple, allocate a new id to the stub driver and bind the   * device to it.  For example: - *  + *   * # echo "8086 10f5" > /sys/bus/pci/drivers/pci-stub/new_id   * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind   * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind @@ -28,7 +28,7 @@ MODULE_PARM_DESC(ids, "Initial PCI IDs to add to the stub driver, format is "  static int pci_stub_probe(struct pci_dev *dev, const struct pci_device_id *id)  { -	dev_printk(KERN_INFO, &dev->dev, "claimed by stub\n"); +	dev_info(&dev->dev, "claimed by stub\n");  	return 0;  } @@ -47,13 +47,20 @@ static int __init pci_stub_init(void)  	if (rc)  		return rc; +	/* no ids passed actually */ +	if (ids[0] == '\0') +		return 0; +  	/* add ids specified in the module parameter */  	p = ids;  	while ((id = strsep(&p, ","))) {  		unsigned int vendor, device, subvendor = PCI_ANY_ID, -			subdevice = PCI_ANY_ID, class=0, class_mask=0; +			subdevice = PCI_ANY_ID, class = 0, class_mask = 0;  		int fields; +		if (!strlen(id)) +			continue; +  		fields = sscanf(id, "%x:%x:%x:%x:%x:%x",  				&vendor, &device, &subvendor, &subdevice,  				&class, &class_mask);  | 
