Thanks for the review, I applied to this master and branch-2.5.
On Tue, Jun 21, 2016 at 10:08 AM, Jarno Rajahalme <ja...@ovn.org> wrote: > [Google filtered by ack as spam, so I'm trying again.] > > Acked-by: Jarno Rajahalme <ja...@ovn.org> > >> On Jun 9, 2016, at 11:50 AM, Jesse Gross <je...@kernel.org> wrote: >> >> Since tunnel metadata is stored in a fixed area in the flow match field, we >> must allocate space for options as they are registered with the switch. In >> order >> to avoid exposing implementation complexity to the controller, we support >> fragmentation when we run out of contiguous blocks that are large enough to >> handle new requests. >> >> When reading or writing to these fragmented blocks, there is a bug that would >> cause us to keep on using the area after the allocated space rather than >> moving >> to the next offset. This corrects that to use the offset for each block. >> >> Unfortunately, while we did have a test for this exact use case, since the >> same >> bug was present in both reading and writing code, everything appeared to work >> as normal from the outside. >> >> Signed-off-by: Jesse Gross <je...@kernel.org> >> --- >> lib/tun-metadata.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/lib/tun-metadata.c b/lib/tun-metadata.c >> index a773aea..7a2a84f 100644 >> --- a/lib/tun-metadata.c >> +++ b/lib/tun-metadata.c >> @@ -490,7 +490,7 @@ memcpy_to_metadata(struct tun_metadata *dst, const void >> *src, >> int addr = 0; >> >> while (chain) { >> - memcpy(dst->opts.u8 + loc->c.offset + addr, (uint8_t *)src + addr, >> + memcpy(dst->opts.u8 + chain->offset, (uint8_t *)src + addr, >> chain->len); >> addr += chain->len; >> chain = chain->next; >> @@ -507,7 +507,7 @@ memcpy_from_metadata(void *dst, const struct >> tun_metadata *src, >> int addr = 0; >> >> while (chain) { >> - memcpy((uint8_t *)dst + addr, src->opts.u8 + loc->c.offset + addr, >> + memcpy((uint8_t *)dst + addr, src->opts.u8 + chain->offset, >> chain->len); >> addr += chain->len; >> chain = chain->next; >> -- >> 2.5.0 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev