[PATCH 2.6.30-rc5] ehea: fix invalid pointer access
David Howells
dhowells at redhat.com
Tue May 5 22:19:54 EST 2009
Hannes Hering <hannes.hering at linux.vnet.ibm.com> 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
More information about the Linuxppc-dev
mailing list