On Mon, Jan 17, 2005 at 02:01:52PM -0800, Greg KH wrote:
> +int pcie_port_device_register(struct pci_dev *dev)
> +{
> +     struct pcie_device *parent;
> +     int status, type, capabilities, irq_mode, i;
> +     int vectors[PCIE_PORT_DEVICE_MAXSERVICES];
> +     u16 reg16;
> +
> +     /* Get port type */
> +     pci_read_config_word(dev, 
> +             pci_find_capability(dev, PCI_CAP_ID_EXP) + 
> +             PCIE_CAPABILITIES_REG, &reg16);
> +     type = (reg16 >> 4) & PORT_TYPE_MASK;
> +
> +     /* Now get port services */
> +     capabilities = get_port_device_capability(dev);
> +     irq_mode = assign_interrupt_mode(dev, vectors, capabilities);
> +
> +     /* Allocate parent */
> +     parent = alloc_pcie_device(NULL, dev, type, 0, dev->irq, irq_mode);
> +     if (!parent) 
> +             return -ENOMEM;
> +     
> +     status = device_register(&parent->device);
> +     if (status) {
> +             kfree(parent);
> +             return status;
> +     }


This puts all of the pcie "port" structures in /sys/devices/  Shouldn't
you make the parent of the device you create point to the pci_dev
structure that's passed into this function?  That would make the sysfs
tree a lot saner I think.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to