https://bugzilla.novell.com/show_bug.cgi?id=487557
User dieter.jurzitza@t-online.de added comment
https://bugzilla.novell.com/show_bug.cgi?id=487557#c2
Dieter Jurzitza
From driver version 10 to driver version 11 the following change had been integrated:
r8101_n.c / line 2860 pci_read_config_byte(pdev, 0x80, &data); if (data & ((1 << 1) | (1 << 0))) { rtl8101_request_link_down_check_timer(dev); } This used to be simply rtl8101_request_link_down_check_timer(dev); The "if" condition forces the last two bits of "data" to be "1" in order to call rtl8101_request_link_down_check_timer(), but if you monitor the return value of pci_read_config_byte(pdev, 0x80, &data) in "data" you find that it often returns "64" what ends up in the link down check function not to be called and hangs the machine. Patch attached, simply revert to what used to be the case for the driver revision "10". By the way: it looks _very_ strange to hide the number 3 behind two shift commands. Cannot understand why that would make sense. if (data & ((1 << 1) | (1 << 0))) { is identical to if (data & 0x03) { ... Anyway, patch attached, thank you for looking into this, take care Dieter Jurzitza -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.