mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 04:34:08 +08:00
[AX25]: Use kmemdup
Code diff stats: [acme@newtoy net-2.6.20]$ codiff /tmp/ax25.ko.before /tmp/ax25.ko.after /pub/scm/linux/kernel/git/acme/net-2.6.20/net/ax25/ax25_out.c: ax25_send_frame | -8 1 function changed, 8 bytes removed /pub/scm/linux/kernel/git/acme/net-2.6.20/net/ax25/ax25_route.c: ax25_rt_autobind | -15 1 function changed, 15 bytes removed /pub/scm/linux/kernel/git/acme/net-2.6.20/net/ax25/af_ax25.c: ax25_make_new | -33 1 function changed, 33 bytes removed /pub/scm/linux/kernel/git/acme/net-2.6.20/net/ax25/sysctl_net_ax25.c: ax25_register_sysctl | -21 1 function changed, 21 bytes removed /tmp/ax25.ko.after: 4 functions changed, 77 bytes removed [acme@newtoy net-2.6.20]$ Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
This commit is contained in:
parent
c66b721a50
commit
0459d70add
@ -906,13 +906,13 @@ struct sock *ax25_make_new(struct sock *osk, struct ax25_dev *ax25_dev)
|
||||
ax25->source_addr = oax25->source_addr;
|
||||
|
||||
if (oax25->digipeat != NULL) {
|
||||
if ((ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
|
||||
ax25->digipeat = kmemdup(oax25->digipeat, sizeof(ax25_digi),
|
||||
GFP_ATOMIC);
|
||||
if (ax25->digipeat == NULL) {
|
||||
sk_free(sk);
|
||||
ax25_cb_put(ax25);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memcpy(ax25->digipeat, oax25->digipeat, sizeof(ax25_digi));
|
||||
}
|
||||
|
||||
sk->sk_protinfo = ax25;
|
||||
|
@ -70,11 +70,11 @@ ax25_cb *ax25_send_frame(struct sk_buff *skb, int paclen, ax25_address *src, ax2
|
||||
ax25->dest_addr = *dest;
|
||||
|
||||
if (digi != NULL) {
|
||||
if ((ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
|
||||
ax25->digipeat = kmemdup(digi, sizeof(*digi), GFP_ATOMIC);
|
||||
if (ax25->digipeat == NULL) {
|
||||
ax25_cb_put(ax25);
|
||||
return NULL;
|
||||
}
|
||||
memcpy(ax25->digipeat, digi, sizeof(ax25_digi));
|
||||
}
|
||||
|
||||
switch (ax25->ax25_dev->values[AX25_VALUES_PROTOCOL]) {
|
||||
|
@ -432,11 +432,12 @@ int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr)
|
||||
}
|
||||
|
||||
if (ax25_rt->digipeat != NULL) {
|
||||
if ((ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
|
||||
ax25->digipeat = kmemdup(ax25_rt->digipeat, sizeof(ax25_digi),
|
||||
GFP_ATOMIC);
|
||||
if (ax25->digipeat == NULL) {
|
||||
err = -ENOMEM;
|
||||
goto put;
|
||||
}
|
||||
memcpy(ax25->digipeat, ax25_rt->digipeat, sizeof(ax25_digi));
|
||||
ax25_adjust_path(addr, ax25->digipeat);
|
||||
}
|
||||
|
||||
|
@ -209,7 +209,9 @@ void ax25_register_sysctl(void)
|
||||
}
|
||||
|
||||
for (n = 0, ax25_dev = ax25_dev_list; ax25_dev != NULL; ax25_dev = ax25_dev->next) {
|
||||
ctl_table *child = kmalloc(sizeof(ax25_param_table), GFP_ATOMIC);
|
||||
struct ctl_table *child = kmemdup(ax25_param_table,
|
||||
sizeof(ax25_param_table),
|
||||
GFP_ATOMIC);
|
||||
if (!child) {
|
||||
while (n--)
|
||||
kfree(ax25_table[n].child);
|
||||
@ -217,7 +219,6 @@ void ax25_register_sysctl(void)
|
||||
spin_unlock_bh(&ax25_dev_lock);
|
||||
return;
|
||||
}
|
||||
memcpy(child, ax25_param_table, sizeof(ax25_param_table));
|
||||
ax25_table[n].child = ax25_dev->systable = child;
|
||||
ax25_table[n].ctl_name = n + 1;
|
||||
ax25_table[n].procname = ax25_dev->dev->name;
|
||||
|
Loading…
Reference in New Issue
Block a user