Hannes Hering <[email protected]> wrote:

> this is an ehea driver problem, which is occuring when the receive queue runs
> empty. The faulting code is more specifically the following line:
> 
>       pref = (skb_array[x]->data);

In that case, you might want to move the prefetchw() calls in the following:

                pref = skb_array[x];
        -       prefetchw(pref);
        -       prefetchw(pref + EHEA_CACHE_LINE);
        +       if (pref) {
        +               prefetchw(pref);
        +               prefetchw(pref + EHEA_CACHE_LINE);

to before the if-statement.  That way the CPU can be attempting the prefetch
whilst it's chewing over the test and branch.  prefetching shouldn't fault on
a bad address.

David
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to