X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fsched%2Fem_nbyte.c;h=b4b36efce29248e37f1e2a941fa45743d76e4f52;hb=f630fe2817601314b2eb7ca5ddc23c7834646731;hp=cc80babfd79ff6870cd4b982f446721b67da777f;hpb=db1a19b38f3a85f475b4ad716c71be133d8ca48e;p=linux-2.6 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); }