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&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to