On Monday 18 April 2011, Richard Cochran wrote: > +static void ixp_rx_timestamp(struct port *port, struct sk_buff *skb) > +{ > + struct skb_shared_hwtstamps *shhwtstamps; > + struct ixp46x_ts_regs *regs; > + u64 ns; > + u32 ch, hi, lo, val; > + u16 uid, seq; > + > + if (!port->hwts_rx_en) > + return; > + > + ch = PORT2CHANNEL(port); > + > + regs = (struct ixp46x_ts_regs __iomem *) IXP4XX_TIMESYNC_BASE_VIRT; > + > + val = __raw_readl(®s->channel[ch].ch_event); > + > + if (!(val & RX_SNAPSHOT_LOCKED)) > + return; > + > + lo = __raw_readl(®s->channel[ch].src_uuid_lo); > + hi = __raw_readl(®s->channel[ch].src_uuid_hi); > + I guess you should use readl(), not __raw_readl() here. The __raw_* functions are not meant for device drivers. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html