> +static inline void enetc_lock_mdio(void)
> +{
> +     read_lock(&enetc_mdio_lock);
> +}
> +

> +static inline u32 _enetc_rd_mdio_reg_wa(void __iomem *reg)
> +{
> +     unsigned long flags;
> +     u32 val;
> +
> +     write_lock_irqsave(&enetc_mdio_lock, flags);
> +     val = ioread32(reg);
> +     write_unlock_irqrestore(&enetc_mdio_lock, flags);
> +
> +     return val;
> +}

Can you mix read_lock() with write_lock_irqsave()?  Normal locks you
should not mix, so i assume read/writes also cannot be mixed?

       Andrew

Reply via email to