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, ®16); > + 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/