Ingo Oeser schrieb: > > +static void niu_init_xif(struct niu *); > > + > > +static int link_status_10g(struct niu *np, int *link_up_p) > > +{ > > + unsigned long flags; > > + int err, link_up; > > + > > + if (np->link_config.loopback_mode != LOOPBACK_DISABLED) > > + return -EINVAL; > > + > > + link_up = 0; > > + > > + spin_lock_irqsave(&np->lock, flags); > > + > > + err = mdio_read(np, np->phy_addr, BCM8704_PMA_PMD_DEV_ADDR, > > + BCM8704_PMD_RCV_SIGDET); > > + if (err < 0) > > + return err; > > missing spin_unlock_irqsave()?
I mean spin_unlock_irqrestore() > > + if (!(err & PMD_RCV_SIGDET_GLOBAL)) > > + goto out; > > + > > + err = mdio_read(np, np->phy_addr, BCM8704_PCS_DEV_ADDR, > > + BCM8704_PCS_10G_R_STATUS); > > + if (err < 0) > > + return err; > missing spin_unlock_irqsave()? I mean spin_unlock_irqrestore() > > + if (!(err & PCS_10G_R_STATUS_BLK_LOCK)) > > + goto out; > > + > > + err = mdio_read(np, np->phy_addr, BCM8704_PHYXS_DEV_ADDR, > > + BCM8704_PHYXS_XGXS_LANE_STAT); > > + if (err < 0) > > + return err; > > + > > + if (err != (PHYXS_XGXS_LANE_STAT_ALINGED | > > + PHYXS_XGXS_LANE_STAT_MAGIC | > > + PHYXS_XGXS_LANE_STAT_LANE3 | > > + PHYXS_XGXS_LANE_STAT_LANE2 | > > + PHYXS_XGXS_LANE_STAT_LANE1 | > > + PHYXS_XGXS_LANE_STAT_LANE0)) > > + goto out; > > + > > + link_up = 1; > > + np->link_config.active_speed = SPEED_10000; > > + np->link_config.active_duplex = DUPLEX_FULL; > > + > > +out: > > + spin_unlock_irqrestore(&np->lock, flags); > > + > > + *link_up_p = link_up; > > + return 0; > > +} > Ok, enough for today... Best Regards Ingo Oeser - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html