DF-4940 / run.log
DF-4940 run.log โ full transcript of the decisive runs (guest ssh, root) ========================================================================= [stack: lpbbfake.ko + iicbb + iicbus + if_ic loaded; ic0 configured UP] === B.step1: bring ic0 down (normal) === # ifconfig ic0 down # ifconfig ic0 | head -1 ic0: flags=808810<POINTOPOINT,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 (no UP, no RUNNING) === B.step2: TX while interface is DOWN === # ping -c 1 -t 3 10.99.99.2 --- 10.99.99.2 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss === B.step3: flags after TX while DOWN === # ifconfig ic0 | head -1 ic0: flags=808850<POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 *** BUG: RUNNING SET while interface is DOWN (if_ic.c:347) *** # netstat -I ic0 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll ic0 1500 10.99.99.0/30 10.99.99.1 0 - 1 - - (Opkts=1: the packet was transmitted through icoutput over the un-owned iicbus) === B.step5: bring UP -- allocation must be skipped because RUNNING was forced === # ifconfig ic0 up # ifconfig ic0 | head -1 ic0: flags=808851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 before-up: devbuf 819 1.09M 0 390M 832 after-up: devbuf 819 1.09M 0 390M 832 *** BUG: up branch skipped โ NO buffer allocation, NO iicbus_request_bus *** === B.step6: control โ normal down/up cycle DOES allocate === ctl-before-up: devbuf 819 1.09M 0 390M 832 ctl-after-up: devbuf 821 1.09M 0 390M 834 (+2 = ic_obuf + ic_ifbuf; proves the skipped allocation in step5 is the bug) ========================================================================= FIX VALIDATION (fix.diff; if_ic.ko rebuilt on guest /usr/src copy, rebooted) ========================================================================= === fixB.step1: down === ic0: flags=808810<POINTOPOINT,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 === fixB.step2: TX while down === ping: sendto: Network is down 1 packets transmitted, 0 packets received, 100.0% packet loss === fixB.step3: flags after TX-while-down (RUNNING must be ABSENT) === ic0: flags=808810<POINTOPOINT,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 (NO phantom RUNNING โ bad behavior GONE; driver returns ENETDOWN) === fixB.step4: up works properly === before-up: devbuf 219 214K / after-up: devbuf 219 214K (buffers REUSED per DF-4939 fix, no leak) ic0: flags=808851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST,PROXY> metric 0 mtu 1500 (proper UP+RUNNING transition restored) netstat -I ic0: Oerrs 1 (the rejected down-TX), Opkts 1 (from the valid earlier session)