From: Marcelo B. <mo...@mo...> - 2005-09-07 03:33:47
|
On Tue, Sep 06, 2005 at 09:02:43AM +0300, Denis Vlasenko wrote: > Marcelo can you narrow it down to specific 2.6.N or even -rcN? I'll try to do that tomorow, but last time I tried to recompile 2.6.10, it failed, probably due to newer binutils in debian sid. Anyway, I'll try to install an older toolchain to recompile 2.6.10. > Note that the very latest byte (15'th) of this area got zeroed. > I would be suspecting firmware bug, but if it works on 2.6.10... I tried some other firmwares from the wiki and they either didn't work at all (2.3.1.34) or failed the same way as 1.2.1.34. > I suggest adding printks and maybe even: > > if ((header >> 48) == 0x00ff) { > printk("CORRUPTION DETECTED! header=%p\n", header); > header |= (0xff000000L << 32); > } > I did that and it still oopsed, so I reverted to just returnin NULL, at least it doesn't kill the machine and I can avoid rebooting. By the way, I generated some logs with debug=0x20 This is the last hostdesc printed before we find a corruption, it seems to be corrupting when we return the the beggining of the ring buffer. hostdesc=ffff81002e2d57c0 1001dbbee ==> acx_l_ether_to_txbuf 1001dbbee <== acx_l_ether_to_txbuf: 000005FC 1001dbbee ==> acxpci_l_tx_data 1001dbbee <== acxpci_l_tx_data 1001dbbee <== acx_i_start_xmit: 00000000 1001dbbfb ==> acx_i_interrupt 1001dbbfb ==> acx_l_clean_tx_desc 1001dbbfb <== acx_l_clean_tx_desc: 00000008 1001dbbfb <== acx_i_interrupt 1001dbbfd ==> acx_i_interrupt 1001dbbfd ==> acx_l_process_rx_desc 1001dbbfd ==> acx_l_rx_ieee802_11_frame 1001dbbfd ==> acx_l_process_data_frame_client 1001dbbfd ==> acx_l_rx 1001dbbfd ==> acx_rxbuf_to_ether 1001dbbfd <== acx_rxbuf_to_ether 1001dbbfd <== acx_l_rx 1001dbbfd <== acx_l_process_data_frame_client: 00000000 1001dbbfd <== acx_l_rx_ieee802_11_frame: 00000000 1001dbbfd <== acx_l_process_rx_desc 1001dbbfd <== acx_i_interrupt 1001dbc1e ==> acx_i_interrupt 1001dbc1e ==> acx_l_process_rx_desc 1001dbc1e ==> acx_l_rx_ieee802_11_frame 1001dbc1e ==> acx_l_process_mgmt_frame 1001dbc1e ==> acx_l_process_probe_response 1001dbc1e ==> acx_l_sta_list_get 1001dbc1e <== acx_l_sta_list_get 1001dbc1e <== acx_l_process_probe_response 1001dbc1e <== acx_l_process_mgmt_frame: 00000000 1001dbc1e <== acx_l_rx_ieee802_11_frame: 00000000 1001dbc1e <== acx_l_process_rx_desc 1001dbc1e <== acx_i_interrupt 1001dbc4e ==> acx_i_interrupt 1001dbc4e ==> acx_l_process_rx_desc 1001dbc4e ==> acx_l_rx_ieee802_11_frame 1001dbc4e ==> acx_l_process_data_frame_client 1001dbc4e ==> acx_l_rx 1001dbc4e ==> acx_rxbuf_to_ether 1001dbc4e <== acx_rxbuf_to_ether 1001dbc4e <== acx_l_rx 1001dbc4e <== acx_l_process_data_frame_client: 00000000 1001dbc4e <== acx_l_rx_ieee802_11_frame: 00000000 1001dbc4e <== acx_l_process_rx_desc 1001dbc4e <== acx_i_interrupt 1001dbc4e ==> acx_i_start_xmit 1001dbc4e ==> acxpci_l_alloc_tx 1001dbc4e <== acxpci_l_alloc_tx CORRUPTION DETECTED! hostdesc=00ff81002e2d5000 1001dbc4e <== acx_i_start_xmit: 00000001 |