Re: [PATCH 1/6 v3] PCI: export some functions and macros

From: Jesse Barnes
Date: Wed Oct 01 2008 - 12:53:25 EST


On Saturday, September 27, 2008 1:27 am Zhao, Yu wrote:
> Export some functions and move some macros from c file to header file.
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 9c71858..f99160d 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -696,7 +696,7 @@ static struct bin_attribute pci_config_attr = {
> .name = "config",
> .mode = S_IRUGO | S_IWUSR,
> },
> - .size = 256,
> + .size = PCI_CFG_SPACE_SIZE,
> .read = pci_read_config,
> .write = pci_write_config,

I just pushed Yanmin's cleanups here, can you separate out the rest of your
config space size changes and push them separately?


> extern int pci_uevent(struct device *dev, struct kobj_uevent_env *env);
> @@ -144,3 +150,17 @@ struct pci_slot_attribute {
> };
> #define to_pci_slot_attr(s) container_of(s, struct pci_slot_attribute,
> attr)
>
> +enum pci_bar_type {
> + pci_bar_unknown, /* Standard PCI BAR probe */
> + pci_bar_io, /* An io port BAR */
> + pci_bar_mem32, /* A 32-bit memory BAR */
> + pci_bar_mem64, /* A 64-bit memory BAR */
> + pci_bar_rom, /* A ROM BAR */
> +};
> +
> +extern int pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
> + struct resource *res, unsigned int reg);
> +extern struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
> + struct pci_dev *bridge, int busnr);
> +
> +#endif /* DRIVERS_PCI_H */

See Matthew's comments here; the pci_read_base changes should be part of a
separate patch too.

> a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> index 3abbfad..6c78cf8 100644
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -299,7 +299,7 @@ static void pbus_size_io(struct pci_bus *bus)
>
> if (r->parent || !(r->flags & IORESOURCE_IO))
> continue;
> - r_size = r->end - r->start + 1;
> + r_size = resource_size(r);
>
> if (r_size < 0x400)
> /* Might be re-aligned for ISA */
> @@ -350,7 +350,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned
> long mask, unsigned long
>
> if (r->parent || (r->flags & mask) != type)
> continue;
> - r_size = r->end - r->start + 1;
> + r_size = resource_size(r);
> /* For bridges size != alignment */
> align = resource_alignment(r);
> order = __ffs(align) - 20;
> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> index 1a5fc83..56e4042 100644
> --- a/drivers/pci/setup-res.c
> +++ b/drivers/pci/setup-res.c
> @@ -133,7 +133,7 @@ int pci_assign_resource(struct pci_dev *dev, int resno)
> resource_size_t size, min, align;
> int ret;
>
> - size = res->end - res->start + 1;
> + size = resource_size(res);
> min = (res->flags & IORESOURCE_IO) ? PCIBIOS_MIN_IO :
> PCIBIOS_MIN_MEM;
>
> align = resource_alignment(res);


These resource_size changes seem like good cleanups by themselves, can you
separate them out into a separate patch?

> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 98dc624..cc78be6 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -456,8 +456,8 @@ struct pci_driver {
>
> /**
> * PCI_VDEVICE - macro used to describe a specific pci device in short
> form - * @vend: the vendor name
> - * @dev: the 16 bit PCI Device ID
> + * @vendor: the vendor name
> + * @device: the 16 bit PCI Device ID
> *
> * This macro is used to create a struct pci_device_id that matches a
> * specific PCI device. The subvendor, and subdevice fields will be set

Another good standalone cleanup, please submit separately.

Thanks,
--
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/