|
@@ -484,7 +484,7 @@ static void link_release_outqueue(struct tipc_link *l_ptr)
|
|
|
|
|
|
while (buf) {
|
|
|
next = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = next;
|
|
|
}
|
|
|
l_ptr->first_out = NULL;
|
|
@@ -503,7 +503,7 @@ void tipc_link_reset_fragments(struct tipc_link *l_ptr)
|
|
|
|
|
|
while (buf) {
|
|
|
next = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = next;
|
|
|
}
|
|
|
l_ptr->defragm_buf = NULL;
|
|
@@ -522,20 +522,20 @@ void tipc_link_stop(struct tipc_link *l_ptr)
|
|
|
buf = l_ptr->oldest_deferred_in;
|
|
|
while (buf) {
|
|
|
next = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = next;
|
|
|
}
|
|
|
|
|
|
buf = l_ptr->first_out;
|
|
|
while (buf) {
|
|
|
next = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = next;
|
|
|
}
|
|
|
|
|
|
tipc_link_reset_fragments(l_ptr);
|
|
|
|
|
|
- buf_discard(l_ptr->proto_msg_queue);
|
|
|
+ kfree_skb(l_ptr->proto_msg_queue);
|
|
|
l_ptr->proto_msg_queue = NULL;
|
|
|
}
|
|
|
|
|
@@ -571,12 +571,12 @@ void tipc_link_reset(struct tipc_link *l_ptr)
|
|
|
/* Clean up all queues: */
|
|
|
|
|
|
link_release_outqueue(l_ptr);
|
|
|
- buf_discard(l_ptr->proto_msg_queue);
|
|
|
+ kfree_skb(l_ptr->proto_msg_queue);
|
|
|
l_ptr->proto_msg_queue = NULL;
|
|
|
buf = l_ptr->oldest_deferred_in;
|
|
|
while (buf) {
|
|
|
struct sk_buff *next = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = next;
|
|
|
}
|
|
|
if (!list_empty(&l_ptr->waiting_ports))
|
|
@@ -810,7 +810,7 @@ static int link_bundle_buf(struct tipc_link *l_ptr,
|
|
|
skb_copy_to_linear_data_offset(bundler, to_pos, buf->data, size);
|
|
|
msg_set_size(bundler_msg, to_pos + size);
|
|
|
msg_set_msgcnt(bundler_msg, msg_msgcnt(bundler_msg) + 1);
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
l_ptr->stats.sent_bundled++;
|
|
|
return 1;
|
|
|
}
|
|
@@ -878,10 +878,10 @@ int tipc_link_send_buf(struct tipc_link *l_ptr, struct sk_buff *buf)
|
|
|
if (unlikely(queue_size >= queue_limit)) {
|
|
|
if (imp <= TIPC_CRITICAL_IMPORTANCE) {
|
|
|
link_schedule_port(l_ptr, msg_origport(msg), size);
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
return -ELINKCONG;
|
|
|
}
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
if (imp > CONN_MANAGER) {
|
|
|
warn("Resetting link <%s>, send queue full", l_ptr->name);
|
|
|
tipc_link_reset(l_ptr);
|
|
@@ -968,10 +968,10 @@ int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector)
|
|
|
if (l_ptr)
|
|
|
res = tipc_link_send_buf(l_ptr, buf);
|
|
|
else
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
tipc_node_unlock(n_ptr);
|
|
|
} else {
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
read_unlock_bh(&tipc_net_lock);
|
|
|
return res;
|
|
@@ -1018,7 +1018,7 @@ void tipc_link_send_names(struct list_head *message_list, u32 dest)
|
|
|
|
|
|
list_for_each_safe(buf, temp_buf, ((struct sk_buff *)message_list)) {
|
|
|
list_del((struct list_head *)buf);
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1262,7 +1262,7 @@ again:
|
|
|
error:
|
|
|
for (; buf_chain; buf_chain = buf) {
|
|
|
buf = buf_chain->next;
|
|
|
- buf_discard(buf_chain);
|
|
|
+ kfree_skb(buf_chain);
|
|
|
}
|
|
|
return -EFAULT;
|
|
|
}
|
|
@@ -1316,7 +1316,7 @@ error:
|
|
|
tipc_node_unlock(node);
|
|
|
for (; buf_chain; buf_chain = buf) {
|
|
|
buf = buf_chain->next;
|
|
|
- buf_discard(buf_chain);
|
|
|
+ kfree_skb(buf_chain);
|
|
|
}
|
|
|
goto again;
|
|
|
}
|
|
@@ -1324,7 +1324,7 @@ error:
|
|
|
reject:
|
|
|
for (; buf_chain; buf_chain = buf) {
|
|
|
buf = buf_chain->next;
|
|
|
- buf_discard(buf_chain);
|
|
|
+ kfree_skb(buf_chain);
|
|
|
}
|
|
|
return tipc_port_reject_sections(sender, hdr, msg_sect, num_sect,
|
|
|
total_len, TIPC_ERR_NO_NODE);
|
|
@@ -1390,7 +1390,7 @@ u32 tipc_link_push_packet(struct tipc_link *l_ptr)
|
|
|
msg_set_bcast_ack(buf_msg(buf), l_ptr->owner->bclink.last_in);
|
|
|
if (tipc_bearer_send(l_ptr->b_ptr, buf, &l_ptr->media_addr)) {
|
|
|
l_ptr->unacked_window = 0;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
l_ptr->proto_msg_queue = NULL;
|
|
|
return 0;
|
|
|
} else {
|
|
@@ -1679,7 +1679,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *b_ptr)
|
|
|
|
|
|
/* Ensure message data is a single contiguous unit */
|
|
|
|
|
|
- if (unlikely(buf_linearize(buf)))
|
|
|
+ if (unlikely(skb_linearize(buf)))
|
|
|
goto cont;
|
|
|
|
|
|
/* Handle arrival of a non-unicast link message */
|
|
@@ -1744,7 +1744,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *b_ptr)
|
|
|
less_eq(buf_seqno(crs), ackd)) {
|
|
|
struct sk_buff *next = crs->next;
|
|
|
|
|
|
- buf_discard(crs);
|
|
|
+ kfree_skb(crs);
|
|
|
crs = next;
|
|
|
released++;
|
|
|
}
|
|
@@ -1820,7 +1820,7 @@ deliver:
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
buf = NULL;
|
|
|
break;
|
|
|
}
|
|
@@ -1851,7 +1851,7 @@ deliver:
|
|
|
}
|
|
|
tipc_node_unlock(n_ptr);
|
|
|
cont:
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
read_unlock_bh(&tipc_net_lock);
|
|
|
}
|
|
@@ -1891,7 +1891,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head, struct sk_buff **tail,
|
|
|
u32 curr_seqno = buf_seqno(queue_buf);
|
|
|
|
|
|
if (seq_no == curr_seqno) {
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1932,7 +1932,7 @@ static void link_handle_out_of_seq_msg(struct tipc_link *l_ptr,
|
|
|
|
|
|
if (less(seq_no, mod(l_ptr->next_in_no))) {
|
|
|
l_ptr->stats.duplicates++;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -1961,7 +1961,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ,
|
|
|
/* Discard any previous message that was deferred due to congestion */
|
|
|
|
|
|
if (l_ptr->proto_msg_queue) {
|
|
|
- buf_discard(l_ptr->proto_msg_queue);
|
|
|
+ kfree_skb(l_ptr->proto_msg_queue);
|
|
|
l_ptr->proto_msg_queue = NULL;
|
|
|
}
|
|
|
|
|
@@ -2060,7 +2060,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ,
|
|
|
/* Discard message if it was sent successfully */
|
|
|
|
|
|
l_ptr->unacked_window = 0;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2204,7 +2204,7 @@ static void link_recv_proto_msg(struct tipc_link *l_ptr, struct sk_buff *buf)
|
|
|
break;
|
|
|
}
|
|
|
exit:
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2402,7 +2402,7 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
|
|
|
warn("Link changeover error, duplicate msg dropped\n");
|
|
|
goto exit;
|
|
|
}
|
|
|
- buf_discard(tunnel_buf);
|
|
|
+ kfree_skb(tunnel_buf);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -2434,7 +2434,7 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
|
|
|
} else {
|
|
|
*buf = buf_extract(tunnel_buf, INT_H_SIZE);
|
|
|
if (*buf != NULL) {
|
|
|
- buf_discard(tunnel_buf);
|
|
|
+ kfree_skb(tunnel_buf);
|
|
|
return 1;
|
|
|
} else {
|
|
|
warn("Link changeover error, original msg dropped\n");
|
|
@@ -2442,7 +2442,7 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
|
|
|
}
|
|
|
exit:
|
|
|
*buf = NULL;
|
|
|
- buf_discard(tunnel_buf);
|
|
|
+ kfree_skb(tunnel_buf);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -2464,7 +2464,7 @@ void tipc_link_recv_bundle(struct sk_buff *buf)
|
|
|
pos += align(msg_size(buf_msg(obuf)));
|
|
|
tipc_net_route_msg(obuf);
|
|
|
}
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2513,11 +2513,11 @@ static int link_send_long_buf(struct tipc_link *l_ptr, struct sk_buff *buf)
|
|
|
}
|
|
|
fragm = tipc_buf_acquire(fragm_sz + INT_H_SIZE);
|
|
|
if (fragm == NULL) {
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
while (buf_chain) {
|
|
|
buf = buf_chain;
|
|
|
buf_chain = buf_chain->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
return -ENOMEM;
|
|
|
}
|
|
@@ -2534,7 +2534,7 @@ static int link_send_long_buf(struct tipc_link *l_ptr, struct sk_buff *buf)
|
|
|
crs += fragm_sz;
|
|
|
msg_set_type(&fragm_hdr, FRAGMENT);
|
|
|
}
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
|
|
|
/* Append chain of fragments to send queue & send them */
|
|
|
|
|
@@ -2621,7 +2621,7 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
|
|
|
if (msg_type(imsg) == TIPC_MCAST_MSG)
|
|
|
max = TIPC_MAX_USER_MSG_SIZE + MCAST_H_SIZE;
|
|
|
if (msg_size(imsg) > max) {
|
|
|
- buf_discard(fbuf);
|
|
|
+ kfree_skb(fbuf);
|
|
|
return 0;
|
|
|
}
|
|
|
pbuf = tipc_buf_acquire(msg_size(imsg));
|
|
@@ -2637,10 +2637,10 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
|
|
|
set_expected_frags(pbuf, exp_fragm_cnt - 1);
|
|
|
} else {
|
|
|
dbg("Link unable to reassemble fragmented message\n");
|
|
|
- buf_discard(fbuf);
|
|
|
+ kfree_skb(fbuf);
|
|
|
return -1;
|
|
|
}
|
|
|
- buf_discard(fbuf);
|
|
|
+ kfree_skb(fbuf);
|
|
|
return 0;
|
|
|
} else if (pbuf && (msg_type(fragm) != FIRST_FRAGMENT)) {
|
|
|
u32 dsz = msg_data_sz(fragm);
|
|
@@ -2649,7 +2649,7 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
|
|
|
u32 exp_frags = get_expected_frags(pbuf) - 1;
|
|
|
skb_copy_to_linear_data_offset(pbuf, crs,
|
|
|
msg_data(fragm), dsz);
|
|
|
- buf_discard(fbuf);
|
|
|
+ kfree_skb(fbuf);
|
|
|
|
|
|
/* Is message complete? */
|
|
|
|
|
@@ -2666,7 +2666,7 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
|
|
|
set_expected_frags(pbuf, exp_frags);
|
|
|
return 0;
|
|
|
}
|
|
|
- buf_discard(fbuf);
|
|
|
+ kfree_skb(fbuf);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -2697,7 +2697,7 @@ static void link_check_defragm_bufs(struct tipc_link *l_ptr)
|
|
|
prev->next = buf->next;
|
|
|
else
|
|
|
l_ptr->defragm_buf = buf->next;
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
}
|
|
|
buf = next;
|
|
|
}
|
|
@@ -3072,7 +3072,7 @@ struct sk_buff *tipc_link_cmd_show_stats(const void *req_tlv_area, int req_tlv_s
|
|
|
str_len = tipc_link_stats((char *)TLV_DATA(req_tlv_area),
|
|
|
(char *)TLV_DATA(rep_tlv), MAX_LINK_STATS_INFO);
|
|
|
if (!str_len) {
|
|
|
- buf_discard(buf);
|
|
|
+ kfree_skb(buf);
|
|
|
return tipc_cfg_reply_error_string("link not found");
|
|
|
}
|
|
|
|