if (err == -EIO) { 
if (err == -EIO && priv->nicbuf_size > TX_NICBUF_SIZE_BUG) { 
int orinoco_reinit_firmware(struct net_device *dev){	struct orinoco_private *priv = netdev_priv(dev);	struct hermes *hw = &priv->hw;	int err;	err = hermes_init(hw);	if (err)		return err;	err = hermes_allocate(hw, priv->nicbuf_size, &priv->txfid);	if (err == -EIO) {		/* Try workaround for old Symbol firmware bug */		printk(KERN_WARNING "%s: firmware ALLOC bug detected "		       "(old Symbol firmware?). Trying to work around... ",		       dev->name);				priv->nicbuf_size = TX_NICBUF_SIZE_BUG;		err = hermes_allocate(hw, priv->nicbuf_size, &priv->txfid);		if (err)			printk("failed!\n");		else			printk("ok.\n");	}	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b24d4582fd93f3654d0a0a89f85e95140efc7fd4/orinoco.c/buggy/drivers/net/wireless/orinoco.c