1 diff -Nurb linux-2.6.27-521/net/netfilter/xt_MARK.c linux-2.6.27-522/net/netfilter/xt_MARK.c
2 --- linux-2.6.27-521/net/netfilter/xt_MARK.c 2008-10-09 18:13:53.000000000 -0400
3 +++ linux-2.6.27-522/net/netfilter/xt_MARK.c 2009-06-02 11:12:59.000000000 -0400
5 #include <linux/module.h>
6 #include <linux/skbuff.h>
9 #include <net/checksum.h>
10 +#include <net/route.h>
11 +#include <net/inet_hashtables.h>
12 +#include <net/net_namespace.h>
14 +#include <net/netfilter/nf_conntrack.h>
16 #include <linux/netfilter/x_tables.h>
17 #include <linux/netfilter/xt_MARK.h>
19 MODULE_ALIAS("ipt_MARK");
20 MODULE_ALIAS("ip6t_MARK");
22 +extern DEFINE_PER_CPU(int, sknid_elevator);
25 mark_tg_v0(struct sk_buff *skb, const struct net_device *in,
26 const struct net_device *out, unsigned int hooknum,
31 +#define PEERCRED_SET(x) ((x!=0) && (x!=(unsigned int)-1))
34 +static inline u_int16_t
35 +get_dst_port(struct nf_conntrack_tuple *tuple)
37 + switch (tuple->dst.protonum) {
39 + /* XXX Truncate 32-bit GRE key to 16 bits */
40 + return tuple->dst.u.gre.key;
42 + /* Bind on ICMP echo ID */
43 + return tuple->src.u.icmp.id;
45 + return tuple->dst.u.tcp.port;
47 + return tuple->dst.u.udp.port;
49 + return tuple->dst.u.all;
53 +static inline u_int16_t
54 +get_src_port(struct nf_conntrack_tuple *tuple)
56 + switch (tuple->dst.protonum) {
58 + /* XXX Truncate 32-bit GRE key to 16 bits */
59 + return htons(ntohl(tuple->src.u.gre.key));
61 + /* Bind on ICMP echo ID */
62 + return tuple->src.u.icmp.id;
64 + return tuple->src.u.tcp.port;
66 + return tuple->src.u.udp.port;
68 + return tuple->src.u.all;
72 +static struct sock *__udp4_lib_lookup(__be32 saddr, __be16 sport,
73 + __be32 daddr, __be16 dport,
74 + int dif, struct hlist_head udptable[])
76 + struct sock *sk, *result = NULL;
77 + struct hlist_node *node;
78 + unsigned short hnum = ntohs(dport);
81 + read_lock(&udp_hash_lock);
83 + sk_for_each(sk, node, &udptable[hnum & (UDP_HTABLE_SIZE - 1)]) {
84 + struct inet_sock *inet = inet_sk(sk);
86 + if (sk->sk_hash == hnum && !ipv6_only_sock(sk)) {
87 + int score = (sk->sk_family == PF_INET ? 1 : 0);
89 + if (inet->rcv_saddr) {
90 + if (inet->rcv_saddr != daddr)
94 + /* block non nx_info ips */
95 + if (!v4_addr_in_nx_info(sk->sk_nx_info,
96 + daddr, NXA_MASK_BIND))
100 + if (inet->daddr != saddr)
105 + if (inet->dport != sport)
109 + if (sk->sk_bound_dev_if) {
110 + if (sk->sk_bound_dev_if != dif)
117 + } else if (score > badness) {
126 + read_unlock(&udp_hash_lock);
130 mark_tg(struct sk_buff *skb, const struct net_device *in,
131 const struct net_device *out, unsigned int hooknum,
132 const struct xt_target *target, const void *targinfo)
134 const struct xt_mark_tginfo2 *info = targinfo;
136 + enum ip_conntrack_info ctinfo;
137 + struct sock *connection_sk;
139 + struct nf_conn *ct;
140 + extern struct inet_hashinfo tcp_hashinfo;
141 + enum ip_conntrack_dir dir;
145 + u_int16_t proto, src_port;
149 + if (info->mark == ~0U) {
151 + dif = ((struct rtable *)(skb->dst))->rt_iif;
153 + ct = nf_ct_get(skb, &ctinfo);
155 + goto out_mark_finish;
157 + dir = CTINFO2DIR(ctinfo);
158 + src_ip = ct->tuplehash[dir].tuple.src.u3.ip;
159 + dst_ip = ct->tuplehash[dir].tuple.dst.u3.ip;
160 + src_port = get_src_port(&ct->tuplehash[dir].tuple);
161 + proto = ct->tuplehash[dir].tuple.dst.protonum;
163 + ip = ct->tuplehash[dir].tuple.dst.u3.ip;
164 + port = get_dst_port(&ct->tuplehash[dir].tuple);
168 + /* The packet is marked, it's going out */
169 + ct->xid[0] = skb->mark;
171 + if (ct->xid[0] > 0)
174 + else if (proto == 17) {
177 + sk = __udp4_lib_lookup(src_ip, src_port,
178 + ip, port, dif, udp_hash);
180 + if (sk && hooknum == NF_INET_LOCAL_IN)
186 + else if (skb->mark > 0)
187 + /* The packet is marked, it's going out */
188 + ct->xid[0] = skb->mark;
190 + else if (proto == 6) /* TCP */{
191 + int sockettype = 0; /* Established socket */
192 + struct net *net = &init_net;
194 + /* Looks for an established socket or a listening
195 + socket corresponding to the 4-tuple, in that order.
196 + The order is important for Codemux connections
197 + to be handled properly */
199 + connection_sk = inet_lookup_established(net,
200 + &tcp_hashinfo, src_ip, src_port, ip, port, dif);
202 + if (!connection_sk) {
203 + connection_sk = inet_lookup_listener(net,
204 + &tcp_hashinfo, ip, port, dif);
205 + sockettype = 1; /* Listening socket */
208 + if (connection_sk) {
209 + /* The peercred is not set. We set it if the other side has an xid. */
210 + if (!PEERCRED_SET(connection_sk->sk_peercred.uid)
211 + && ct->xid[!dir] > 0 && (sockettype == 0)) {
212 + connection_sk->sk_peercred.gid =
213 + connection_sk->sk_peercred.uid = ct->xid[!dir];
216 + /* The peercred is set, and is not equal to the XID of 'the other side' */
217 + else if (PEERCRED_SET(connection_sk->sk_peercred.uid) &&
218 + (connection_sk->sk_peercred.uid != ct->xid[!dir]) &&
219 + (sockettype == 0)) {
220 + mark = connection_sk->sk_peercred.uid;
223 + /* Has this connection already been tagged? */
224 + if (ct->xid[dir] < 1) {
225 + /* No - let's tag it */
226 + ct->xid[dir]=connection_sk->sk_nid;
229 + if (mark == -1 && (ct->xid[dir] != 0))
230 + mark = ct->xid[dir];
232 + if (connection_sk->sk_state == TCP_TIME_WAIT) {
233 + inet_twsk_put(inet_twsk(connection_sk));
234 + goto out_mark_finish;
236 + sock_put(connection_sk);
239 + /* All else failed. Is this a connection over raw sockets?
240 + That explains why we couldn't get anything out of skb->sk,
241 + or look up a "real" connection. */
242 + if (ct->xid[dir] < 1) {
244 + ct->xid[dir] = skb->skb_tag;
247 + /* Covers CoDemux case */
248 + if (mark < 1 && (ct->xid[dir] > 0))
249 + mark = ct->xid[dir];
251 + if (mark < 1 && (ct->xid[!dir] > 0))
252 + mark = ct->xid[!dir];
253 + goto out_mark_finish;
257 + mark = (skb->mark & ~info->mask) ^ info->mark;
263 + curtag = &__get_cpu_var(sknid_elevator);
264 + if (mark > 0 && *curtag == -2 && hooknum == NF_INET_LOCAL_IN)
267 - skb->mark = (skb->mark & ~info->mask) ^ info->mark;
271 diff -Nurb linux-2.6.27-521/net/netfilter/xt_MARK.c.orig linux-2.6.27-522/net/netfilter/xt_MARK.c.orig
272 --- linux-2.6.27-521/net/netfilter/xt_MARK.c.orig 1969-12-31 19:00:00.000000000 -0500
273 +++ linux-2.6.27-522/net/netfilter/xt_MARK.c.orig 2009-06-02 10:14:55.000000000 -0400
276 + * xt_MARK - Netfilter module to modify the NFMARK field of an skb
278 + * (C) 1999-2001 Marc Boucher <marc@mbsi.ca>
279 + * Copyright © CC Computer Consultants GmbH, 2007 - 2008
280 + * Jan Engelhardt <jengelh@computergmbh.de>
282 + * This program is free software; you can redistribute it and/or modify
283 + * it under the terms of the GNU General Public License version 2 as
284 + * published by the Free Software Foundation.
287 +#include <linux/module.h>
288 +#include <linux/skbuff.h>
289 +#include <linux/ip.h>
290 +#include <net/checksum.h>
292 +#include <linux/netfilter/x_tables.h>
293 +#include <linux/netfilter/xt_MARK.h>
295 +MODULE_LICENSE("GPL");
296 +MODULE_AUTHOR("Marc Boucher <marc@mbsi.ca>");
297 +MODULE_DESCRIPTION("Xtables: packet mark modification");
298 +MODULE_ALIAS("ipt_MARK");
299 +MODULE_ALIAS("ip6t_MARK");
302 +mark_tg_v0(struct sk_buff *skb, const struct net_device *in,
303 + const struct net_device *out, unsigned int hooknum,
304 + const struct xt_target *target, const void *targinfo)
306 + const struct xt_mark_target_info *markinfo = targinfo;
308 + skb->mark = markinfo->mark;
309 + return XT_CONTINUE;
313 +mark_tg_v1(struct sk_buff *skb, const struct net_device *in,
314 + const struct net_device *out, unsigned int hooknum,
315 + const struct xt_target *target, const void *targinfo)
317 + const struct xt_mark_target_info_v1 *markinfo = targinfo;
320 + switch (markinfo->mode) {
322 + mark = markinfo->mark;
326 + mark = skb->mark & markinfo->mark;
330 + mark = skb->mark | markinfo->mark;
335 + return XT_CONTINUE;
339 +mark_tg(struct sk_buff *skb, const struct net_device *in,
340 + const struct net_device *out, unsigned int hooknum,
341 + const struct xt_target *target, const void *targinfo)
343 + const struct xt_mark_tginfo2 *info = targinfo;
346 + if (info->mark == ~0U) {
348 + enum ip_conntrack_info ctinfo;
349 + struct sock *connection_sk;
351 + struct nf_conn *ct;
352 + extern struct inet_hashinfo tcp_hashinfo;
353 + enum ip_conntrack_dir dir;
357 + u_int16_t proto, src_port;
361 + dif = ((struct rtable *)(skb->dst))->rt_iif;
363 + ct = nf_ct_get(skb, &ctinfo);
367 + dir = CTINFO2DIR(ctinfo);
368 + src_ip = ct->tuplehash[dir].tuple.src.u3.ip;
369 + dst_ip = ct->tuplehash[dir].tuple.dst.u3.ip;
370 + src_port = get_src_port(&ct->tuplehash[dir].tuple);
371 + proto = ct->tuplehash[dir].tuple.dst.protonum;
373 + ip = ct->tuplehash[dir].tuple.dst.u3.ip;
374 + port = get_dst_port(&ct->tuplehash[dir].tuple);
378 + /* The packet is marked, it's going out */
379 + ct->xid[0] = skb->mark;
381 + if (ct->xid[0] > 0)
384 + else if (proto == 17) {
387 + sk = __udp4_lib_lookup(src_ip, src_port,
388 + ip, port, dif, udp_hash);
390 + if (sk && hooknum == NF_INET_LOCAL_IN)
396 + else if (skb->mark > 0)
397 + /* The packet is marked, it's going out */
398 + ct->xid[0] = skb->mark;
400 + else if (proto == 6) /* TCP */{
401 + int sockettype = 0; /* Established socket */
402 + struct net *net = &init_net;
404 + /* Looks for an established socket or a listening
405 + socket corresponding to the 4-tuple, in that order.
406 + The order is important for Codemux connections
407 + to be handled properly */
409 + connection_sk = inet_lookup_established(net,
410 + &tcp_hashinfo, src_ip, src_port, ip, port, dif);
412 + if (!connection_sk) {
413 + connection_sk = inet_lookup_listener(net,
414 + &tcp_hashinfo, ip, port, dif);
415 + sockettype = 1; /* Listening socket */
418 + if (connection_sk) {
419 + /* The peercred is not set. We set it if the other side has an xid. */
420 + if (!PEERCRED_SET(connection_sk->sk_peercred.uid)
421 + && ct->xid[!dir] > 0 && (sockettype == 0)) {
422 + connection_sk->sk_peercred.gid =
423 + connection_sk->sk_peercred.uid = ct->xid[!dir];
426 + /* The peercred is set, and is not equal to the XID of 'the other side' */
427 + else if (PEERCRED_SET(connection_sk->sk_peercred.uid) &&
428 + (connection_sk->sk_peercred.uid != ct->xid[!dir]) &&
429 + (sockettype == 0)) {
430 + mark = connection_sk->sk_peercred.uid;
433 + /* Has this connection already been tagged? */
434 + if (ct->xid[dir] < 1) {
435 + /* No - let's tag it */
436 + ct->xid[dir]=connection_sk->sk_nid;
439 + if (mark == -1 && (ct->xid[dir] != 0))
440 + mark = ct->xid[dir];
442 + if (connection_sk->sk_state == TCP_TIME_WAIT) {
443 + inet_twsk_put(inet_twsk(connection_sk));
446 + sock_put(connection_sk);
449 + /* All else failed. Is this a connection over raw sockets?
450 + That explains why we couldn't get anything out of skb->sk,
451 + or look up a "real" connection. */
452 + if (ct->xid[dir] < 1) {
454 + ct->xid[dir] = skb->skb_tag;
457 + /* Covers CoDemux case */
458 + if (mark < 1 && (ct->xid[dir] > 0))
459 + mark = ct->xid[dir];
461 + if (mark < 1 && (ct->xid[!dir] > 0))
462 + mark = ct->xid[!dir];
467 + mark = (skb->mark & ~info->mask) ^ info->mark;
472 + curtag = &__get_cpu_var(sknid_elevator);
473 + if (mark > 0 && *curtag == -2 && hooknum == NF_INET_LOCAL_IN)
476 + return XT_CONTINUE;
480 +mark_tg_check_v0(const char *tablename, const void *entry,
481 + const struct xt_target *target, void *targinfo,
482 + unsigned int hook_mask)
484 + const struct xt_mark_target_info *markinfo = targinfo;
486 + if (markinfo->mark > 0xffffffff) {
487 + printk(KERN_WARNING "MARK: Only supports 32bit wide mark\n");
494 +mark_tg_check_v1(const char *tablename, const void *entry,
495 + const struct xt_target *target, void *targinfo,
496 + unsigned int hook_mask)
498 + const struct xt_mark_target_info_v1 *markinfo = targinfo;
500 + if (markinfo->mode != XT_MARK_SET
501 + && markinfo->mode != XT_MARK_AND
502 + && markinfo->mode != XT_MARK_OR) {
503 + printk(KERN_WARNING "MARK: unknown mode %u\n",
507 + if (markinfo->mark > 0xffffffff) {
508 + printk(KERN_WARNING "MARK: Only supports 32bit wide mark\n");
514 +#ifdef CONFIG_COMPAT
515 +struct compat_xt_mark_target_info {
516 + compat_ulong_t mark;
519 +static void mark_tg_compat_from_user_v0(void *dst, void *src)
521 + const struct compat_xt_mark_target_info *cm = src;
522 + struct xt_mark_target_info m = {
525 + memcpy(dst, &m, sizeof(m));
528 +static int mark_tg_compat_to_user_v0(void __user *dst, void *src)
530 + const struct xt_mark_target_info *m = src;
531 + struct compat_xt_mark_target_info cm = {
534 + return copy_to_user(dst, &cm, sizeof(cm)) ? -EFAULT : 0;
537 +struct compat_xt_mark_target_info_v1 {
538 + compat_ulong_t mark;
544 +static void mark_tg_compat_from_user_v1(void *dst, void *src)
546 + const struct compat_xt_mark_target_info_v1 *cm = src;
547 + struct xt_mark_target_info_v1 m = {
551 + memcpy(dst, &m, sizeof(m));
554 +static int mark_tg_compat_to_user_v1(void __user *dst, void *src)
556 + const struct xt_mark_target_info_v1 *m = src;
557 + struct compat_xt_mark_target_info_v1 cm = {
561 + return copy_to_user(dst, &cm, sizeof(cm)) ? -EFAULT : 0;
563 +#endif /* CONFIG_COMPAT */
565 +static struct xt_target mark_tg_reg[] __read_mostly = {
570 + .checkentry = mark_tg_check_v0,
571 + .target = mark_tg_v0,
572 + .targetsize = sizeof(struct xt_mark_target_info),
573 +#ifdef CONFIG_COMPAT
574 + .compatsize = sizeof(struct compat_xt_mark_target_info),
575 + .compat_from_user = mark_tg_compat_from_user_v0,
576 + .compat_to_user = mark_tg_compat_to_user_v0,
585 + .checkentry = mark_tg_check_v1,
586 + .target = mark_tg_v1,
587 + .targetsize = sizeof(struct xt_mark_target_info_v1),
588 +#ifdef CONFIG_COMPAT
589 + .compatsize = sizeof(struct compat_xt_mark_target_info_v1),
590 + .compat_from_user = mark_tg_compat_from_user_v1,
591 + .compat_to_user = mark_tg_compat_to_user_v1,
598 + .family = AF_INET6,
600 + .checkentry = mark_tg_check_v0,
601 + .target = mark_tg_v0,
602 + .targetsize = sizeof(struct xt_mark_target_info),
603 +#ifdef CONFIG_COMPAT
604 + .compatsize = sizeof(struct compat_xt_mark_target_info),
605 + .compat_from_user = mark_tg_compat_from_user_v0,
606 + .compat_to_user = mark_tg_compat_to_user_v0,
613 + .family = AF_INET6,
615 + .checkentry = mark_tg_check_v1,
616 + .target = mark_tg_v1,
617 + .targetsize = sizeof(struct xt_mark_target_info_v1),
618 +#ifdef CONFIG_COMPAT
619 + .compatsize = sizeof(struct compat_xt_mark_target_info_v1),
620 + .compat_from_user = mark_tg_compat_from_user_v1,
621 + .compat_to_user = mark_tg_compat_to_user_v1,
631 + .targetsize = sizeof(struct xt_mark_tginfo2),
637 + .family = AF_INET6,
639 + .targetsize = sizeof(struct xt_mark_tginfo2),
644 +static int __init mark_tg_init(void)
646 + return xt_register_targets(mark_tg_reg, ARRAY_SIZE(mark_tg_reg));
649 +static void __exit mark_tg_exit(void)
651 + xt_unregister_targets(mark_tg_reg, ARRAY_SIZE(mark_tg_reg));
654 +module_init(mark_tg_init);
655 +module_exit(mark_tg_exit);
656 diff -Nurb linux-2.6.27-521/scripts/basic/.docproc.cmd linux-2.6.27-522/scripts/basic/.docproc.cmd
657 --- linux-2.6.27-521/scripts/basic/.docproc.cmd 1969-12-31 19:00:00.000000000 -0500
658 +++ linux-2.6.27-522/scripts/basic/.docproc.cmd 2009-06-02 10:59:54.000000000 -0400
660 +cmd_scripts/basic/docproc := gcc -Wp,-MD,scripts/basic/.docproc.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/docproc scripts/basic/docproc.c
662 +deps_scripts/basic/docproc := \
663 + scripts/basic/docproc.c \
664 + /usr/include/stdio.h \
665 + /usr/include/features.h \
666 + /usr/include/sys/cdefs.h \
667 + /usr/include/bits/wordsize.h \
668 + /usr/include/gnu/stubs.h \
669 + /usr/include/gnu/stubs-32.h \
670 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h \
671 + /usr/include/bits/types.h \
672 + /usr/include/bits/typesizes.h \
673 + /usr/include/libio.h \
674 + /usr/include/_G_config.h \
675 + /usr/include/wchar.h \
676 + /usr/include/bits/wchar.h \
677 + /usr/include/gconv.h \
678 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h \
679 + /usr/include/bits/stdio_lim.h \
680 + /usr/include/bits/sys_errlist.h \
681 + /usr/include/bits/stdio.h \
682 + /usr/include/stdlib.h \
683 + /usr/include/sys/types.h \
684 + /usr/include/time.h \
685 + /usr/include/endian.h \
686 + /usr/include/bits/endian.h \
687 + /usr/include/sys/select.h \
688 + /usr/include/bits/select.h \
689 + /usr/include/bits/sigset.h \
690 + /usr/include/bits/time.h \
691 + /usr/include/sys/sysmacros.h \
692 + /usr/include/bits/pthreadtypes.h \
693 + /usr/include/alloca.h \
694 + /usr/include/string.h \
695 + /usr/include/bits/string.h \
696 + /usr/include/bits/string2.h \
697 + /usr/include/ctype.h \
698 + /usr/include/unistd.h \
699 + /usr/include/bits/posix_opt.h \
700 + /usr/include/bits/confname.h \
701 + /usr/include/getopt.h \
702 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h \
703 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h \
704 + /usr/include/limits.h \
705 + /usr/include/bits/posix1_lim.h \
706 + /usr/include/bits/local_lim.h \
707 + /usr/include/linux/limits.h \
708 + /usr/include/bits/posix2_lim.h \
709 + /usr/include/sys/wait.h \
710 + /usr/include/signal.h \
711 + /usr/include/bits/signum.h \
712 + /usr/include/bits/siginfo.h \
713 + /usr/include/bits/sigaction.h \
714 + /usr/include/bits/sigcontext.h \
715 + /usr/include/asm/sigcontext.h \
716 + /usr/include/asm/types.h \
717 + /usr/include/asm-generic/int-ll64.h \
718 + /usr/include/bits/sigstack.h \
719 + /usr/include/bits/sigthread.h \
720 + /usr/include/sys/resource.h \
721 + /usr/include/bits/resource.h \
722 + /usr/include/bits/waitflags.h \
723 + /usr/include/bits/waitstatus.h \
725 +scripts/basic/docproc: $(deps_scripts/basic/docproc)
727 +$(deps_scripts/basic/docproc):
728 diff -Nurb linux-2.6.27-521/scripts/basic/.fixdep.cmd linux-2.6.27-522/scripts/basic/.fixdep.cmd
729 --- linux-2.6.27-521/scripts/basic/.fixdep.cmd 1969-12-31 19:00:00.000000000 -0500
730 +++ linux-2.6.27-522/scripts/basic/.fixdep.cmd 2009-06-02 10:59:54.000000000 -0400
732 +cmd_scripts/basic/fixdep := gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/fixdep scripts/basic/fixdep.c
734 +deps_scripts/basic/fixdep := \
735 + scripts/basic/fixdep.c \
736 + $(wildcard include/config/his/driver.h) \
737 + $(wildcard include/config/my/option.h) \
738 + $(wildcard include/config/.h) \
739 + $(wildcard include/config/foo.h) \
740 + $(wildcard include/config/boom.h) \
741 + /usr/include/sys/types.h \
742 + /usr/include/features.h \
743 + /usr/include/sys/cdefs.h \
744 + /usr/include/bits/wordsize.h \
745 + /usr/include/gnu/stubs.h \
746 + /usr/include/gnu/stubs-32.h \
747 + /usr/include/bits/types.h \
748 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h \
749 + /usr/include/bits/typesizes.h \
750 + /usr/include/time.h \
751 + /usr/include/endian.h \
752 + /usr/include/bits/endian.h \
753 + /usr/include/sys/select.h \
754 + /usr/include/bits/select.h \
755 + /usr/include/bits/sigset.h \
756 + /usr/include/bits/time.h \
757 + /usr/include/sys/sysmacros.h \
758 + /usr/include/bits/pthreadtypes.h \
759 + /usr/include/sys/stat.h \
760 + /usr/include/bits/stat.h \
761 + /usr/include/sys/mman.h \
762 + /usr/include/bits/mman.h \
763 + /usr/include/unistd.h \
764 + /usr/include/bits/posix_opt.h \
765 + /usr/include/bits/confname.h \
766 + /usr/include/getopt.h \
767 + /usr/include/fcntl.h \
768 + /usr/include/bits/fcntl.h \
769 + /usr/include/string.h \
770 + /usr/include/bits/string.h \
771 + /usr/include/bits/string2.h \
772 + /usr/include/stdlib.h \
773 + /usr/include/alloca.h \
774 + /usr/include/stdio.h \
775 + /usr/include/libio.h \
776 + /usr/include/_G_config.h \
777 + /usr/include/wchar.h \
778 + /usr/include/bits/wchar.h \
779 + /usr/include/gconv.h \
780 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h \
781 + /usr/include/bits/stdio_lim.h \
782 + /usr/include/bits/sys_errlist.h \
783 + /usr/include/bits/stdio.h \
784 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h \
785 + /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h \
786 + /usr/include/limits.h \
787 + /usr/include/bits/posix1_lim.h \
788 + /usr/include/bits/local_lim.h \
789 + /usr/include/linux/limits.h \
790 + /usr/include/bits/posix2_lim.h \
791 + /usr/include/ctype.h \
792 + /usr/include/arpa/inet.h \
793 + /usr/include/netinet/in.h \
794 + /usr/include/stdint.h \
795 + /usr/include/sys/socket.h \
796 + /usr/include/sys/uio.h \
797 + /usr/include/bits/uio.h \
798 + /usr/include/bits/socket.h \
799 + /usr/include/bits/sockaddr.h \
800 + /usr/include/asm/socket.h \
801 + /usr/include/asm/sockios.h \
802 + /usr/include/bits/in.h \
803 + /usr/include/bits/byteswap.h \
805 +scripts/basic/fixdep: $(deps_scripts/basic/fixdep)
807 +$(deps_scripts/basic/fixdep):
808 Files linux-2.6.27-521/scripts/basic/docproc and linux-2.6.27-522/scripts/basic/docproc differ
809 Files linux-2.6.27-521/scripts/basic/fixdep and linux-2.6.27-522/scripts/basic/fixdep differ