On 05/10/2012 11:07 AM, Sebastian Andrzej Siewior wrote: > The code seems to want to look at the last byte where the HW puts some > information. Since the skb->data area is never seen by the HW I guess it > does not work as expected. We pass the page address to the HW so I > *think* in order to get to the last byte where the information might be > one should use the page buffer and take a look. > This is of course not more than just compile tested. > > Signed-off-by: Sebastian Andrzej Siewior <[email protected]> > --- > drivers/net/ethernet/intel/e1000/e1000_main.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c > b/drivers/net/ethernet/intel/e1000/e1000_main.c > index edd3504..31ef609 100644 > --- a/drivers/net/ethernet/intel/e1000/e1000_main.c > +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c > @@ -4046,7 +4046,12 @@ static bool e1000_clean_jumbo_rx_irq(struct > e1000_adapter *adapter, > /* errors is only valid for DD + EOP descriptors */ > if (unlikely((status & E1000_RXD_STAT_EOP) && > (rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK))) { > - u8 last_byte = *(skb->data + length - 1); > + u8 *mapped; > + u8 last_byte; > + > + mapped = kmap_atomic(buffer_info->page); > + last_byte = *(mapped + length - 1); > + kunmap_atomic(mapped); > if (TBI_ACCEPT(hw, status, rx_desc->errors, length, > last_byte)) { > spin_lock_irqsave(&adapter->stats_lock, I'm fairly certain you don't need to use kmap_atomic on the Rx page since the way it is allocated it cannot be mapped into high memory. You should be able to just use page_address to get the virtual address for the page.
Thanks, Alex ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
