The previous version was obviously wrong: as Andriy Gapon pointed
out, we assign twice to t->dev, but never to t->func.
Not tested, though, as I have no FreeBSD system at hand.
t = pci_alloc_dev(a);
t->bus = matches[i].pc_sel.pc_bus;
t->dev = matches[i].pc_sel.pc_dev;
- t->dev = matches[i].pc_sel.pc_dev;
+ t->func = matches[i].pc_sel.pc_func;
t->domain = matches[i].pc_sel.pc_domain;
t->domain_16 = matches[i].pc_sel.pc_domain;
t->vendor_id = matches[i].pc_vendor;