25 #include <linux/slab.h>
26 #include <linux/socket.h>
27 #include <linux/kernel.h>
28 #include <linux/string.h>
33 static int x25_pacsize_to_bytes(
unsigned int pacsize)
61 int max_len = x25_pacsize_to_bytes(x25->
facilities.pacsize_out);
63 if (skb->
len - header_len > max_len) {
65 skb_copy_from_linear_data(skb, header, header_len);
68 frontlen = skb_headroom(skb);
70 while (skb->
len > 0) {
81 " failed, err=%d, %d bytes "
86 skb_reserve(skbn, frontlen);
88 len = max_len > skb->
len ? skb->
len : max_len;
91 skb_copy_from_linear_data(skb,
skb_put(skbn, len), len);
96 skb_copy_to_linear_data(skbn, header, header_len);
129 skb->
data[2] = (x25->
vs << 1) & 0xFE;
131 skb->
data[3] |= (x25->
vr << 1) & 0xFE;
134 skb->
data[2] |= (x25->
vs << 1) & 0x0E;
135 skb->
data[2] |= (x25->
vr << 5) & 0xE0;
170 end = (x25->
va + x25->
facilities.winsize_out) % modulus;
190 skb_set_owner_w(skbn, sk);
195 x25_send_iframe(sk, skbn);
197 x25->
vs = (x25->
vs + 1) % modulus;
204 }
while (x25->
vs != end &&