X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=net%2Fsched%2Fem_nbyte.c;h=b4b36efce29248e37f1e2a941fa45743d76e4f52;hb=0f834de3ea61aacacf1fac59ba9e82680f83c846;hp=cc80babfd79ff6870cd4b982f446721b67da777f;hpb=71bc7bf045262e82c645cad48fd56dd17e75344e;p=powerpc.git diff --git a/net/sched/em_nbyte.c b/net/sched/em_nbyte.c index cc80babfd7..b4b36efce2 100644 --- a/net/sched/em_nbyte.c +++ b/net/sched/em_nbyte.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -23,7 +22,7 @@ struct nbyte_data struct tcf_em_nbyte hdr; char pattern[0]; }; - + static int em_nbyte_change(struct tcf_proto *tp, void *data, int data_len, struct tcf_ematch *em) { @@ -34,12 +33,10 @@ static int em_nbyte_change(struct tcf_proto *tp, void *data, int data_len, return -EINVAL; em->datalen = sizeof(*nbyte) + nbyte->len; - em->data = (unsigned long) kmalloc(em->datalen, GFP_KERNEL); + em->data = (unsigned long)kmemdup(data, em->datalen, GFP_KERNEL); if (em->data == 0UL) return -ENOBUFS; - memcpy((void *) em->data, data, em->datalen); - return 0; } @@ -70,7 +67,7 @@ static int __init init_em_nbyte(void) return tcf_em_register(&em_nbyte_ops); } -static void __exit exit_em_nbyte(void) +static void __exit exit_em_nbyte(void) { tcf_em_unregister(&em_nbyte_ops); }