More on the Orinoco + XI-825 + StrongARM platform...
Ben Greear
greearb at candelatech.com
Mon Feb 25 17:11:13 EST 2002
David Gibson wrote:
>>I added some __packed__ attributes to some structures, and now I
>>rarely get this error above (and it works fine on the strongarm
>>w/out compiling with the compile hack!)
>>
>
> Ok, where did you add these, precisely. I thought I already had
> __packed__ attributes in the relevant places, but apparently not.
I've changed a lot of things, and it's still broken (locks up
after about 8 hours of ping -f (locked up the laptop doing
the pings, as well...interesting). I put the reset code
in:
/* Request an interrupt on Tx failures, but not sucesses (we
use the buffer reclaim allocation event instead */
memset(&desc, 0, sizeof(desc));
desc.tx_control = cpu_to_le16(HERMES_TXCTRL_TX_OK | HERMES_TXCTRL_TX_EX);
err = hermes_bap_pwrite(hw, USER_BAP, &desc, sizeof(desc), txfid, 0);
if (err) {
printk(KERN_ERR "%s: Error %d writing Tx descriptor to BAP\n",
dev->name, err);
stats->tx_errors++;
if (err == -ETIMEDOUT) {
if (++priv->timed_out_errors > MAX_ORINOCO_TIMEOUTS) {
printk(KERN_DEBUG "%s: Forcing reset due to %d timeouts!\n",
priv->timed_out_errors, dev->name);
/* We need the xmit lock because it protects the
multicast list which orinoco_reset() reads */
/* Assuming we already have the lock since this is in
the transmit method itself... --Ben */
/* spin_lock_bh(&dev->xmit_lock); */
orinoco_reset(priv);
/* spin_unlock_bh(&dev->xmit_lock); */
priv->timed_out_errors = 0;
}
}
goto fail;
}
else {
priv->timed_out_errors = 0;
}
However, this caused a panic, so I must not be doing something
right...
I'll be sure to send you a diff when I get things working a
little better...
Thanks,
Ben
--
Ben Greear <greearb at candelatech.com> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear
More information about the wireless
mailing list