| From stable-bounces@linux.kernel.org Tue Apr 10 13:39:58 2007 |
| From: Patrick McHardy <kaber@trash.net> |
| Date: Tue, 10 Apr 2007 13:38:39 -0700 (PDT) |
| Subject: Fix tcindex classifier ABI borkage... |
| To: stable@kernel.org |
| Cc: bunk@stusta.de |
| Message-ID: <20070410.133839.02301998.davem@davemloft.net> |
| |
| From: Patrick McHardy <kaber@trash.net> |
| |
| [NET_SCHED]: cls_tcindex: fix compatibility breakage |
| |
| Userspace uses an integer for TCA_TCINDEX_SHIFT, the kernel was changed |
| to expect and use a u16 value in 2.6.11, which broke compatibility on |
| big endian machines. Change back to use int. |
| |
| Reported by Ole Reinartz <ole.reinartz@gmx.de> |
| |
| Signed-off-by: Patrick McHardy <kaber@trash.net> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/sched/cls_tcindex.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/sched/cls_tcindex.c |
| +++ b/net/sched/cls_tcindex.c |
| @@ -245,9 +245,9 @@ tcindex_set_parms(struct tcf_proto *tp, |
| } |
| |
| if (tb[TCA_TCINDEX_SHIFT-1]) { |
| - if (RTA_PAYLOAD(tb[TCA_TCINDEX_SHIFT-1]) < sizeof(u16)) |
| + if (RTA_PAYLOAD(tb[TCA_TCINDEX_SHIFT-1]) < sizeof(int)) |
| goto errout; |
| - cp.shift = *(u16 *) RTA_DATA(tb[TCA_TCINDEX_SHIFT-1]); |
| + cp.shift = *(int *) RTA_DATA(tb[TCA_TCINDEX_SHIFT-1]); |
| } |
| |
| err = -EBUSY; |