Module Name: src Committed By: msaitoh Date: Wed Feb 6 04:14:03 UTC 2019
Modified Files: src/sys/dev/pci: if_cas.c Log Message: Fix a bug that all ports' MAC address become the last port's address on Non-OF environment. The Saturn multi port card has only one VPD ROM and all ports share it. If the card has four port, it has four "local-mac-address" entries. Before this commit, the code keep the last one and use it for all ports. The Saturn four port card has three bridge. e.g. ---------------- 003:02:0: Intel S21152BA,S21154AE/BE PCI-PCI Bridge (PCI bridge) 004:00:0: Intel S21152BA,S21154AE/BE PCI-PCI Bridge (PCI bridge) 004:04:0: Intel S21152BA,S21154AE/BE PCI-PCI Bridge (PCI bridge) 005:00:0: National Semiconductor Saturn (ethernet network, revision 0x30) 005:01:0: National Semiconductor Saturn (ethernet network, revision 0x30) 006:02:0: National Semiconductor Saturn (ethernet network, revision 0x30) 006:03:0: National Semiconductor Saturn (ethernet network, revision 0x30) ---------------- The card assign each port's PCI device number to match the port number. Use it as the offset of "local-mac-address". Almost the same as FreeBSD. OK'd by mrg and martin. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/pci/if_cas.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.