add huge 2.6.14.2
has a nice bind fix, removed dup alpha patch. svn path=/dists/trunk/linux-2.6/; revision=4783
This commit is contained in:
parent
0f1c3d0f0a
commit
44dd6dee9f
|
@ -16,6 +16,20 @@ linux-2.6 (2.6.14-3) UNRELEASED; urgency=low
|
|||
* 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 @@ linux-2.6 (2.6.14-3) UNRELEASED; urgency=low
|
|||
* 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 @@ linux-2.6 (2.6.14-3) UNRELEASED; urgency=low
|
|||
* disable macsonic driver until the dma patch is fixed
|
||||
* disable IEEE80211 drivers for all of m68k
|
||||
|
||||
-- Bastian Blank <waldi@debian.org> Wed, 09 Nov 2005 17:23:30 +0000
|
||||
-- maximilian attems <maks@sternwelten.at> Fri, 11 Nov 2005 09:13:29 +0100
|
||||
|
||||
linux-2.6 (2.6.14-2) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -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;
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue