git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
xen
/
pciback
/
conf_space_header.c
diff --git
a/drivers/xen/pciback/conf_space_header.c
b/drivers/xen/pciback/conf_space_header.c
index
61089c6
..
a7c07a9
100644
(file)
--- a/
drivers/xen/pciback/conf_space_header.c
+++ b/
drivers/xen/pciback/conf_space_header.c
@@
-20,12
+20,13
@@
struct pci_bar_info {
static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
{
static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
{
- if (!
dev->is_enabled
&& is_enable_cmd(value)) {
+ if (!
atomic_read(&dev->enable_cnt)
&& is_enable_cmd(value)) {
if (unlikely(verbose_request))
printk(KERN_DEBUG "pciback: %s: enable\n",
pci_name(dev));
if (unlikely(verbose_request))
printk(KERN_DEBUG "pciback: %s: enable\n",
pci_name(dev));
- pci_enable_device(dev);
- } else if (dev->is_enabled && !is_enable_cmd(value)) {
+ if (pci_enable_device(dev))
+ return -ENODEV;
+ } else if (atomic_read(&dev->enable_cnt) && !is_enable_cmd(value)) {
if (unlikely(verbose_request))
printk(KERN_DEBUG "pciback: %s: disable\n",
pci_name(dev));
if (unlikely(verbose_request))
printk(KERN_DEBUG "pciback: %s: disable\n",
pci_name(dev));
@@
-44,7
+45,8
@@
static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
printk(KERN_DEBUG
"pciback: %s: enable memory-write-invalidate\n",
pci_name(dev));
printk(KERN_DEBUG
"pciback: %s: enable memory-write-invalidate\n",
pci_name(dev));
- pci_set_mwi(dev);
+ if (pci_set_mwi(dev))
+ return -EINVAL;
}
return pci_write_config_word(dev, offset, value);
}
return pci_write_config_word(dev, offset, value);