[kernel] r6780 - in dists/sid/linux-2.6/debian: patches patches/series

maximilian attems maks-guest at costa.debian.org
Mon Jun 5 18:41:23 UTC 2006


Author: maks-guest
Date: Mon Jun  5 18:41:22 2006
New Revision: 6780

Added:
   dists/sid/linux-2.6/debian/patches/2.6.16.20
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/15

Log:
add 2.6.16.20


Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	(original)
+++ dists/sid/linux-2.6/debian/changelog	Mon Jun  5 18:41:22 2006
@@ -5,6 +5,19 @@
     - NETFILTER: SNMP NAT: fix memory corruption (CVE-2006-2444)
   * Add stable release 2.6.16.19:
     - NETFILTER: Fix small information leak in SO_ORIGINAL_DST (CVE-2006-1343)
+  * Add stable release 2.6.16.20:
+    - x86_64: Don't do syscall exit tracing twice
+    - Altix: correct ioc4 port order
+    - Input: psmouse - fix new device detection logic
+    - PowerMac: force only suspend-to-disk to be valid
+    - the latest consensus libata resume fix
+    - Altix: correct ioc3 port order
+    - Cpuset: might sleep checking zones allowed fix
+    - ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices
+    - sbp2: backport read_capacity workaround for iPod
+    - sbp2: fix check of return value of hpsb_allocate_and_register_addrspace
+    - x86_64: x86_64 add crashdump trigger points
+    - ipw2200: Filter unsupported channels out in ad-hoc mode
 
   [ Christian T. Steigies ]
   * [m68k] Add mac via patch from Finn Thain.
@@ -36,7 +49,7 @@
   [ Bastian Blank ]
   * Update vserver patch to 2.0.2-rc21.
 
- -- maximilian attems <maks at sternwelten.at>  Wed, 31 May 2006 23:33:19 +0200
+ -- maximilian attems <maks at sternwelten.at>  Mon,  5 Jun 2006 20:22:12 +0200
 
 linux-2.6 (2.6.16-14) unstable; urgency=low
 

Added: dists/sid/linux-2.6/debian/patches/2.6.16.20
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/2.6.16.20	Mon Jun  5 18:41:22 2006
@@ -0,0 +1,240 @@
+diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
+index 29c2946..f649750 100644
+--- a/arch/powerpc/platforms/powermac/setup.c
++++ b/arch/powerpc/platforms/powermac/setup.c
+@@ -456,11 +456,23 @@ static int pmac_pm_finish(suspend_state_
+ 	return 0;
+ }
+ 
++static int pmac_pm_valid(suspend_state_t state)
++{
++	switch (state) {
++	case PM_SUSPEND_DISK:
++		return 1;
++	/* can't do any other states via generic mechanism yet */
++	default:
++		return 0;
++	}
++}
++
+ static struct pm_ops pmac_pm_ops = {
+ 	.pm_disk_mode	= PM_DISK_SHUTDOWN,
+ 	.prepare	= pmac_pm_prepare,
+ 	.enter		= pmac_pm_enter,
+ 	.finish		= pmac_pm_finish,
++	.valid		= pmac_pm_valid,
+ };
+ 
+ #endif /* CONFIG_SOFTWARE_SUSPEND */
+diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
+index ab6e44d..97583bb 100644
+--- a/arch/x86_64/kernel/entry.S
++++ b/arch/x86_64/kernel/entry.S
+@@ -281,12 +281,7 @@ tracesys:			 
+ 	ja  1f
+ 	movq %r10,%rcx	/* fixup for C */
+ 	call *sys_call_table(,%rax,8)
+-	movq %rax,RAX-ARGOFFSET(%rsp)
+-1:	SAVE_REST
+-	movq %rsp,%rdi
+-	call syscall_trace_leave
+-	RESTORE_TOP_OF_STACK %rbx
+-	RESTORE_REST
++1:	movq %rax,RAX-ARGOFFSET(%rsp)
+ 	/* Use IRET because user could have changed frame */
+ 	jmp int_ret_from_sys_call
+ 	CFI_ENDPROC
+diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
+index 28d50dc..a5209fd 100644
+--- a/arch/x86_64/kernel/traps.c
++++ b/arch/x86_64/kernel/traps.c
+@@ -30,6 +30,7 @@ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+ #include <linux/nmi.h>
+ #include <linux/kprobes.h>
++#include <linux/kexec.h>
+ 
+ #include <asm/system.h>
+ #include <asm/uaccess.h>
+@@ -434,6 +435,8 @@ #endif
+ 	printk(KERN_ALERT "RIP ");
+ 	printk_address(regs->rip); 
+ 	printk(" RSP <%016lx>\n", regs->rsp); 
++	if (kexec_should_crash(current))
++		crash_kexec(regs);
+ }
+ 
+ void die(const char * str, struct pt_regs * regs, long err)
+@@ -456,6 +459,8 @@ void __kprobes die_nmi(char *str, struct
+ 	 */
+ 	printk(str, safe_smp_processor_id());
+ 	show_registers(regs);
++	if (kexec_should_crash(current))
++		crash_kexec(regs);
+ 	if (panic_on_timeout || panic_on_oops)
+ 		panic("nmi watchdog");
+ 	printk("console shuts up ...\n");
+diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c
+index b6b96fa..a9a73f7 100644
+--- a/drivers/ieee1394/ohci1394.c
++++ b/drivers/ieee1394/ohci1394.c
+@@ -2525,7 +2525,7 @@ static irqreturn_t ohci_irq_handler(int 
+ 			if (phys_dma) {
+ 				reg_write(ohci,OHCI1394_PhyReqFilterHiSet, 0xffffffff);
+ 				reg_write(ohci,OHCI1394_PhyReqFilterLoSet, 0xffffffff);
+-				reg_write(ohci,OHCI1394_PhyUpperBound, 0xffff0000);
++				reg_write(ohci,OHCI1394_PhyUpperBound, 0x01000000);
+ 			} else {
+ 				reg_write(ohci,OHCI1394_PhyReqFilterHiSet, 0x00000000);
+ 				reg_write(ohci,OHCI1394_PhyReqFilterLoSet, 0x00000000);
+diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
+index d83248e..d02be4a 100644
+--- a/drivers/ieee1394/sbp2.c
++++ b/drivers/ieee1394/sbp2.c
+@@ -754,12 +754,17 @@ #endif
+ 
+ 	/* Register the status FIFO address range. We could use the same FIFO
+ 	 * for targets at different nodes. However we need different FIFOs per
+-	 * target in order to support multi-unit devices. */
++	 * target in order to support multi-unit devices.
++	 * The FIFO is located out of the local host controller's physical range
++	 * but, if possible, within the posted write area. Status writes will
++	 * then be performed as unified transactions. This slightly reduces
++	 * bandwidth usage, and some Prolific based devices seem to require it.
++	 */
+ 	scsi_id->status_fifo_addr = hpsb_allocate_and_register_addrspace(
+ 			&sbp2_highlevel, ud->ne->host, &sbp2_ops,
+ 			sizeof(struct sbp2_status_block), sizeof(quadlet_t),
+-			~0ULL, ~0ULL);
+-	if (!scsi_id->status_fifo_addr) {
++			0x010000000000ULL, CSR1212_ALL_SPACE_END);
++	if (scsi_id->status_fifo_addr == ~0ULL) {
+ 		SBP2_ERR("failed to allocate status FIFO address range");
+ 		goto failed_alloc;
+ 	}
+@@ -2486,9 +2491,20 @@ static int sbp2scsi_slave_alloc(struct s
+ 
+ static int sbp2scsi_slave_configure(struct scsi_device *sdev)
+ {
++	struct scsi_id_instance_data *scsi_id =
++		(struct scsi_id_instance_data *)sdev->host->hostdata[0];
++
+ 	blk_queue_dma_alignment(sdev->request_queue, (512 - 1));
+ 	sdev->use_10_for_rw = 1;
+ 	sdev->use_10_for_ms = 1;
++
++	if ((scsi_id->sbp2_firmware_revision & 0xffff00) == 0x0a2700 &&
++	    (scsi_id->ud->model_id == 0x000021 /* gen.4 iPod */ ||
++	     scsi_id->ud->model_id == 0x000023 /* iPod mini  */ ||
++	     scsi_id->ud->model_id == 0x00007e /* iPod Photo */ )) {
++		SBP2_INFO("enabling iPod workaround: decrement disk capacity");
++		sdev->fix_capacity = 1;
++	}
+ 	return 0;
+ }
+ 
+diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
+index ad62174..b2bed1a 100644
+--- a/drivers/input/mouse/psmouse-base.c
++++ b/drivers/input/mouse/psmouse-base.c
+@@ -300,8 +300,10 @@ static irqreturn_t psmouse_interrupt(str
+  * Check if this is a new device announcement (0xAA 0x00)
+  */
+ 	if (unlikely(psmouse->packet[0] == PSMOUSE_RET_BAT && psmouse->pktcnt <= 2)) {
+-		if (psmouse->pktcnt == 1)
++		if (psmouse->pktcnt == 1) {
++			psmouse->last = jiffies;
+ 			goto out;
++		}
+ 
+ 		if (psmouse->packet[1] == PSMOUSE_RET_ID) {
+ 			__psmouse_set_state(psmouse, PSMOUSE_IGNORE);
+diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
+index aa6f3a4..f42e51a 100644
+--- a/drivers/net/wireless/ipw2200.c
++++ b/drivers/net/wireless/ipw2200.c
+@@ -8391,20 +8391,28 @@ static int ipw_wx_get_range(struct net_d
+ 
+ 	i = 0;
+ 	if (priv->ieee->mode & (IEEE_B | IEEE_G)) {
+-		for (j = 0; j < geo->bg_channels && i < IW_MAX_FREQUENCIES;
+-		     i++, j++) {
++		for (j = 0; j < geo->bg_channels && i < IW_MAX_FREQUENCIES; j++) {
++			if ((priv->ieee->iw_mode == IW_MODE_ADHOC) &&
++			    (geo->bg[j].flags & IEEE80211_CH_PASSIVE_ONLY))
++				continue;
++
+ 			range->freq[i].i = geo->bg[j].channel;
+ 			range->freq[i].m = geo->bg[j].freq * 100000;
+ 			range->freq[i].e = 1;
++			i++;
+ 		}
+ 	}
+ 
+ 	if (priv->ieee->mode & IEEE_A) {
+-		for (j = 0; j < geo->a_channels && i < IW_MAX_FREQUENCIES;
+-		     i++, j++) {
++		for (j = 0; j < geo->a_channels && i < IW_MAX_FREQUENCIES; j++) {
++			if ((priv->ieee->iw_mode == IW_MODE_ADHOC) &&
++			    (geo->a[j].flags & IEEE80211_CH_PASSIVE_ONLY))
++				continue;
++
+ 			range->freq[i].i = geo->a[j].channel;
+ 			range->freq[i].m = geo->a[j].freq * 100000;
+ 			range->freq[i].e = 1;
++			i++;
+ 		}
+ 	}
+ 
+diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
+index 4f91b0d..400e9d7 100644
+--- a/drivers/scsi/libata-core.c
++++ b/drivers/scsi/libata-core.c
+@@ -4293,6 +4293,7 @@ static int ata_start_drive(struct ata_po
+ int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
+ {
+ 	if (ap->flags & ATA_FLAG_SUSPENDED) {
++		ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000);
+ 		ap->flags &= ~ATA_FLAG_SUSPENDED;
+ 		ata_set_mode(ap);
+ 	}
+diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c
+index 93449a1..4bd05a0 100644
+--- a/drivers/sn/ioc3.c
++++ b/drivers/sn/ioc3.c
+@@ -677,7 +677,7 @@ #endif
+ 	/* Track PCI-device specific data */
+ 	pci_set_drvdata(pdev, idd);
+ 	down_write(&ioc3_devices_rwsem);
+-	list_add(&idd->list, &ioc3_devices);
++	list_add_tail(&idd->list, &ioc3_devices);
+ 	idd->id = ioc3_counter++;
+ 	up_write(&ioc3_devices_rwsem);
+ 
+diff --git a/drivers/sn/ioc4.c b/drivers/sn/ioc4.c
+index ea75b3d..771e868 100644
+--- a/drivers/sn/ioc4.c
++++ b/drivers/sn/ioc4.c
+@@ -313,7 +313,7 @@ ioc4_probe(struct pci_dev *pdev, const s
+ 	idd->idd_serial_data = NULL;
+ 	pci_set_drvdata(idd->idd_pdev, idd);
+ 	down_write(&ioc4_devices_rwsem);
+-	list_add(&idd->idd_list, &ioc4_devices);
++	list_add_tail(&idd->idd_list, &ioc4_devices);
+ 	up_write(&ioc4_devices_rwsem);
+ 
+ 	/* Add this IOC4 to all submodules */
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 61de222..8b3cde1 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -949,7 +949,8 @@ restart:
+ 		alloc_flags |= ALLOC_HARDER;
+ 	if (gfp_mask & __GFP_HIGH)
+ 		alloc_flags |= ALLOC_HIGH;
+-	alloc_flags |= ALLOC_CPUSET;
++	if (wait)
++		alloc_flags |= ALLOC_CPUSET;
+ 
+ 	/*
+ 	 * Go through the zonelist again. Let __GFP_HIGH and allocations

Modified: dists/sid/linux-2.6/debian/patches/series/15
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/15	(original)
+++ dists/sid/linux-2.6/debian/patches/series/15	Mon Jun  5 18:41:22 2006
@@ -2,3 +2,4 @@
 + mips-maxine-compile.patch
 + arm-rpc-initrd.patch
 + 2.6.16.19
++ 2.6.16.20



More information about the Kernel-svn-changes mailing list