Description of problem: It is impossible to use the adaptive load balancing (ALB) mode of the Linux bonding driver with the tg3 base driver because the tg3 driver doesn't support changing the MAC address of a running interface. Version-Release number of selected component (if applicable): 2.4.21-9.EL and earlier How reproducible: always Steps to Reproduce: 1.install system with Broadcom NIC and tg3 2.configure bonding driver with mode=6 using the Broadcom NIC Actual results: the following error message: bonding: Error: alb_set_mac_addr: dev->set_mac_address of dev eth0 failed! ALB mode requires that the base driver support setting the hw address also when the network device's interface is open Expected results: ALB mode works. Additional info: Works with Broadcomn's bcm5700 driver, thus it is no Hardware problem The following lines in tg3_set_mac_addr() (tg3.c line 4523f.) seem to be responsible: if (netif_running(dev)) return -EBUSY;
Yes, that test is not needed at all, the fix is to simply remove those two lines.
Created attachment 98376 [details] fix for MAC setting bug
Great, thanks.
When will this part become part of an official RHEL kernel?
The tg3 driver has just been upgraded to v3.1 in tonight's respin of RHEL3 U2 (kernel version 2.4.21-13.EL) to address this problem.
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2004-188.html