diff options
Diffstat (limited to 'net/sched/cls_rsvp.h')
-rw-r--r-- | net/sched/cls_rsvp.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h index 7034ea4530e5..dd9414e44200 100644 --- a/net/sched/cls_rsvp.h +++ b/net/sched/cls_rsvp.h | |||
@@ -170,21 +170,23 @@ restart: | |||
170 | for (s = sht[h1]; s; s = s->next) { | 170 | for (s = sht[h1]; s; s = s->next) { |
171 | if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] && | 171 | if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] && |
172 | protocol == s->protocol && | 172 | protocol == s->protocol && |
173 | !(s->dpi.mask & (*(u32*)(xprt+s->dpi.offset)^s->dpi.key)) | 173 | !(s->dpi.mask & |
174 | (*(u32*)(xprt+s->dpi.offset)^s->dpi.key)) && | ||
174 | #if RSVP_DST_LEN == 4 | 175 | #if RSVP_DST_LEN == 4 |
175 | && dst[0] == s->dst[0] | 176 | dst[0] == s->dst[0] && |
176 | && dst[1] == s->dst[1] | 177 | dst[1] == s->dst[1] && |
177 | && dst[2] == s->dst[2] | 178 | dst[2] == s->dst[2] && |
178 | #endif | 179 | #endif |
179 | && tunnelid == s->tunnelid) { | 180 | tunnelid == s->tunnelid) { |
180 | 181 | ||
181 | for (f = s->ht[h2]; f; f = f->next) { | 182 | for (f = s->ht[h2]; f; f = f->next) { |
182 | if (src[RSVP_DST_LEN-1] == f->src[RSVP_DST_LEN-1] && | 183 | if (src[RSVP_DST_LEN-1] == f->src[RSVP_DST_LEN-1] && |
183 | !(f->spi.mask & (*(u32*)(xprt+f->spi.offset)^f->spi.key)) | 184 | !(f->spi.mask & (*(u32*)(xprt+f->spi.offset)^f->spi.key)) |
184 | #if RSVP_DST_LEN == 4 | 185 | #if RSVP_DST_LEN == 4 |
185 | && src[0] == f->src[0] | 186 | && |
186 | && src[1] == f->src[1] | 187 | src[0] == f->src[0] && |
187 | && src[2] == f->src[2] | 188 | src[1] == f->src[1] && |
189 | src[2] == f->src[2] | ||
188 | #endif | 190 | #endif |
189 | ) { | 191 | ) { |
190 | *res = f->res; | 192 | *res = f->res; |
@@ -493,13 +495,13 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
493 | for (sp = &data->ht[h1]; (s=*sp) != NULL; sp = &s->next) { | 495 | for (sp = &data->ht[h1]; (s=*sp) != NULL; sp = &s->next) { |
494 | if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] && | 496 | if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] && |
495 | pinfo && pinfo->protocol == s->protocol && | 497 | pinfo && pinfo->protocol == s->protocol && |
496 | memcmp(&pinfo->dpi, &s->dpi, sizeof(s->dpi)) == 0 | 498 | memcmp(&pinfo->dpi, &s->dpi, sizeof(s->dpi)) == 0 && |
497 | #if RSVP_DST_LEN == 4 | 499 | #if RSVP_DST_LEN == 4 |
498 | && dst[0] == s->dst[0] | 500 | dst[0] == s->dst[0] && |
499 | && dst[1] == s->dst[1] | 501 | dst[1] == s->dst[1] && |
500 | && dst[2] == s->dst[2] | 502 | dst[2] == s->dst[2] && |
501 | #endif | 503 | #endif |
502 | && pinfo->tunnelid == s->tunnelid) { | 504 | pinfo->tunnelid == s->tunnelid) { |
503 | 505 | ||
504 | insert: | 506 | insert: |
505 | /* OK, we found appropriate session */ | 507 | /* OK, we found appropriate session */ |