xen-pciback: fold read_dev_bar() into its now single caller
Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>hifive-unleashed-5.1
parent
664093bb6b
commit
6ad2655d87
|
@ -209,11 +209,14 @@ static int bar_read(struct pci_dev *dev, int offset, u32 * value, void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void read_dev_bar(struct pci_dev *dev,
|
static void *bar_init(struct pci_dev *dev, int offset)
|
||||||
struct pci_bar_info *bar_info, int offset)
|
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
struct resource *res = dev->resource;
|
struct resource *res = dev->resource;
|
||||||
|
struct pci_bar_info *bar = kzalloc(sizeof(*bar), GFP_KERNEL);
|
||||||
|
|
||||||
|
if (!bar)
|
||||||
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
if (offset == PCI_ROM_ADDRESS || offset == PCI_ROM_ADDRESS1)
|
if (offset == PCI_ROM_ADDRESS || offset == PCI_ROM_ADDRESS1)
|
||||||
pos = PCI_ROM_RESOURCE;
|
pos = PCI_ROM_RESOURCE;
|
||||||
|
@ -223,31 +226,21 @@ static inline void read_dev_bar(struct pci_dev *dev,
|
||||||
PCI_BASE_ADDRESS_MEM_TYPE_MASK)) ==
|
PCI_BASE_ADDRESS_MEM_TYPE_MASK)) ==
|
||||||
(PCI_BASE_ADDRESS_SPACE_MEMORY |
|
(PCI_BASE_ADDRESS_SPACE_MEMORY |
|
||||||
PCI_BASE_ADDRESS_MEM_TYPE_64))) {
|
PCI_BASE_ADDRESS_MEM_TYPE_64))) {
|
||||||
bar_info->val = res[pos - 1].start >> 32;
|
bar->val = res[pos - 1].start >> 32;
|
||||||
bar_info->len_val = -resource_size(&res[pos - 1]) >> 32;
|
bar->len_val = -resource_size(&res[pos - 1]) >> 32;
|
||||||
return;
|
return bar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!res[pos].flags ||
|
if (!res[pos].flags ||
|
||||||
(res[pos].flags & (IORESOURCE_DISABLED | IORESOURCE_UNSET |
|
(res[pos].flags & (IORESOURCE_DISABLED | IORESOURCE_UNSET |
|
||||||
IORESOURCE_BUSY)))
|
IORESOURCE_BUSY)))
|
||||||
return;
|
return bar;
|
||||||
|
|
||||||
bar_info->val = res[pos].start |
|
bar->val = res[pos].start |
|
||||||
(res[pos].flags & PCI_REGION_FLAG_MASK);
|
(res[pos].flags & PCI_REGION_FLAG_MASK);
|
||||||
bar_info->len_val = -resource_size(&res[pos]) |
|
bar->len_val = -resource_size(&res[pos]) |
|
||||||
(res[pos].flags & PCI_REGION_FLAG_MASK);
|
(res[pos].flags & PCI_REGION_FLAG_MASK);
|
||||||
}
|
|
||||||
|
|
||||||
static void *bar_init(struct pci_dev *dev, int offset)
|
|
||||||
{
|
|
||||||
struct pci_bar_info *bar = kzalloc(sizeof(*bar), GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!bar)
|
|
||||||
return ERR_PTR(-ENOMEM);
|
|
||||||
|
|
||||||
read_dev_bar(dev, bar, offset);
|
|
||||||
|
|
||||||
return bar;
|
return bar;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue