Messages in this thread |  | | Date | Sat, 28 Oct 2000 19:12:44 -0200 (BRST) | From | Marcelo Tosatti <> | Subject | tcp_do_sendmsg() allocation still broken ? |
| |
David,
tcp_do_sendmsg() still allocates using GFP_KERNEL when it can't, it seems:
int tcp_do_sendmsg(struct sock *sk, struct msghdr *msg) { ... TCP_SKB_CB(skb)->seq = tp->write_seq; TCP_SKB_CB(skb)->end_seq = TCP_SKB_CB(skb)->seq + copy;
/* This advances tp->write_seq for us. */ tcp_send_skb(sk, skb, queue_it); ^^^^^^^^^^^^ } } sk->err = 0; ... }
Now what we can find at tcp_send_skb? :)
void tcp_send_skb(struct sock *sk, struct sk_buff *skb, int force_queue, unsigned cur_mss) {
...
if (!force_queue && tp->send_head == NULL && tcp_snd_test(tp, skb, cur_mss, 1)) { /* Send it out now. */ TCP_SKB_CB(skb)->when = tcp_time_stamp; if (tcp_transmit_skb(sk, skb_clone(skb, GFP_KERNEL)) == 0) { ^^^^^^^^^^^^ tp->snd_nxt = TCP_SKB_CB(skb)->end_seq;
...
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |