A bug in busdma_machdep-v6.c?
Olivier Houchard
mlfbsd at ci0.org
Sun Mar 3 00:15:29 UTC 2013
On Sat, Mar 02, 2013 at 04:02:45PM -0800, Thomas Skibo wrote:
>
> Hello.
>
> I've been trying to solve a tcp checksum bug and I think I see a problem
> in _bus_dmamap_load_buffer():
>
> In the following code bit, a segment is tacked onto the previous
> segment's slist[] entry if it is adjacent to the previous segment in
> virtual memory. That's okay if all cache operations use virtual
> addresses but if the level 2 cache operations need physical addresses
> (ARM_L2_PIPT), the physical address of the second segment is lost. I
> don't think bus_dmamap_sync() is properly wb/invalidating the second
> segment from the level 2 cache.
>
Hi Thomas,
That makes sense. I'll commit your patch tomorrow if nobody else does it before.
Thanks !
Olivier
More information about the freebsd-arm
mailing list