[kernel] r4783 - in dists/trunk/linux-2.6/debian: . patches-debian patches-debian/series

maximilian attems maks-guest at costa.debian.org
Fri Nov 11 08:16:03 UTC 2005


Author: maks-guest
Date: Fri Nov 11 08:16:02 2005
New Revision: 4783

Added:
   dists/trunk/linux-2.6/debian/patches-debian/2.6.14.2.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches-debian/series/2.6.14-3
Log:
add huge 2.6.14.2
has a nice bind fix,
removed dup alpha patch.


Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	(original)
+++ dists/trunk/linux-2.6/debian/changelog	Fri Nov 11 08:16:02 2005
@@ -16,6 +16,20 @@
   * Set CONFIG_USB_SUSPEND on i386. Usefull for suspend to ram and apm suspend.
   * Add 2.6.14.1 patch:
     - Al Viro: CVE-2005-2709 sysctl unregistration oops
+  * Add 2.6.14.2 patch:
+    - airo.c/airo_cs.c: correct prototypes
+    - fix XFS_QUOTA for modular XFS
+    - USB: always export interface information for modalias
+    - NET: Fix zero-size datagram reception
+    - fix alpha breakage
+    - Oops on suspend after on-the-fly switch to anticipatory i/o scheduler
+    - ipvs: fix connection leak if expire_nodest_conn=1
+    - Fix ptrace self-attach rule
+    - fix signal->live leak in copy_process()
+    - fix de_thread() vs send_group_sigqueue() race
+    - prism54 : Fix frame length
+    - tcp: BIC max increment too large
+  * Remove alpha compile fix as contained in 2.6.14.2
 
   [ Jurij Smakov ]
   * Fix the install-image script to correctly include all the necessary
@@ -24,7 +38,7 @@
   * Switch sparc to gcc-4.0. Thanks to Norbert for making sure it successfully
     builds a working kernel now.
   * Apply patch to fix ATI framebuffer output corruption on SunBlade 100
-    (sparc64-atyfb-xl-gr.patch). Thanks to Luigi Gangitano. (Closes: #321200) 
+    (sparc64-atyfb-xl-gr.patch). Thanks to Luigi Gangitano. (Closes: #321200)
 
   [ Simon Horman ]
   * [386, AMD64] Set CONFIG_FRAMEBUFFER_CONSOLE=y instead of m.
@@ -49,7 +63,7 @@
   * disable macsonic driver until the dma patch is fixed
   * disable IEEE80211 drivers for all of m68k
 
- -- Bastian Blank <waldi at debian.org>  Wed, 09 Nov 2005 17:23:30 +0000
+ -- maximilian attems <maks at sternwelten.at>  Fri, 11 Nov 2005 09:13:29 +0100
 
 linux-2.6 (2.6.14-2) unstable; urgency=low
 

Added: dists/trunk/linux-2.6/debian/patches-debian/2.6.14.2.patch
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches-debian/2.6.14.2.patch	Fri Nov 11 08:16:02 2005
@@ -0,0 +1,379 @@
+diff --git a/drivers/block/cfq-iosched.c b/drivers/block/cfq-iosched.c
+index cd056e7..23df2d2 100644
+--- a/drivers/block/cfq-iosched.c
++++ b/drivers/block/cfq-iosched.c
+@@ -2260,10 +2260,8 @@ static void cfq_put_cfqd(struct cfq_data
+ 	if (!atomic_dec_and_test(&cfqd->ref))
+ 		return;
+ 
+-	blk_put_queue(q);
+-
+ 	cfq_shutdown_timer_wq(cfqd);
+-	q->elevator->elevator_data = NULL;
++	blk_put_queue(q);
+ 
+ 	mempool_destroy(cfqd->crq_pool);
+ 	kfree(cfqd->crq_hash);
+diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
+index 06998c2..e3914a9 100644
+--- a/drivers/net/wireless/airo.c
++++ b/drivers/net/wireless/airo.c
+@@ -46,6 +46,8 @@
+ #include <linux/pci.h>
+ #include <asm/uaccess.h>
+ 
++#include "airo.h"
++
+ #ifdef CONFIG_PCI
+ static struct pci_device_id card_ids[] = {
+ 	{ 0x14b9, 1, PCI_ANY_ID, PCI_ANY_ID, },
+diff --git a/drivers/net/wireless/airo.h b/drivers/net/wireless/airo.h
+new file mode 100644
+index 0000000..e480adf
+--- /dev/null
++++ b/drivers/net/wireless/airo.h
+@@ -0,0 +1,9 @@
++#ifndef _AIRO_H_
++#define _AIRO_H_
++
++struct net_device *init_airo_card(unsigned short irq, int port, int is_pcmcia,
++				  struct device *dmdev);
++int reset_airo_card(struct net_device *dev);
++void stop_airo_card(struct net_device *dev, int freeres);
++
++#endif  /*  _AIRO_H_  */
+diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
+index bf25584..a172ede 100644
+--- a/drivers/net/wireless/airo_cs.c
++++ b/drivers/net/wireless/airo_cs.c
+@@ -42,6 +42,8 @@
+ #include <asm/io.h>
+ #include <asm/system.h>
+ 
++#include "airo.h"
++
+ /*
+    All the PCMCIA modules use PCMCIA_DEBUG to control debugging.  If
+    you do not define PCMCIA_DEBUG at all, all the debug code will be
+@@ -78,10 +80,6 @@ MODULE_SUPPORTED_DEVICE("Aironet 4500, 4
+    event handler. 
+ */
+ 
+-struct net_device *init_airo_card( int, int, int, struct device * );
+-void stop_airo_card( struct net_device *, int );
+-int reset_airo_card( struct net_device * );
+-
+ static void airo_config(dev_link_t *link);
+ static void airo_release(dev_link_t *link);
+ static int airo_event(event_t event, int priority,
+diff --git a/drivers/net/wireless/prism54/islpci_eth.c b/drivers/net/wireless/prism54/islpci_eth.c
+index 5952e99..0975dd4 100644
+--- a/drivers/net/wireless/prism54/islpci_eth.c
++++ b/drivers/net/wireless/prism54/islpci_eth.c
+@@ -97,12 +97,6 @@ islpci_eth_transmit(struct sk_buff *skb,
+ 	/* lock the driver code */
+ 	spin_lock_irqsave(&priv->slock, flags);
+ 
+-	/* determine the amount of fragments needed to store the frame */
+-
+-	frame_size = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
+-	if (init_wds)
+-		frame_size += 6;
+-
+ 	/* check whether the destination queue has enough fragments for the frame */
+ 	curr_frag = le32_to_cpu(cb->driver_curr_frag[ISL38XX_CB_TX_DATA_LQ]);
+ 	if (unlikely(curr_frag - priv->free_data_tx >= ISL38XX_CB_TX_QSIZE)) {
+@@ -213,6 +207,7 @@ islpci_eth_transmit(struct sk_buff *skb,
+ 	/* store the skb address for future freeing  */
+ 	priv->data_low_tx[index] = skb;
+ 	/* set the proper fragment start address and size information */
++	frame_size = skb->len;
+ 	fragment->size = cpu_to_le16(frame_size);
+ 	fragment->flags = cpu_to_le16(0);	/* set to 1 if more fragments */
+ 	fragment->address = cpu_to_le32(pci_map_address);
+diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
+index 00297f1..1e49423 100644
+--- a/drivers/usb/core/sysfs.c
++++ b/drivers/usb/core/sysfs.c
+@@ -292,30 +292,23 @@ static ssize_t show_modalias(struct devi
+ {
+ 	struct usb_interface *intf;
+ 	struct usb_device *udev;
+-	int len;
++	struct usb_host_interface *alt;
+ 
+ 	intf = to_usb_interface(dev);
+ 	udev = interface_to_usbdev(intf);
++	alt = intf->cur_altsetting;
+ 
+-	len = sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic",
+-			       le16_to_cpu(udev->descriptor.idVendor),
+-			       le16_to_cpu(udev->descriptor.idProduct),
+-			       le16_to_cpu(udev->descriptor.bcdDevice),
+-			       udev->descriptor.bDeviceClass,
+-			       udev->descriptor.bDeviceSubClass,
+-			       udev->descriptor.bDeviceProtocol);
+-	buf += len;
+-
+-	if (udev->descriptor.bDeviceClass == 0) {
+-		struct usb_host_interface *alt = intf->cur_altsetting;
+-
+-		return len + sprintf(buf, "%02Xisc%02Xip%02X\n",
+-			       alt->desc.bInterfaceClass,
+-			       alt->desc.bInterfaceSubClass,
+-			       alt->desc.bInterfaceProtocol);
+- 	} else {
+-		return len + sprintf(buf, "*isc*ip*\n");
+-	}
++	return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02X"
++			"ic%02Xisc%02Xip%02X\n",
++			le16_to_cpu(udev->descriptor.idVendor),
++			le16_to_cpu(udev->descriptor.idProduct),
++			le16_to_cpu(udev->descriptor.bcdDevice),
++			udev->descriptor.bDeviceClass,
++			udev->descriptor.bDeviceSubClass,
++			udev->descriptor.bDeviceProtocol,
++			alt->desc.bInterfaceClass,
++			alt->desc.bInterfaceSubClass,
++			alt->desc.bInterfaceProtocol);
+ }
+ static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL);
+ 
+diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
+index 7d13150..ff8b9fd 100644
+--- a/drivers/usb/core/usb.c
++++ b/drivers/usb/core/usb.c
+@@ -557,6 +557,7 @@ static int usb_hotplug (struct device *d
+ {
+ 	struct usb_interface *intf;
+ 	struct usb_device *usb_dev;
++	struct usb_host_interface *alt;
+ 	int i = 0;
+ 	int length = 0;
+ 
+@@ -573,7 +574,8 @@ static int usb_hotplug (struct device *d
+ 
+ 	intf = to_usb_interface(dev);
+ 	usb_dev = interface_to_usbdev (intf);
+-	
++	alt = intf->cur_altsetting;
++
+ 	if (usb_dev->devnum < 0) {
+ 		pr_debug ("usb %s: already deleted?\n", dev->bus_id);
+ 		return -ENODEV;
+@@ -615,46 +617,27 @@ static int usb_hotplug (struct device *d
+ 				usb_dev->descriptor.bDeviceProtocol))
+ 		return -ENOMEM;
+ 
+-	if (usb_dev->descriptor.bDeviceClass == 0) {
+-		struct usb_host_interface *alt = intf->cur_altsetting;
++	if (add_hotplug_env_var(envp, num_envp, &i,
++				buffer, buffer_size, &length,
++				"INTERFACE=%d/%d/%d",
++				alt->desc.bInterfaceClass,
++				alt->desc.bInterfaceSubClass,
++				alt->desc.bInterfaceProtocol))
++		return -ENOMEM;
+ 
+-		/* 2.4 only exposed interface zero.  in 2.5, hotplug
+-		 * agents are called for all interfaces, and can use
+-		 * $DEVPATH/bInterfaceNumber if necessary.
+-		 */
+-		if (add_hotplug_env_var(envp, num_envp, &i,
+-					buffer, buffer_size, &length,
+-					"INTERFACE=%d/%d/%d",
+-					alt->desc.bInterfaceClass,
+-					alt->desc.bInterfaceSubClass,
+-					alt->desc.bInterfaceProtocol))
+-			return -ENOMEM;
+-
+-		if (add_hotplug_env_var(envp, num_envp, &i,
+-					buffer, buffer_size, &length,
+-					"MODALIAS=usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X",
+-					le16_to_cpu(usb_dev->descriptor.idVendor),
+-					le16_to_cpu(usb_dev->descriptor.idProduct),
+-					le16_to_cpu(usb_dev->descriptor.bcdDevice),
+-					usb_dev->descriptor.bDeviceClass,
+-					usb_dev->descriptor.bDeviceSubClass,
+-					usb_dev->descriptor.bDeviceProtocol,
+-					alt->desc.bInterfaceClass,
+-					alt->desc.bInterfaceSubClass,
+-					alt->desc.bInterfaceProtocol))
+-			return -ENOMEM;
+- 	} else {
+-		if (add_hotplug_env_var(envp, num_envp, &i,
+-					buffer, buffer_size, &length,
+-					"MODALIAS=usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic*isc*ip*",
+-					le16_to_cpu(usb_dev->descriptor.idVendor),
+-					le16_to_cpu(usb_dev->descriptor.idProduct),
+-					le16_to_cpu(usb_dev->descriptor.bcdDevice),
+-					usb_dev->descriptor.bDeviceClass,
+-					usb_dev->descriptor.bDeviceSubClass,
+-					usb_dev->descriptor.bDeviceProtocol))
+-			return -ENOMEM;
+-	}
++	if (add_hotplug_env_var(envp, num_envp, &i,
++				buffer, buffer_size, &length,
++				"MODALIAS=usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X",
++				le16_to_cpu(usb_dev->descriptor.idVendor),
++				le16_to_cpu(usb_dev->descriptor.idProduct),
++				le16_to_cpu(usb_dev->descriptor.bcdDevice),
++				usb_dev->descriptor.bDeviceClass,
++				usb_dev->descriptor.bDeviceSubClass,
++				usb_dev->descriptor.bDeviceProtocol,
++				alt->desc.bInterfaceClass,
++				alt->desc.bInterfaceSubClass,
++				alt->desc.bInterfaceProtocol))
++		return -ENOMEM;
+ 
+ 	envp[i] = NULL;
+ 
+diff --git a/fs/exec.c b/fs/exec.c
+index a04a575..78bcb0b 100644
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -593,6 +593,7 @@ static inline int de_thread(struct task_
+ 	struct signal_struct *sig = tsk->signal;
+ 	struct sighand_struct *newsighand, *oldsighand = tsk->sighand;
+ 	spinlock_t *lock = &oldsighand->siglock;
++	struct task_struct *leader = NULL;
+ 	int count;
+ 
+ 	/*
+@@ -668,7 +669,7 @@ static inline int de_thread(struct task_
+ 	 * and to assume its PID:
+ 	 */
+ 	if (!thread_group_leader(current)) {
+-		struct task_struct *leader = current->group_leader, *parent;
++		struct task_struct *parent;
+ 		struct dentry *proc_dentry1, *proc_dentry2;
+ 		unsigned long exit_state, ptrace;
+ 
+@@ -677,6 +678,7 @@ static inline int de_thread(struct task_
+ 		 * It should already be zombie at this point, most
+ 		 * of the time.
+ 		 */
++		leader = current->group_leader;
+ 		while (leader->exit_state != EXIT_ZOMBIE)
+ 			yield();
+ 
+@@ -736,7 +738,6 @@ static inline int de_thread(struct task_
+ 		proc_pid_flush(proc_dentry2);
+ 
+ 		BUG_ON(exit_state != EXIT_ZOMBIE);
+-		release_task(leader);
+         }
+ 
+ 	/*
+@@ -746,8 +747,11 @@ static inline int de_thread(struct task_
+ 	sig->flags = 0;
+ 
+ no_thread_group:
+-	BUG_ON(atomic_read(&sig->count) != 1);
+ 	exit_itimers(sig);
++	if (leader)
++		release_task(leader);
++
++	BUG_ON(atomic_read(&sig->count) != 1);
+ 
+ 	if (atomic_read(&oldsighand->count) == 1) {
+ 		/*
+diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig
+index 8e8f32d..bac27d6 100644
+--- a/fs/xfs/Kconfig
++++ b/fs/xfs/Kconfig
+@@ -24,7 +24,7 @@ config XFS_EXPORT
+ 	default y
+ 
+ config XFS_QUOTA
+-	tristate "XFS Quota support"
++	bool "XFS Quota support"
+ 	depends on XFS_FS
+ 	help
+ 	  If you say Y here, you will be able to set limits for disk usage on
+diff --git a/include/asm-alpha/barrier.h b/include/asm-alpha/barrier.h
+index 229c83f..681ff58 100644
+--- a/include/asm-alpha/barrier.h
++++ b/include/asm-alpha/barrier.h
+@@ -1,6 +1,8 @@
+ #ifndef __BARRIER_H
+ #define __BARRIER_H
+ 
++#include <asm/compiler.h>
++
+ #define mb() \
+ __asm__ __volatile__("mb": : :"memory")
+ 
+diff --git a/kernel/ptrace.c b/kernel/ptrace.c
+index 019e04e..fcfc456 100644
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
+@@ -152,7 +152,7 @@ int ptrace_attach(struct task_struct *ta
+ 	retval = -EPERM;
+ 	if (task->pid <= 1)
+ 		goto bad;
+-	if (task == current)
++	if (task->tgid == current->tgid)
+ 		goto bad;
+ 	/* the same process cannot be attached many times */
+ 	if (task->ptrace & PT_PTRACED)
+diff --git a/kernel/signal.c b/kernel/signal.c
+index f2b96b0..6904bbb 100644
+--- a/kernel/signal.c
++++ b/kernel/signal.c
+@@ -406,6 +406,8 @@ void __exit_signal(struct task_struct *t
+ 
+ void exit_signal(struct task_struct *tsk)
+ {
++	atomic_dec(&tsk->signal->live);
++
+ 	write_lock_irq(&tasklist_lock);
+ 	__exit_signal(tsk);
+ 	write_unlock_irq(&tasklist_lock);
+diff --git a/net/core/datagram.c b/net/core/datagram.c
+index 81987df..d219435 100644
+--- a/net/core/datagram.c
++++ b/net/core/datagram.c
+@@ -213,6 +213,10 @@ int skb_copy_datagram_iovec(const struct
+ {
+ 	int i, err, fraglen, end = 0;
+ 	struct sk_buff *next = skb_shinfo(skb)->frag_list;
++
++	if (!len)
++		return 0;
++
+ next_skb:
+ 	fraglen = skb_headlen(skb);
+ 	i = -1;
+diff --git a/net/ipv4/ipvs/ip_vs_core.c b/net/ipv4/ipvs/ip_vs_core.c
+index 981cc32..1a0843c 100644
+--- a/net/ipv4/ipvs/ip_vs_core.c
++++ b/net/ipv4/ipvs/ip_vs_core.c
+@@ -1009,11 +1009,10 @@ ip_vs_in(unsigned int hooknum, struct sk
+ 		if (sysctl_ip_vs_expire_nodest_conn) {
+ 			/* try to expire the connection immediately */
+ 			ip_vs_conn_expire_now(cp);
+-		} else {
+-			/* don't restart its timer, and silently
+-			   drop the packet. */
+-			__ip_vs_conn_put(cp);
+ 		}
++		/* don't restart its timer, and silently
++		   drop the packet. */
++		__ip_vs_conn_put(cp);
+ 		return NF_DROP;
+ 	}
+ 
+diff --git a/net/ipv4/tcp_bic.c b/net/ipv4/tcp_bic.c
+index 6d80e06..ae35e06 100644
+--- a/net/ipv4/tcp_bic.c
++++ b/net/ipv4/tcp_bic.c
+@@ -27,7 +27,7 @@
+ 					  */
+ 
+ static int fast_convergence = 1;
+-static int max_increment = 32;
++static int max_increment = 16;
+ static int low_window = 14;
+ static int beta = 819;		/* = 819/1024 (BICTCP_BETA_SCALE) */
+ static int low_utilization_threshold = 153;

Modified: dists/trunk/linux-2.6/debian/patches-debian/series/2.6.14-3
==============================================================================
--- dists/trunk/linux-2.6/debian/patches-debian/series/2.6.14-3	(original)
+++ dists/trunk/linux-2.6/debian/patches-debian/series/2.6.14-3	Fri Nov 11 08:16:02 2005
@@ -6,3 +6,5 @@
 + m68k-spinlock.patch
 + 2.6.14.1.patch
 + sparc64-atyfb-xl-gr.patch
+- alpha-compile-fix.patch
++ 2.6.14.2.patch



More information about the Kernel-svn-changes mailing list