On Thu, Mar 26, 2015 at 8:30 AM, <[email protected]> wrote:

> From: Balasubramanian Manoharan <[email protected]>
>

Reviewed-and-tested-by: Bill Fischofer <[email protected]>


>
> Fix for incorrect pmr_term_value update in odp_pmr_create_match() and
> odp_pmr_create_range() functions.
> Fixes https://bugs.linaro.org/show_bug.cgi?id=1381
>
> Signed-off-by: Balasubramanian Manoharan <[email protected]>
> ---
> v2: Fixes checkpatch issue pointed by Bill
>
>  platform/linux-generic/odp_classification.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/platform/linux-generic/odp_classification.c
> b/platform/linux-generic/odp_classification.c
> index 9fb034f..609faa9 100644
> --- a/platform/linux-generic/odp_classification.c
> +++ b/platform/linux-generic/odp_classification.c
> @@ -438,6 +438,7 @@ odp_pmr_t odp_pmr_create_match(odp_pmr_term_e term,
>         pmr->s.pmr_term_value[0].mask.mask =  0;
>         memcpy(&pmr->s.pmr_term_value[0].mask.val, val, val_sz);
>         memcpy(&pmr->s.pmr_term_value[0].mask.mask, mask, val_sz);
> +       pmr->s.pmr_term_value[0].mask.val &=
> pmr->s.pmr_term_value[0].mask.mask;
>         UNLOCK(&pmr->s.lock);
>         return id;
>  }
> @@ -460,7 +461,7 @@ odp_pmr_t odp_pmr_create_range(odp_pmr_term_e term,
>                 return ODP_PMR_INVAL;
>
>         pmr->s.num_pmr = 1;
> -       pmr->s.pmr_term_value[0].match_type = ODP_PMR_MASK;
> +       pmr->s.pmr_term_value[0].match_type = ODP_PMR_RANGE;
>         pmr->s.pmr_term_value[0].term = term;
>         pmr->s.pmr_term_value[0].range.val1 =  0;
>         pmr->s.pmr_term_value[0].range.val2 =  0;
> @@ -601,6 +602,8 @@ int odp_pmr_match_set_create(int num_terms,
> odp_pmr_match_t *terms,
>                                terms[i].mask.val, val_sz);
>                         memcpy(&pmr->s.pmr_term_value[i].mask.mask,
>                                terms[i].mask.mask, val_sz);
> +                       pmr->s.pmr_term_value[i].mask.val &= pmr->s
> +                               .pmr_term_value[i].mask.mask;
>                 } else {
>                         val_sz = terms[i].range.val_sz;
>                         if (val_sz > ODP_PMR_TERM_BYTES_MAX)
> --
> 2.0.1.472.g6f92e5f
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to