[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/kernel/devel git-gregkh.patch, 1.6, 1.7 kernel-2.6.spec, 1.2568, 1.2569 linux-2.6-utrace.patch, 1.17, 1.18 linux-2.6-hotplug-cpu-workqueue.patch, 1.1, NONE



Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv10726

Modified Files:
	git-gregkh.patch kernel-2.6.spec linux-2.6-utrace.patch 
Removed Files:
	linux-2.6-hotplug-cpu-workqueue.patch 
Log Message:
update to new gregkh tree

git-gregkh.patch:
 b/Documentation/fb/imacfb.txt                 |   31 +
 b/Documentation/kobject.txt                   |    2 
 b/MAINTAINERS                                 |    8 
 b/Makefile                                    |   23 +
 b/arch/arm/common/rtctime.c                   |    1 
 b/arch/arm/kernel/traps.c                     |    2 
 b/arch/arm/mach-ixp4xx/common-pci.c           |    2 
 b/arch/arm/mach-ixp4xx/gtwx5715-setup.c       |    7 
 b/arch/i386/kernel/traps.c                    |    2 
 b/arch/ia64/kernel/traps.c                    |    2 
 b/arch/powerpc/kernel/traps.c                 |    2 
 b/arch/x86_64/kernel/traps.c                  |    2 
 b/arch/xtensa/kernel/traps.c                  |    2 
 b/drivers/ide/pci/generic.c                   |   30 +
 b/drivers/md/dm-mpath.c                       |    3 
 b/drivers/media/dvb/bt8xx/dst.c               |   58 +--
 b/drivers/media/dvb/dvb-core/Makefile         |    6 
 b/drivers/media/radio/Kconfig                 |   12 
 b/drivers/media/radio/Makefile                |    1 
 b/drivers/media/radio/dsbr100.c               |  430 ++++++++++++++++++++++++++
 b/drivers/media/video/Kconfig                 |   12 
 b/drivers/media/video/Makefile                |    2 
 b/drivers/media/video/compat_ioctl32.c        |   32 +
 b/drivers/media/video/cx25840/cx25840-core.c  |    4 
 b/drivers/media/video/cx88/cx88-video.c       |    4 
 b/drivers/media/video/msp3400-kthreads.c      |    4 
 b/drivers/media/video/pwc/Kconfig             |    2 
 b/drivers/media/video/pwc/pwc-if.c            |    1 
 b/drivers/media/video/saa7134/saa7134-video.c |    2 
 b/drivers/media/video/tuner-types.c           |   14 
 b/drivers/media/video/v4l1-compat.c           |    4 
 b/drivers/media/video/v4l2-common.c           |    6 
 b/drivers/media/video/videodev.c              |    2 
 b/drivers/media/video/vivi.c                  |    4 
 b/drivers/mmc/mmc_queue.c                     |    3 
 b/drivers/mmc/wbsd.c                          |    9 
 b/drivers/net/myri10ge/myri10ge.c             |    2 
 b/drivers/net/tg3.c                           |   51 +--
 b/drivers/net/tg3.h                           |    8 
 b/drivers/pci/hotplug/Kconfig                 |    7 
 b/drivers/pci/hotplug/pciehp.h                |    5 
 b/drivers/pci/hotplug/pciehp_hpc.c            |    4 
 b/drivers/s390/char/tape_class.c              |    2 
 b/drivers/s390/cio/device_fsm.c               |    1 
 b/drivers/s390/cio/device_ops.c               |    3 
 b/drivers/scsi/arm/Kconfig                    |    3 
 b/drivers/scsi/arm/scsi.h                     |    2 
 b/drivers/scsi/ata_piix.c                     |    5 
 b/drivers/scsi/libata-core.c                  |   34 --
 b/drivers/scsi/libata-scsi.c                  |   13 
 b/drivers/scsi/sata_sil24.c                   |    1 
 b/drivers/usb/host/ohci-au1xxx.c              |    1 
 b/drivers/usb/input/appletouch.c              |    2 
 b/drivers/usb/misc/usbtest.c                  |    5 
 b/drivers/usb/serial/ftdi_sio.c               |    2 
 b/drivers/usb/serial/ftdi_sio.h               |    6 
 b/drivers/usb/serial/ipaq.c                   |    2 
 b/drivers/usb/storage/unusual_devs.h          |   10 
 b/drivers/video/Kconfig                       |    2 
 b/drivers/video/imacfb.c                      |   49 ++
 b/fs/adfs/super.c                             |    2 
 b/fs/fuse/file.c                              |   10 
 b/fs/jfs/inode.c                              |   16 
 b/fs/jfs/jfs_inode.h                          |    1 
 b/fs/jfs/super.c                              |  118 ++++++-
 b/fs/locks.c                                  |    6 
 b/fs/ocfs2/dlm/dlmmaster.c                    |    1 
 b/fs/ocfs2/dlm/dlmunlock.c                    |   43 +-
 b/fs/ocfs2/localalloc.c                       |    8 
 b/fs/ocfs2/ocfs2.h                            |    2 
 b/fs/ocfs2/suballoc.c                         |  261 +++++++++++++--
 b/fs/ocfs2/suballoc.h                         |    2 
 b/fs/ocfs2/super.c                            |    8 
 b/fs/udf/super.c                              |    7 
 b/fs/xfs/xfs_alloc.c                          |  103 +++---
 b/include/linux/fb.h                          |    2 
 b/include/linux/kernel.h                      |    1 
 b/include/linux/mm.h                          |    1 
 b/include/linux/skbuff.h                      |   19 +
 b/include/media/v4l2-dev.h                    |    2 
 b/kernel/futex.c                              |   16 
 b/kernel/hrtimer.c                            |    2 
 b/kernel/panic.c                              |    1 
 b/kernel/timer.c                              |   41 --
 b/kernel/workqueue.c                          |   33 +
 b/mm/swap.c                                   |   20 +
 b/net/bridge/netfilter/ebt_ulog.c             |    3 
 b/net/core/dst.c                              |    3 
 b/net/core/pktgen.c                           |    4 
 b/net/core/rtnetlink.c                        |   15 
 b/net/core/skbuff.c                           |    4 
 b/net/core/wireless.c                         |   24 +
 b/net/ipv4/ip_output.c                        |    4 
 b/net/ipv4/netfilter/arp_tables.c             |   27 +
 b/net/ipv4/netfilter/ip_tables.c              |   33 +
 b/net/ipv4/netfilter/ipt_ULOG.c               |    5 
 b/net/ipv4/netfilter/ipt_hashlimit.c          |   11 
 b/net/ipv4/route.c                            |    2 
 b/net/ipv4/tcp_output.c                       |   12 
 b/net/ipv4/tcp_probe.c                        |    3 
 b/net/ipv6/addrconf.c                         |    4 
 b/net/ipv6/ip6_output.c                       |    2 
 b/net/ipv6/netfilter/ip6_tables.c             |   34 +-
 b/net/ipx/af_ipx.c                            |   10 
 b/net/llc/llc_sap.c                           |    3 
 b/net/netfilter/nfnetlink_log.c               |    3 
 b/net/netfilter/xt_string.c                   |    2 
 b/net/xfrm/xfrm_policy.c                      |   27 +
 b/scripts/mod/file2alias.c                    |    2 
 b/sound/oss/Kconfig                           |    6 
 b/sound/pci/Kconfig                           |   70 ++--
 b/usr/Makefile                                |    3 
 drivers/media/video/dsbr100.c                 |  430 --------------------------
 113 files changed, 1536 insertions(+), 887 deletions(-)

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.6 -r 1.7 git-gregkh.patch
Index: git-gregkh.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/git-gregkh.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- git-gregkh.patch	11 Aug 2006 22:21:35 -0000	1.6
+++ git-gregkh.patch	16 Aug 2006 05:57:43 -0000	1.7
@@ -1,3 +1,509 @@
+commit e0e92632715f08dddeddb72b76e04c20126e1f67
+Author: Hans de Goede <j w r degoede hhs nl>
+Date:   Tue Aug 15 12:09:27 2006 +0200
+
+    [PATCH] PATCH: 1 line 2.6.18 bugfix: modpost-64bit-fix.patch
+    
+    There is a small but annoying bug in scripts/mod/file2alias.c which causes
+    it to generate invalid aliases for input devices on 64 bit archs. This causes
+    joydev.ko to not be automaticly loaded when inserting a joystick, resulting in
+    a non working joystick (for the average user).
+    
+    In scripts/mod/file2alias.c is the following code for generating the input
+    aliases:
+    static void do_input(char *alias,
+                         kernel_ulong_t *arr, unsigned int min, unsigned int max)
+    {
+            unsigned int i;
+    
+            for (i = min; i < max; i++)
+                    if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG)))
+                            sprintf(alias + strlen(alias), "%X,*", i);
+    }
+    
+    On 32 bits systems, this correctly generates "0,*" for the first alias, "8,*"
+    for the second etc.
+    
+    However on 64 bits it generates: "0,*20,*" resp "8,*28,*" Notice how it adds 20
+    + first entry (hex) ! to the list of hex codes, which is 32 more then the first
+    entry, thus is because the bit test above wraps at 32 bits instead of 64.
+    
+    scripts/mod/file2alias.c, line 379 reads:
+                    if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG)))
+    That should be:
+                    if (arr[i / BITS_PER_LONG] & (1L << (i%BITS_PER_LONG)))
+    
+    Notice the added 'L' after the 1, otherwise that is an 32 bit int instead of a
+    64 bit long, and when that int gets shifted >= 32 times, appearantly the number
+    by which to shift is wrapped at 5 bits ( % 32) causing it to test a bit 32 bits
+    too low.
+    
+    The patch below makes the nescesarry 1 char change :)
+    
+    Signed-off-by: Hans de Goede <j w r degoede hhs nl>
+    Acked-by: Rusty Russell <rusty rustcorp com au>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit 80914d97aa0c61fbfd8eadd120c863b6229f0809
+Merge: 74361cb... 883d4ca...
+Author: Greg Kroah-Hartman <gregkh suse de>
+Date:   Tue Aug 15 12:31:36 2006 -0700
+
+    Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2
+
+commit 74361cb6828398a96167b3234e186fbd731e5f30
+Author: Trond Myklebust <trond myklebust fys uio no>
+Date:   Mon Aug 14 08:54:48 2006 -0700
+
+    [PATCH] fcntl(F_SETSIG) fix
+    
+    fcntl(F_SETSIG) no longer works on leases because
+    lease_release_private_callback() gets called as the lease is copied in
+    order to initialise it.
+    
+    The problem is that lease_alloc() performs an unnecessary initialisation,
+    which sets the lease_manager_ops.  Avoid the problem by allocating the
+    target lease structure using locks_alloc_lock().
+    
+    Signed-off-by: Trond Myklebust <Trond Myklebust netapp com>
+    Signed-off-by: Andrew Morton <akpm osdl org>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit 1d7ea7324ae7a59f8e17e4ba76a2707c1e6f24d2
+Author: Alexander Zarochentsev <zam namesys com>
+Date:   Sun Aug 13 23:24:27 2006 -0700
+
+    [PATCH] fuse: fix error case in fuse_readpages
+    
+    Don't let fuse_readpages leave the @pages list not empty when exiting
+    on error.
+    
+    [akpm osdl org: kernel-doc fixes]
+    Signed-off-by: Alexander Zarochentsev <zam namesys com>
+    Signed-off-by: Miklos Szeredi <miklos szeredi hu>
+    Signed-off-by: Andrew Morton <akpm osdl org>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit 9b41ea7289a589993d3daabc61f999b4147872c4
+Author: Andrew Morton <akpm osdl org>
+Date:   Sun Aug 13 23:24:26 2006 -0700
+
+    [PATCH] workqueue: remove lock_cpu_hotplug()
+    
+    Use a private lock instead.  It protects all per-cpu data structures in
+    workqueue.c, including the workqueues list.
+    
+    Fix a bug in schedule_on_each_cpu(): it was forgetting to lock down the
+    per-cpu resources.
+    
+    Unfixed long-standing bug: if someone unplugs the CPU identified by
+    `singlethread_cpu' the kernel will get very sick.
+    
+    Cc: Dave Jones <davej codemonkey org uk>
+    Signed-off-by: Andrew Morton <akpm osdl org>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit 2b25742556b1a351ce4821f6feddcba23bdd930b
+Author: Michal Januszewski <spock gentoo org>
+Date:   Sun Aug 13 23:24:26 2006 -0700
+
+    [PATCH] fbdev: include backlight.h only when __KERNEL__ is defined
+    
+    linux/backlight.h pulls in header files (eg.  ioport.h) that break
+    compilation of userspace programs.  To solve the problem, only include
+    backlight.h in fb.h if compiling kernel stuff.
+    
+    Signed-off-by: Michal Januszewski <spock gentoo org>
+    Cc: "Antonino A. Daplas" <adaplas pol net>
+    Signed-off-by: Andrew Morton <akpm osdl org>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit e579dcbf23604cb33c08b5c3c3ac06ca36e7c683
+Author: john stultz <johnstul us ibm com>
+Date:   Sun Aug 13 23:24:24 2006 -0700
+
+    [PATCH] futex_handle_fault always fails
+    
+    We found this issue last week w/ the -RT kernel, but it seems the same
+    issue is in mainline as well.
+    
+    Basically it is possible for futex_unlock_pi to return without actually
+    freeing the lock.  This is due to buggy logic in the use of
+    futex_handle_fault() and its attempt argument in a failure case.
+    
+    Looking at futex.c the logic is as follows:
+    
+    1) In futex_unlock_pi() we start w/ ret=0 and we go down to the first
+       futex_atomic_cmpxchg_inatomic(), where we find uval==-EFAULT.  We then
+       jump to the pi_faulted label.
+    
+    2) From pi_faulted: We increment attempt, unlock the sem and hit the
+       retry label.
+    
+    3) From the retry label, with ret still zero, we again hit EFAULT on the
+       first futex_atomic_cmpxchg_inatomic(), and again goto the pi_faulted
+       label.
+    
+    4) Again from pi_faulted: we increment attempt and enter the
+       conditional, where we call futex_handle_fault.
+    
+    5) futex_handle_fault fails, and we goto the out_unlock_release_sem
+       label.
+    
+    6) From out_unlock_release_sem we return, and since ret is still zero,
+       we return without error, while never actually unlocking the lock.
+    
+    Issue #1: at the first futex_atomic_cmpxchg_inatomic() we should probably
+    be setting ret=-EFAULT before jumping to pi_faulted: However in our case
+    this doesn't really affect anything, as the glibc we're using ignores the
+    error value from futex_unlock_pi().
+    
+    Issue #2: Look at futex_handle_fault(), its first conditional will return
+    -EFAULT if attempt is >= 2.  However, from the "if(attempt++)
+    futex_handle_fault(attempt)" logic above, we'll *never* call
+    futex_handle_fault when attempt is less then two.  So we never get a chance
+    to even try to fault the page in.
+    
+    The following patch addresses these two issues by 1) Always setting ret to
+    -EFAULT if futex_handle_fault fails, and 2) Removing the = in
+    futex_handle_fault's (attempt >= 2) check.
+    
+    I'm really not sure this is the right fix, but wanted to bring it up so
+    folks knew the issue is alive and well in the current -git tree.  From
+    looking at the git logs the logic was first introduced (then later copied
+    to other places) in the following commit almost a year ago:
+    
+    http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4732efbeb997189d9f9b04708dc26bf8613ed721;hp=5b039e681b8c5f30aac9cc04385cc94be45d0823
+    
+    Cc: Rusty Russell <rusty rustcorp com au>
+    Cc: Ingo Molnar <mingo elte hu>
+    Acked-by: Thomas Gleixner <tglx linutronix de>
+    Signed-off-by: Andrew Morton <akpm osdl org>
+    Signed-off-by: Greg Kroah-Hartman <gregkh suse de>
+
+commit 6997a6faaa129a1c91775f7344c8d371a05178ea
+Author: Kirill Korotaev <dev sw ru>
+Date:   Sun Aug 13 23:24:23 2006 -0700
+
+    [PATCH] sys_getppid oopses on debug kernel
+    
+    sys_getppid() optimization can access a freed memory.  On kernels with
+    DEBUG_SLAB turned ON, this results in Oops.  As Dave Hansen noted, this
[...2082 lines suppressed...]
@@ -4059,6 +6198,24 @@
  	TCP_INC_STATS(TCP_MIB_ACTIVEOPENS);
  
  	/* Timer for repeating the SYN until an answer. */
+diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
+index b343532..dab37d2 100644
+--- a/net/ipv4/tcp_probe.c
++++ b/net/ipv4/tcp_probe.c
+@@ -130,11 +130,12 @@ static ssize_t tcpprobe_read(struct file
+ 	error = wait_event_interruptible(tcpw.wait,
+ 					 __kfifo_len(tcpw.fifo) != 0);
+ 	if (error)
+-		return error;
++		goto out_free;
+ 
+ 	cnt = kfifo_get(tcpw.fifo, tbuf, len);
+ 	error = copy_to_user(buf, tbuf, cnt);
+ 
++out_free:
+ 	vfree(tbuf);
+ 
+ 	return error ? error : cnt;
 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
 index 8ea1e36..0c5042e 100644
 --- a/net/ipv6/addrconf.c
@@ -4077,6 +6234,72 @@
  
  		addrconf_dad_start(ifp, 0);
  		in6_ifa_put(ifp);
+diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
+index 69451af..4fb47a2 100644
+--- a/net/ipv6/ip6_output.c
++++ b/net/ipv6/ip6_output.c
+@@ -1095,7 +1095,7 @@ alloc_new_skb:
+ 				skb_prev->csum = csum_sub(skb_prev->csum,
+ 							  skb->csum);
+ 				data += fraggap;
+-				skb_trim(skb_prev, maxfraglen);
++				pskb_trim_unique(skb_prev, maxfraglen);
+ 			}
+ 			copy = datalen - transhdrlen - fraggap;
+ 			if (copy < 0) {
+diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
+index f26898b..c9d6b23 100644
+--- a/net/ipv6/netfilter/ip6_tables.c
++++ b/net/ipv6/netfilter/ip6_tables.c
+@@ -1398,23 +1398,39 @@ static int __init ip6_tables_init(void)
+ {
+ 	int ret;
+ 
+-	xt_proto_init(AF_INET6);
++	ret = xt_proto_init(AF_INET6);
++	if (ret < 0)
++		goto err1;
+ 
+ 	/* Noone else will be downing sem now, so we won't sleep */
+-	xt_register_target(&ip6t_standard_target);
+-	xt_register_target(&ip6t_error_target);
+-	xt_register_match(&icmp6_matchstruct);
++	ret = xt_register_target(&ip6t_standard_target);
++	if (ret < 0)
++		goto err2;
++	ret = xt_register_target(&ip6t_error_target);
++	if (ret < 0)
++		goto err3;
++	ret = xt_register_match(&icmp6_matchstruct);
++	if (ret < 0)
++		goto err4;
+ 
+ 	/* Register setsockopt */
+ 	ret = nf_register_sockopt(&ip6t_sockopts);
+-	if (ret < 0) {
+-		duprintf("Unable to register sockopts.\n");
+-		xt_proto_fini(AF_INET6);
+-		return ret;
+-	}
++	if (ret < 0)
++		goto err5;
+ 
+ 	printk("ip6_tables: (C) 2000-2006 Netfilter Core Team\n");
+ 	return 0;
++
++err5:
++	xt_unregister_match(&icmp6_matchstruct);
++err4:
++	xt_unregister_target(&ip6t_error_target);
++err3:
++	xt_unregister_target(&ip6t_standard_target);
++err2:
++	xt_proto_fini(AF_INET6);
++err1:
++	return ret;
+ }
+ 
+ static void __exit ip6_tables_fini(void)
 diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c
 index aa34ff4..bef3f61 100644
 --- a/net/ipx/af_ipx.c
@@ -4102,6 +6325,101 @@
  	if (ipx->ipx_checksum != IPX_NO_CHECKSUM &&
  	   ipx->ipx_checksum != ipx_cksum(ipx, ipx_pktsize))
  		goto drop;
+diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c
+index 42eb0c3..61cb8cf 100644
+--- a/net/llc/llc_sap.c
++++ b/net/llc/llc_sap.c
+@@ -330,6 +330,9 @@ static void llc_sap_mcast(struct llc_sap
+ 		if (llc->laddr.lsap != laddr->lsap)
+ 			continue;
+ 
++		if (llc->dev != skb->dev)
++			continue;
++
+ 		skb1 = skb_clone(skb, GFP_ATOMIC);
+ 		if (!skb1)
+ 			break;
+diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
+index 61cdda4..b59d3b2 100644
+--- a/net/netfilter/nfnetlink_log.c
++++ b/net/netfilter/nfnetlink_log.c
+@@ -366,6 +366,9 @@ __nfulnl_send(struct nfulnl_instance *in
+ 	if (timer_pending(&inst->timer))
+ 		del_timer(&inst->timer);
+ 
++	if (!inst->skb)
++		return 0;
++
+ 	if (inst->qlen > 1)
+ 		inst->lastnlh->nlmsg_type = NLMSG_DONE;
+ 
+diff --git a/net/netfilter/xt_string.c b/net/netfilter/xt_string.c
+index d8e3891..275330f 100644
+--- a/net/netfilter/xt_string.c
++++ b/net/netfilter/xt_string.c
+@@ -37,7 +37,7 @@ static int match(const struct sk_buff *s
+ 
+ 	return (skb_find_text((struct sk_buff *)skb, conf->from_offset, 
+ 			     conf->to_offset, conf->config, &state) 
+-			     != UINT_MAX) && !conf->invert;
++			     != UINT_MAX) ^ conf->invert;
+ }
+ 
+ #define STRING_TEXT_PRIV(m) ((struct xt_string_info *) m)
+diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
+index f35bc67..3da67ca 100644
+--- a/net/xfrm/xfrm_policy.c
++++ b/net/xfrm/xfrm_policy.c
+@@ -1134,12 +1134,33 @@ int __xfrm_route_forward(struct sk_buff 
+ }
+ EXPORT_SYMBOL(__xfrm_route_forward);
+ 
++/* Optimize later using cookies and generation ids. */
++
+ static struct dst_entry *xfrm_dst_check(struct dst_entry *dst, u32 cookie)
+ {
+-	/* If it is marked obsolete, which is how we even get here,
+-	 * then we have purged it from the policy bundle list and we
+-	 * did that for a good reason.
++	/* Code (such as __xfrm4_bundle_create()) sets dst->obsolete
++	 * to "-1" to force all XFRM destinations to get validated by
++	 * dst_ops->check on every use.  We do this because when a
++	 * normal route referenced by an XFRM dst is obsoleted we do
++	 * not go looking around for all parent referencing XFRM dsts
++	 * so that we can invalidate them.  It is just too much work.
++	 * Instead we make the checks here on every use.  For example:
++	 *
++	 *	XFRM dst A --> IPv4 dst X
++	 *
++	 * X is the "xdst->route" of A (X is also the "dst->path" of A
++	 * in this example).  If X is marked obsolete, "A" will not
++	 * notice.  That's what we are validating here via the
++	 * stale_bundle() check.
++	 *
++	 * When a policy's bundle is pruned, we dst_free() the XFRM
++	 * dst which causes it's ->obsolete field to be set to a
++	 * positive non-zero integer.  If an XFRM dst has been pruned
++	 * like this, we want to force a new route lookup.
+ 	 */
++	if (dst->obsolete < 0 && !stale_bundle(dst))
++		return dst;
++
+ 	return NULL;
+ }
+ 
+diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
+index 4431292..e2de650 100644
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -391,7 +391,7 @@ static void do_input(char *alias,
+ 	unsigned int i;
+ 
+ 	for (i = min; i < max; i++)
+-		if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG)))
++		if (arr[i / BITS_PER_LONG] & (1L << (i%BITS_PER_LONG)))
+ 			sprintf(alias + strlen(alias), "%X,*", i);
+ }
+ 
 diff --git a/sound/oss/Kconfig b/sound/oss/Kconfig
 index f4980ca..1b7c3df 100644
 --- a/sound/oss/Kconfig


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2568
retrieving revision 1.2569
diff -u -r1.2568 -r1.2569
--- kernel-2.6.spec	15 Aug 2006 21:56:07 -0000	1.2568
+++ kernel-2.6.spec	16 Aug 2006 05:57:44 -0000	1.2569
@@ -399,7 +399,6 @@
 Patch1630: linux-2.6-mm-suspend-improvements.patch
 Patch1640: linux-2.6-autofs-revalidate-lookup.patch
 Patch1650: linux-2.6-serial-460800.patch
-Patch1660: linux-2.6-hotplug-cpu-workqueue.patch
 Patch1670: linux-2.6-softcursor-persistent-alloc.patch
 Patch1710: linux-2.6-sched-up-migration-cost.patch
 Patch1720: linux-2.6-proc-self-maps-fix.patch
@@ -900,8 +899,6 @@
 %patch1640 -p1
 # Allow to use 480600 baud on 16C950 UARTs
 %patch1650 -p1
-# Fix hotplug CPU locking in workqueue creation.
-%patch1660 -p1
 # Use persistent allocation in softcursor
 %patch1670 -p1
 # Only print migration info on SMP
@@ -1688,6 +1685,9 @@
 %endif
 
 %changelog
+* Wed Aug 16 2006 Dave Jones <davej redhat com>
+- Update to latest GregKH tree.
+
 * Tue Aug 15 2006 Don Zickus <dzickus redhat com>
 - cleanup config-rhel-generic to compile again
 - removed useless options in config-rhel-generic

linux-2.6-utrace.patch:
 Documentation/utrace.txt                |  455 +++++++++
 arch/alpha/kernel/asm-offsets.c         |    2 
 arch/alpha/kernel/entry.S               |    4 
 arch/arm/kernel/ptrace.c                |   36 
 arch/arm26/kernel/ptrace.c              |   32 
 arch/frv/kernel/ptrace.c                |   15 
 arch/i386/kernel/entry.S                |    7 
 arch/i386/kernel/i387.c                 |  143 +-
 arch/i386/kernel/process.c              |    3 
 arch/i386/kernel/ptrace.c               |  839 ++++++++--------
 arch/i386/kernel/signal.c               |   39 
 arch/i386/kernel/vm86.c                 |    7 
 arch/ia64/ia32/ia32_entry.S             |    2 
 arch/ia64/ia32/sys_ia32.c               |   23 
 arch/ia64/kernel/asm-offsets.c          |    2 
 arch/ia64/kernel/fsys.S                 |   16 
 arch/ia64/kernel/mca.c                  |    2 
 arch/ia64/kernel/ptrace.c               |   41 
 arch/ia64/kernel/signal.c               |    4 
 arch/mips/kernel/ptrace.c               |   21 
 arch/mips/kernel/sysirix.c              |    2 
 arch/powerpc/kernel/Makefile            |    4 
 arch/powerpc/kernel/asm-offsets.c       |    2 
 arch/powerpc/kernel/process.c           |    5 
 arch/powerpc/kernel/ptrace-common.h     |  161 ---
 arch/powerpc/kernel/ptrace.c            |  785 +++++++--------
 arch/powerpc/kernel/ptrace32.c          |  436 --------
 arch/powerpc/kernel/signal_32.c         |   56 +
 arch/powerpc/kernel/signal_64.c         |    4 
 arch/powerpc/kernel/sys_ppc32.c         |    5 
 arch/powerpc/lib/sstep.c                |    3 
 arch/powerpc/platforms/cell/spufs/run.c |    2 
 arch/ppc/kernel/asm-offsets.c           |    2 
 arch/s390/kernel/compat_linux.c         |    3 
 arch/s390/kernel/compat_signal.c        |    5 
 arch/s390/kernel/process.c              |    3 
 arch/s390/kernel/ptrace.c               |  553 +++++++++--
 arch/s390/kernel/signal.c               |    4 
 arch/s390/kernel/traps.c                |    6 
 arch/sparc64/kernel/entry.S             |    6 
 arch/sparc64/kernel/process.c           |    3 
 arch/sparc64/kernel/ptrace.c            |  653 +++++++++++--
 arch/sparc64/kernel/signal.c            |    2 
 arch/sparc64/kernel/signal32.c          |    2 
 arch/sparc64/kernel/sys_sparc32.c       |    3 
 arch/sparc64/kernel/systbls.S           |    4 
 arch/x86_64/ia32/fpu32.c                |   92 +
 arch/x86_64/ia32/ia32_aout.c            |    6 
 arch/x86_64/ia32/ia32_signal.c          |    8 
 arch/x86_64/ia32/ia32entry.S            |    2 
 arch/x86_64/ia32/ptrace32.c             |  688 ++++++++-----
 arch/x86_64/ia32/sys_ia32.c             |    5 
 arch/x86_64/kernel/process.c            |    5 
 arch/x86_64/kernel/ptrace.c             |  619 +++++++-----
 arch/x86_64/kernel/signal.c             |   30 
 arch/x86_64/kernel/traps.c              |    8 
 arch/x86_64/mm/fault.c                  |    4 
 drivers/connector/cn_proc.c             |    4 
 fs/binfmt_aout.c                        |    6 
 fs/binfmt_elf.c                         |    6 
 fs/binfmt_elf_fdpic.c                   |    7 
 fs/binfmt_flat.c                        |    3 
 fs/binfmt_som.c                         |    2 
 fs/exec.c                               |   11 
 fs/proc/array.c                         |   14 
 fs/proc/base.c                          |   17 
 include/asm-i386/i387.h                 |   13 
 include/asm-i386/signal.h               |    4 
 include/asm-i386/thread_info.h          |    7 
 include/asm-i386/tracehook.h            |   74 +
 include/asm-ia64/tracehook.h            |   67 +
 include/asm-powerpc/tracehook.h         |  303 ++++++
 include/asm-s390/tracehook.h            |  105 ++
 include/asm-sparc64/tracehook.h         |   44 
 include/asm-x86_64/fpu32.h              |    3 
 include/asm-x86_64/thread_info.h        |    2 
 include/asm-x86_64/tracehook.h          |  106 ++
 include/linux/init_task.h               |    3 
 include/linux/ptrace.h                  |   88 -
 include/linux/sched.h                   |   25 
 include/linux/tracehook.h               |  645 ++++++++++++
 include/linux/utrace.h                  |  481 +++++++++
 init/Kconfig                            |   29 
 kernel/Makefile                         |    1 
 kernel/exit.c                           |  253 +----
 kernel/fork.c                           |   62 -
 kernel/ptrace.c                         | 1592 +++++++++++++++++++++++++-------
 kernel/signal.c                         |  211 ----
 kernel/sys.c                            |    2 
 kernel/timer.c                          |    4 
 kernel/utrace.c                         | 1526 ++++++++++++++++++++++++++++++
 security/selinux/hooks.c                |   54 -
 security/selinux/include/objsec.h       |    1 
 93 files changed, 8330 insertions(+), 3319 deletions(-)

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-utrace.patch,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- linux-2.6-utrace.patch	11 Aug 2006 00:47:52 -0000	1.17
+++ linux-2.6-utrace.patch	16 Aug 2006 05:57:45 -0000	1.18
@@ -5356,29 +5356,20 @@
  }
  
  /*
-- * Accessing ->group_leader->real_parent is not SMP-safe, it could
-+ * Accessing ->group_leader->parent is not SMP-safe, it could
-  * change from under us. However, rather than getting any lock
-  * we can use an optimistic algorithm: get the parent
-  * pid, and go back and check that the parent is still
-@@ -1345,7 +1345,7 @@ asmlinkage long sys_getppid(void)
- 	struct task_struct *me = current;
- 	struct task_struct *parent;
- 
--	parent = me->group_leader->real_parent;
-+	parent = me->group_leader->parent;
- 	for (;;) {
- 		pid = parent->tgid;
- #if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
-@@ -1357,7 +1357,7 @@ asmlinkage long sys_getppid(void)
- 		 * parent pointer:
- 		 */
- 		smp_rmb();
--		parent = me->group_leader->real_parent;
-+		parent = me->group_leader->parent;
- 		if (old != parent)
- 			continue;
- }
+- * Accessing ->real_parent is not SMP-safe, it could
++ * Accessing ->parent is not SMP-safe, it could
+  * change from under us. However, we can use a stale
+  * value of ->real_parent under rcu_read_lock(), see
+  * release_task()->call_rcu(delayed_put_task_struct).
+@@ -1334,7 +1334,7 @@ asmlinkage long sys_getppid(void)
+ 	int pid;
+ 
+ 	rcu_read_lock();
+-	pid = rcu_dereference(current->real_parent)->tgid;
++	pid = rcu_dereference(current->parent)->tgid;
+ 	rcu_read_unlock();
+ 
+ 	return pid;
 --- linux-2.6/kernel/ptrace.c.utrace-ptrace-compat
 +++ linux-2.6/kernel/ptrace.c
 @@ -22,101 +22,15 @@


--- linux-2.6-hotplug-cpu-workqueue.patch DELETED ---


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]