rpms/kernel/devel ethtool-fix-buffer-overflow.patch, NONE, 1.1.2.1 l2tp-fix-oops-in-pppol2tp_xmit.patch, NONE, 1.1.2.1 patch-2.6.32.16.bz2.sign, NONE, 1.1.2.1 sched-fix-over-scheduling-bug.patch, NONE, 1.1.2.1 sky2-optima-add-missing-write-bits.patch, NONE, 1.1.2.1 sky2-optima-add-register-definitions.patch, NONE, 1.1.2.1 sky2-optima-fix-tcp-offload.patch, NONE, 1.1.2.1 sky2-optima-print-chip-name.patch, NONE, 1.1.2.1 sky2-optima-support.patch, NONE, 1.1.2.1 .cvsignore, 1.1014.2.45, 1.1014.2.46 drm-upgrayedd.patch, 1.1.2.4, 1.1.2.5 hdpvr-ir-enable.patch, 1.2.2.6, 1.2.2.7 iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch, 1.1.2.1, 1.1.2.2 iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch, 1.1.2.1, 1.1.2.2 kernel.spec, 1.1294.2.107, 1.1294.2.108 linux-2.6-usb-wwan-update.patch, 1.2.2.2, 1.2.2.3 sources, 1.976.2.46, 1.976.2.47 upstream, 1.888.2.45, 1.888.2.46 xen.pvops.patch, 1.1.2.70, 1.1.2.71 btrfs-should-add-permission-check-for-setfacl.patch, 1.1.2.2, NONE drm-upgrayed-fixes.patch, 1.1.2.1, NONE iwlwifi-recalculate-average-tpt-if-not-current.patch, 1.1.2.2, NONE iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch, 1.1.2.1, NONE iwlwifi_-check-for-aggregation-frame-and-queue.patch, 1.1.2.1, NONE keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch, 1.1.2.1, NONE linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch, 1.1.2.1, NONE linux-2.6.31-modules-ro-nx.patch, 1.2.2.4, NONE linux-2.6.31-nx-data.patch, 1.1.2.4, NONE patch-2.6.32.14.bz2.sign, 1.1.2.1, NONE

myoung myoung at fedoraproject.org
Mon Jul 12 21:28:40 UTC 2010


Author: myoung

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv28487

Modified Files:
      Tag: private-myoung-dom0-branch
	.cvsignore drm-upgrayedd.patch hdpvr-ir-enable.patch 
	iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch 
	iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch 
	kernel.spec linux-2.6-usb-wwan-update.patch sources upstream 
	xen.pvops.patch 
Added Files:
      Tag: private-myoung-dom0-branch
	ethtool-fix-buffer-overflow.patch 
	l2tp-fix-oops-in-pppol2tp_xmit.patch patch-2.6.32.16.bz2.sign 
	sched-fix-over-scheduling-bug.patch 
	sky2-optima-add-missing-write-bits.patch 
	sky2-optima-add-register-definitions.patch 
	sky2-optima-fix-tcp-offload.patch 
	sky2-optima-print-chip-name.patch sky2-optima-support.patch 
Removed Files:
      Tag: private-myoung-dom0-branch
	btrfs-should-add-permission-check-for-setfacl.patch 
	drm-upgrayed-fixes.patch 
	iwlwifi-recalculate-average-tpt-if-not-current.patch 
	iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch 
	iwlwifi_-check-for-aggregation-frame-and-queue.patch 
	keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch 
	linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch 
	linux-2.6.31-modules-ro-nx.patch linux-2.6.31-nx-data.patch 
	patch-2.6.32.14.bz2.sign 
Log Message:
update pvops to 2.6.32.16


ethtool-fix-buffer-overflow.patch:
 ethtool.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- NEW FILE ethtool-fix-buffer-overflow.patch ---
From: Ben Hutchings <bhutchings at solarflare.com>
Date: Mon, 28 Jun 2010 08:44:07 +0000 (+0000)
Subject: ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdavem%2Fnet-2.6.git;a=commitdiff_plain;h=db048b69037e7fa6a7d9e95a1271a50dc08ae233

ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL

On a 32-bit machine, info.rule_cnt >= 0x40000000 leads to integer
overflow and the buffer may be smaller than needed.  Since
ETHTOOL_GRXCLSRLALL is unprivileged, this can presumably be used for at
least denial of service.

Signed-off-by: Ben Hutchings <bhutchings at solarflare.com>
Cc: stable at kernel.org
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index a0f4964..a3a7e9a 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -347,8 +347,9 @@ static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev,
 
 	if (info.cmd == ETHTOOL_GRXCLSRLALL) {
 		if (info.rule_cnt > 0) {
-			rule_buf = kmalloc(info.rule_cnt * sizeof(u32),
-					   GFP_USER);
+			if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32))
+				rule_buf = kmalloc(info.rule_cnt * sizeof(u32),
+						   GFP_USER);
 			if (!rule_buf)
 				return -ENOMEM;
 		}

l2tp-fix-oops-in-pppol2tp_xmit.patch:
 pppol2tp.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- NEW FILE l2tp-fix-oops-in-pppol2tp_xmit.patch ---
From: James Chapman <jchapman at katalix.com>
Date: Tue, 16 Mar 2010 06:46:31 +0000 (+0000)
Subject: l2tp: Fix oops in pppol2tp_xmit
X-Git-Tag: v2.6.34-rc2~28^2~10
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=3feec909

l2tp: Fix oops in pppol2tp_xmit

When transmitting L2TP frames, we derive the outgoing interface's UDP
checksum hardware assist capabilities from the tunnel dst dev. This
can sometimes be NULL, especially when routing protocols are used and
routing changes occur. This patch just checks for NULL dst or dev
pointers when checking for netdev hardware assist features.

BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [<f89d074c>] pppol2tp_xmit+0x341/0x4da [pppol2tp]
*pde = 00000000
Oops: 0000 [#1] SMP
last sysfs file: /sys/class/net/lo/operstate
Modules linked in: pppol2tp pppox ppp_generic slhc ipv6 dummy loop snd_hda_codec_atihdmi snd_hda_intel snd_hda_codec snd_pcm snd_timer snd soundcore snd_page_alloc evdev psmouse serio_raw processor button i2c_piix4 i2c_core ati_agp agpgart pcspkr ext3 jbd mbcache sd_mod ide_pci_generic atiixp ide_core ahci ata_generic floppy ehci_hcd ohci_hcd libata e1000e scsi_mod usbcore nls_base thermal fan thermal_sys [last unloaded: scsi_wait_scan]

Pid: 0, comm: swapper Not tainted (2.6.32.8 #1)
EIP: 0060:[<f89d074c>] EFLAGS: 00010297 CPU: 3
EIP is at pppol2tp_xmit+0x341/0x4da [pppol2tp]
EAX: 00000000 EBX: f64d1680 ECX: 000005b9 EDX: 00000000
ESI: f6b91850 EDI: f64d16ac EBP: f6a0c4c0 ESP: f70a9cac
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 0, ti=f70a8000 task=f70a31c0 task.ti=f70a8000)
Stack:
 000005a9 000005b9 f734c400 f66652c0 f7352e00 f67dc800 00000000 f6b91800
<0> 000005a3 f70ef6c4 f67dcda9 000005a3 f89b192e 00000246 000005a3 f64d1680
<0> f63633e0 f6363320 f64d1680 f65a7320 f65a7364 f65856c0 f64d1680 f679f02f
Call Trace:
 [<f89b192e>] ? ppp_push+0x459/0x50e [ppp_generic]
 [<f89b217f>] ? ppp_xmit_process+0x3b6/0x430 [ppp_generic]
 [<f89b2306>] ? ppp_start_xmit+0x10d/0x120 [ppp_generic]
 [<c11c15cb>] ? dev_hard_start_xmit+0x21f/0x2b2
 [<c11d0947>] ? sch_direct_xmit+0x48/0x10e
 [<c11c19a0>] ? dev_queue_xmit+0x263/0x3a6
 [<c11e2a9f>] ? ip_finish_output+0x1f7/0x221
 [<c11df682>] ? ip_forward_finish+0x2e/0x30
 [<c11de645>] ? ip_rcv_finish+0x295/0x2a9
 [<c11c0b19>] ? netif_receive_skb+0x3e9/0x404
 [<f814b791>] ? e1000_clean_rx_irq+0x253/0x2fc [e1000e]
 [<f814cb7a>] ? e1000_clean+0x63/0x1fc [e1000e]
 [<c1047eff>] ? sched_clock_local+0x15/0x11b
 [<c11c1095>] ? net_rx_action+0x96/0x195
 [<c1035750>] ? __do_softirq+0xaa/0x151
 [<c1035828>] ? do_softirq+0x31/0x3c
 [<c10358fe>] ? irq_exit+0x26/0x58
 [<c1004b21>] ? do_IRQ+0x78/0x89
 [<c1003729>] ? common_interrupt+0x29/0x30
 [<c101ac28>] ? native_safe_halt+0x2/0x3
 [<c1008c54>] ? default_idle+0x55/0x75
 [<c1009045>] ? c1e_idle+0xd2/0xd5
 [<c100233c>] ? cpu_idle+0x46/0x62
Code: 8d 45 08 f0 ff 45 08 89 6b 08 c7 43 68 7e fb 9c f8 8a 45 24 83 e0 0c 3c 04 75 09 80 63 64 f3 e9 b4 00 00 00 8b 43 18 8b 4c 24 04 <8b> 40 0c 8d 79 11 f6 40 44 0e 8a 43 64 75 51 6a 00 8b 4c 24 08
EIP: [<f89d074c>] pppol2tp_xmit+0x341/0x4da [pppol2tp] SS:ESP 0068:f70a9cac
CR2: 000000000000000c

Signed-off-by: James Chapman <jchapman at katalix.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c
index 9fbb2eb..5861ee9 100644
--- a/drivers/net/pppol2tp.c
+++ b/drivers/net/pppol2tp.c
@@ -1180,7 +1180,8 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
 	/* Calculate UDP checksum if configured to do so */
 	if (sk_tun->sk_no_check == UDP_CSUM_NOXMIT)
 		skb->ip_summed = CHECKSUM_NONE;
-	else if (!(skb_dst(skb)->dev->features & NETIF_F_V4_CSUM)) {
+	else if ((skb_dst(skb) && skb_dst(skb)->dev) &&
+		 (!(skb_dst(skb)->dev->features & NETIF_F_V4_CSUM))) {
 		skb->ip_summed = CHECKSUM_COMPLETE;
 		csum = skb_checksum(skb, 0, udp_len, 0);
 		uh->check = csum_tcpudp_magic(inet->inet_saddr,


--- NEW FILE patch-2.6.32.16.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBMMiXhyGugalF9Dw4RAl5nAKCTkt7sEJRYWfWSnQurGkvQytIDZQCfdMZk
fqv2QYypscf2niovImBCIdw=
=R0W9
-----END PGP SIGNATURE-----

sched-fix-over-scheduling-bug.patch:
 sched.c |    3 ---
 1 file changed, 3 deletions(-)

--- NEW FILE sched-fix-over-scheduling-bug.patch ---
From: Alex,Shi <alex.shi at intel.com>
Date: Thu, 17 Jun 2010 06:08:13 +0000 (+0800)
Subject: sched: Fix over-scheduling bug
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=3c93717cfa51316e4dbb471e7c0f9d243359d5f8

sched: Fix over-scheduling bug

Commit e70971591 ("sched: Optimize unused cgroup configuration") introduced
an imbalanced scheduling bug.  [[ in 2.6.32-rc1 ]]

If we do not use CGROUP, function update_h_load won't update h_load. When the
system has a large number of tasks far more than logical CPU number, the
incorrect cfs_rq[cpu]->h_load value will cause load_balance() to pull too
many tasks to the local CPU from the busiest CPU. So the busiest CPU keeps
going in a round robin. That will hurt performance.

The issue was found originally by a scientific calculation workload that
developed by Yanmin. With that commit, the workload performance drops
about 40%.

 CPU  before    after

 00   : 2       : 7
 01   : 1       : 7
 02   : 11      : 6
 03   : 12      : 7
 04   : 6       : 6
 05   : 11      : 7
 06   : 10      : 6
 07   : 12      : 7
 08   : 11      : 6
 09   : 12      : 6
 10   : 1       : 6
 11   : 1       : 6
 12   : 6       : 6
 13   : 2       : 6
 14   : 2       : 6
 15   : 1       : 6

Reviewed-by: Yanmin zhang <yanmin.zhang at intel.com>
Signed-off-by: Alex Shi <alex.shi at intel.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
LKML-Reference: <1276754893.9452.5442.camel at debian>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---

diff --git a/kernel/sched.c b/kernel/sched.c
index 2aaceeb..6c9e7c8 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1657,9 +1657,6 @@ static void update_shares(struct sched_domain *sd)
 
 static void update_h_load(long cpu)
 {
-	if (root_task_group_empty())
-		return;
-
 	walk_tg_tree(tg_load_down, tg_nop, (void *)cpu);
 }
 

sky2-optima-add-missing-write-bits.patch:
 sky2.c |    4 ++++
 1 file changed, 4 insertions(+)

--- NEW FILE sky2-optima-add-missing-write-bits.patch ---
From: Takashi Iwai <tiwai at suse.de>
Date: Thu, 3 Dec 2009 05:12:02 +0000 (+0000)
Subject: net: Add missing TST_CFG_WRITE bits around sky2_pci_write
X-Git-Tag: v2.6.33-rc1~59^2~38
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=d66f0b20b2f8eac365fadf5ca492efe4ba539446

net: Add missing TST_CFG_WRITE bits around sky2_pci_write

Add missing TST_CFG_WRITE bits around sky2_pci_write*() in Optima
setup routines.  Without the cfg-write bits, the driver may spew endless
link-up messages through qlink irq.

Signed-off-by: Takashi Iwai <tiwai at suse.de>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 050e6b5..013c9f5 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2152,7 +2152,9 @@ static void sky2_qlink_intr(struct sky2_hw *hw)
 
 	/* reset PHY Link Detect */
 	phy = sky2_pci_read16(hw, PSM_CONFIG_REG4);
+	sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
 	sky2_pci_write16(hw, PSM_CONFIG_REG4, phy | 1);
+	sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
 
 	sky2_link_up(sky2);
 }
@@ -3082,6 +3084,7 @@ static void sky2_reset(struct sky2_hw *hw)
 		reg <<= PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE;
 
 		/* reset PHY Link Detect */
+		sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
 		sky2_pci_write16(hw, PSM_CONFIG_REG4,
 				 reg | PSM_CONFIG_REG4_RST_PHY_LINK_DETECT);
 		sky2_pci_write16(hw, PSM_CONFIG_REG4, reg);
@@ -3099,6 +3102,7 @@ static void sky2_reset(struct sky2_hw *hw)
 			/* restore the PCIe Link Control register */
 			sky2_pci_write16(hw, cap + PCI_EXP_LNKCTL, reg);
 		}
+		sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
 
 		/* re-enable PEX PM in PEX PHY debug reg. 8 (clear bit 12) */
 		sky2_write32(hw, Y2_PEX_PHY_DATA, PEX_DB_ACCESS | (0x08UL << 16));

sky2-optima-add-register-definitions.patch:
 sky2.h |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 177 insertions(+), 1 deletion(-)

--- NEW FILE sky2-optima-add-register-definitions.patch ---
From: Stephen Hemminger <shemminger at vyatta.com>
Date: Thu, 29 Oct 2009 06:37:06 +0000 (+0000)
Subject: sky2: add register definitions for new chips
X-Git-Tag: v2.6.33-rc1~388^2~591
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=e91cd2e65f22a80af87367178bed4957fdc45ecd

sky2: add register definitions for new chips

This adds infrastructure for the newer chip versions and workarounds.
Extracted from the vendor (GPL) driver.

Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h
index ed54129..e13da94 100644
--- a/drivers/net/sky2.h
+++ b/drivers/net/sky2.h
@@ -16,6 +16,13 @@ enum {
 	PCI_DEV_REG5    = 0x88,
 	PCI_CFG_REG_0	= 0x90,
 	PCI_CFG_REG_1	= 0x94,
+
+	PSM_CONFIG_REG0  = 0x98,
+	PSM_CONFIG_REG1	 = 0x9C,
+	PSM_CONFIG_REG2  = 0x160,
+	PSM_CONFIG_REG3  = 0x164,
+	PSM_CONFIG_REG4  = 0x168,
+
 };
 
 /* Yukon-2 */
@@ -48,6 +55,37 @@ enum pci_dev_reg_2 {
 	PCI_USEDATA64	= 1<<0,		/* Use 64Bit Data bus ext */
 };
 
+/*	PCI_OUR_REG_3		32 bit	Our Register 3 (Yukon-ECU only) */
+enum pci_dev_reg_3 {
+	P_CLK_ASF_REGS_DIS	= 1<<18,/* Disable Clock ASF (Yukon-Ext.) */
+	P_CLK_COR_REGS_D0_DIS	= 1<<17,/* Disable Clock Core Regs D0 */
+	P_CLK_MACSEC_DIS	= 1<<17,/* Disable Clock MACSec (Yukon-Ext.) */
+	P_CLK_PCI_REGS_D0_DIS	= 1<<16,/* Disable Clock PCI  Regs D0 */
+	P_CLK_COR_YTB_ARB_DIS	= 1<<15,/* Disable Clock YTB  Arbiter */
+	P_CLK_MAC_LNK1_D3_DIS	= 1<<14,/* Disable Clock MAC  Link1 D3 */
+	P_CLK_COR_LNK1_D0_DIS	= 1<<13,/* Disable Clock Core Link1 D0 */
+	P_CLK_MAC_LNK1_D0_DIS	= 1<<12,/* Disable Clock MAC  Link1 D0 */
+	P_CLK_COR_LNK1_D3_DIS	= 1<<11,/* Disable Clock Core Link1 D3 */
+	P_CLK_PCI_MST_ARB_DIS	= 1<<10,/* Disable Clock PCI  Master Arb. */
+	P_CLK_COR_REGS_D3_DIS	= 1<<9,	/* Disable Clock Core Regs D3 */
+	P_CLK_PCI_REGS_D3_DIS	= 1<<8,	/* Disable Clock PCI  Regs D3 */
+	P_CLK_REF_LNK1_GM_DIS	= 1<<7,	/* Disable Clock Ref. Link1 GMAC */
+	P_CLK_COR_LNK1_GM_DIS	= 1<<6,	/* Disable Clock Core Link1 GMAC */
+	P_CLK_PCI_COMMON_DIS	= 1<<5,	/* Disable Clock PCI  Common */
+	P_CLK_COR_COMMON_DIS	= 1<<4,	/* Disable Clock Core Common */
+	P_CLK_PCI_LNK1_BMU_DIS	= 1<<3,	/* Disable Clock PCI  Link1 BMU */
+	P_CLK_COR_LNK1_BMU_DIS	= 1<<2,	/* Disable Clock Core Link1 BMU */
+	P_CLK_PCI_LNK1_BIU_DIS	= 1<<1,	/* Disable Clock PCI  Link1 BIU */
+	P_CLK_COR_LNK1_BIU_DIS	= 1<<0,	/* Disable Clock Core Link1 BIU */
+	PCIE_OUR3_WOL_D3_COLD_SET = P_CLK_ASF_REGS_DIS |
+				    P_CLK_COR_REGS_D0_DIS |
+				    P_CLK_COR_LNK1_D0_DIS |
+				    P_CLK_MAC_LNK1_D0_DIS |
+				    P_CLK_PCI_MST_ARB_DIS |
+				    P_CLK_COR_COMMON_DIS |
+				    P_CLK_COR_LNK1_BMU_DIS,
+};
+
 /*	PCI_OUR_REG_4		32 bit	Our Register 4 (Yukon-ECU only) */
 enum pci_dev_reg_4 {
 				/* (Link Training & Status State Machine) */
@@ -114,7 +152,7 @@ enum pci_dev_reg_5 {
 				     P_GAT_PCIE_RX_EL_IDLE,
 };
 
-#/*	PCI_CFG_REG_1			32 bit	Config Register 1 (Yukon-Ext only) */
+/*	PCI_CFG_REG_1			32 bit	Config Register 1 (Yukon-Ext only) */
 enum pci_cfg_reg1 {
 	P_CF1_DIS_REL_EVT_RST	= 1<<24, /* Dis. Rel. Event during PCIE reset */
 										/* Bit 23..21: Release Clock on Event */
@@ -145,6 +183,72 @@ enum pci_cfg_reg1 {
 					P_CF1_ENA_TXBMU_WR_IDLE,
 };
 
+/* Yukon-Optima */
+enum {
+	PSM_CONFIG_REG1_AC_PRESENT_STATUS = 1<<31,   /* AC Present Status */
+
+	PSM_CONFIG_REG1_PTP_CLK_SEL	  = 1<<29,   /* PTP Clock Select */
+	PSM_CONFIG_REG1_PTP_MODE	  = 1<<28,   /* PTP Mode */
+
+	PSM_CONFIG_REG1_MUX_PHY_LINK	  = 1<<27,   /* PHY Energy Detect Event */
+
+	PSM_CONFIG_REG1_EN_PIN63_AC_PRESENT = 1<<26,  /* Enable LED_DUPLEX for ac_present */
+	PSM_CONFIG_REG1_EN_PCIE_TIMER	  = 1<<25,    /* Enable PCIe Timer */
+	PSM_CONFIG_REG1_EN_SPU_TIMER	  = 1<<24,    /* Enable SPU Timer */
+	PSM_CONFIG_REG1_POLARITY_AC_PRESENT = 1<<23,  /* AC Present Polarity */
+
+	PSM_CONFIG_REG1_EN_AC_PRESENT	  = 1<<21,    /* Enable AC Present */
+
+	PSM_CONFIG_REG1_EN_GPHY_INT_PSM	= 1<<20,      /* Enable GPHY INT for PSM */
+	PSM_CONFIG_REG1_DIS_PSM_TIMER	= 1<<19,      /* Disable PSM Timer */
+};
+
+/* Yukon-Supreme */
+enum {
+	PSM_CONFIG_REG1_GPHY_ENERGY_STS	= 1<<31, /* GPHY Energy Detect Status */
+
+	PSM_CONFIG_REG1_UART_MODE_MSK	= 3<<29, /* UART_Mode */
+	PSM_CONFIG_REG1_CLK_RUN_ASF	= 1<<28, /* Enable Clock Free Running for ASF Subsystem */
+	PSM_CONFIG_REG1_UART_CLK_DISABLE= 1<<27, /* Disable UART clock */
+	PSM_CONFIG_REG1_VAUX_ONE	= 1<<26, /* Tie internal Vaux to 1'b1 */
+	PSM_CONFIG_REG1_UART_FC_RI_VAL	= 1<<25, /* Default value for UART_RI_n */
+	PSM_CONFIG_REG1_UART_FC_DCD_VAL	= 1<<24, /* Default value for UART_DCD_n */
+	PSM_CONFIG_REG1_UART_FC_DSR_VAL	= 1<<23, /* Default value for UART_DSR_n */
+	PSM_CONFIG_REG1_UART_FC_CTS_VAL	= 1<<22, /* Default value for UART_CTS_n */
+	PSM_CONFIG_REG1_LATCH_VAUX	= 1<<21, /* Enable Latch current Vaux_avlbl */
+	PSM_CONFIG_REG1_FORCE_TESTMODE_INPUT= 1<<20, /* Force Testmode pin as input PAD */
+	PSM_CONFIG_REG1_UART_RST	= 1<<19, /* UART_RST */
+	PSM_CONFIG_REG1_PSM_PCIE_L1_POL	= 1<<18, /* PCIE L1 Event Polarity for PSM */
+	PSM_CONFIG_REG1_TIMER_STAT	= 1<<17, /* PSM Timer Status */
+	PSM_CONFIG_REG1_GPHY_INT	= 1<<16, /* GPHY INT Status */
+	PSM_CONFIG_REG1_FORCE_TESTMODE_ZERO= 1<<15, /* Force internal Testmode as 1'b0 */
+	PSM_CONFIG_REG1_EN_INT_ASPM_CLKREQ = 1<<14, /* ENABLE INT for CLKRUN on ASPM and CLKREQ */
+	PSM_CONFIG_REG1_EN_SND_TASK_ASPM_CLKREQ	= 1<<13, /* ENABLE Snd_task for CLKRUN on ASPM and CLKREQ */
+	PSM_CONFIG_REG1_DIS_CLK_GATE_SND_TASK	= 1<<12, /* Disable CLK_GATE control snd_task */
+	PSM_CONFIG_REG1_DIS_FF_CHIAN_SND_INTA	= 1<<11, /* Disable flip-flop chain for sndmsg_inta */
+
+	PSM_CONFIG_REG1_DIS_LOADER	= 1<<9, /* Disable Loader SM after PSM Goes back to IDLE */
+	PSM_CONFIG_REG1_DO_PWDN		= 1<<8, /* Do Power Down, Start PSM Scheme */
+	PSM_CONFIG_REG1_DIS_PIG		= 1<<7, /* Disable Plug-in-Go SM after PSM Goes back to IDLE */
+	PSM_CONFIG_REG1_DIS_PERST	= 1<<6, /* Disable Internal PCIe Reset after PSM Goes back to IDLE */
+	PSM_CONFIG_REG1_EN_REG18_PD	= 1<<5, /* Enable REG18 Power Down for PSM */
+	PSM_CONFIG_REG1_EN_PSM_LOAD	= 1<<4, /* Disable EEPROM Loader after PSM Goes back to IDLE */
+	PSM_CONFIG_REG1_EN_PSM_HOT_RST	= 1<<3, /* Enable PCIe Hot Reset for PSM */
+	PSM_CONFIG_REG1_EN_PSM_PERST	= 1<<2, /* Enable PCIe Reset Event for PSM */
+	PSM_CONFIG_REG1_EN_PSM_PCIE_L1	= 1<<1, /* Enable PCIe L1 Event for PSM */
+	PSM_CONFIG_REG1_EN_PSM		= 1<<0, /* Enable PSM Scheme */
+};
+
+/*	PSM_CONFIG_REG4				0x0168	PSM Config Register 4 */
+enum {
+						/* PHY Link Detect Timer */
+	PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_MSK = 0xf<<4,
+	PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE = 4,
+
+	PSM_CONFIG_REG4_DEBUG_TIMER	    = 1<<1, /* Debug Timer */
+	PSM_CONFIG_REG4_RST_PHY_LINK_DETECT = 1<<0, /* Reset GPHY Link Detect */
+};
+
 
 #define PCI_STATUS_ERROR_BITS (PCI_STATUS_DETECTED_PARITY | \
 			       PCI_STATUS_SIG_SYSTEM_ERROR | \
@@ -197,6 +301,9 @@ enum csr_regs {
 	B2_I2C_IRQ	= 0x0168,
 	B2_I2C_SW	= 0x016c,
 
+	Y2_PEX_PHY_DATA = 0x0170,
+	Y2_PEX_PHY_ADDR = 0x0172,
+
 	B3_RAM_ADDR	= 0x0180,
 	B3_RAM_DATA_LO	= 0x0184,
 	B3_RAM_DATA_HI	= 0x0188,
@@ -317,6 +424,10 @@ enum {
 	Y2_IS_CHK_TXS2	= 1<<9,		/* Descriptor error TXS 2 */
 	Y2_IS_CHK_TXA2	= 1<<8,		/* Descriptor error TXA 2 */
 
+	Y2_IS_PSM_ACK	= 1<<7,		/* PSM Acknowledge (Yukon-Optima only) */
+	Y2_IS_PTP_TIST	= 1<<6,		/* PTP Time Stamp (Yukon-Optima only) */
+	Y2_IS_PHY_QLNK	= 1<<5,		/* PHY Quick Link (Yukon-Optima only) */
+
 	Y2_IS_IRQ_PHY1	= 1<<4,		/* Interrupt from PHY 1 */
 	Y2_IS_IRQ_MAC1	= 1<<3,		/* Interrupt from MAC 1 */
 	Y2_IS_CHK_RX1	= 1<<2,		/* Descriptor error Rx 1 */
@@ -435,6 +546,7 @@ enum {
  	CHIP_ID_YUKON_FE_P = 0xb8, /* YUKON-2 FE+ */
 	CHIP_ID_YUKON_SUPR = 0xb9, /* YUKON-2 Supreme */
 	CHIP_ID_YUKON_UL_2 = 0xba, /* YUKON-2 Ultra 2 */
+	CHIP_ID_YUKON_OPT  = 0xbc, /* YUKON-2 Optima */
 };
 enum yukon_ec_rev {
 	CHIP_REV_YU_EC_A1    = 0,  /* Chip Rev. for Yukon-EC A1/A0 */
@@ -459,6 +571,8 @@ enum yukon_ex_rev {
 };
 enum yukon_supr_rev {
 	CHIP_REV_YU_SU_A0    = 0,
+	CHIP_REV_YU_SU_B0    = 1,
+	CHIP_REV_YU_SU_B1    = 3,
 };
 
 
@@ -513,6 +627,12 @@ enum {
 	TIM_T_STEP	= 1<<0,	/* Test step */
 };
 
+/*	Y2_PEX_PHY_ADDR/DATA		PEX PHY address and data reg  (Yukon-2 only) */
+enum {
+	PEX_RD_ACCESS	= 1<<31, /* Access Mode Read = 1, Write = 0 */
+	PEX_DB_ACCESS	= 1<<30, /* Access to debug register */
+};
+
 /*	B3_RAM_ADDR		32 bit	RAM Address, to read or write */
 					/* Bit 31..19:	reserved */
 #define RAM_ADR_RAN	0x0007ffffL	/* Bit 18.. 0:	RAM Address Range */
@@ -754,6 +874,42 @@ enum {
 	BMU_TX_CLR_IRQ_TCP	= 1<<11, /* Clear IRQ on TCP segment length mismatch */
 };
 
+/*	TBMU_TEST			0x06B8	Transmit BMU Test Register */
+enum {
+	TBMU_TEST_BMU_TX_CHK_AUTO_OFF		= 1<<31, /* BMU Tx Checksum Auto Calculation Disable */
+	TBMU_TEST_BMU_TX_CHK_AUTO_ON		= 1<<30, /* BMU Tx Checksum Auto Calculation Enable */
+	TBMU_TEST_HOME_ADD_PAD_FIX1_EN		= 1<<29, /* Home Address Paddiing FIX1 Enable */
+	TBMU_TEST_HOME_ADD_PAD_FIX1_DIS		= 1<<28, /* Home Address Paddiing FIX1 Disable */
+	TBMU_TEST_ROUTING_ADD_FIX_EN		= 1<<27, /* Routing Address Fix Enable */
+	TBMU_TEST_ROUTING_ADD_FIX_DIS		= 1<<26, /* Routing Address Fix Disable */
+	TBMU_TEST_HOME_ADD_FIX_EN		= 1<<25, /* Home address checksum fix enable */
+	TBMU_TEST_HOME_ADD_FIX_DIS		= 1<<24, /* Home address checksum fix disable */
+
+	TBMU_TEST_TEST_RSPTR_ON			= 1<<22, /* Testmode Shadow Read Ptr On */
+	TBMU_TEST_TEST_RSPTR_OFF		= 1<<21, /* Testmode Shadow Read Ptr Off */
+	TBMU_TEST_TESTSTEP_RSPTR		= 1<<20, /* Teststep Shadow Read Ptr */
+
+	TBMU_TEST_TEST_RPTR_ON			= 1<<18, /* Testmode Read Ptr On */
+	TBMU_TEST_TEST_RPTR_OFF			= 1<<17, /* Testmode Read Ptr Off */
+	TBMU_TEST_TESTSTEP_RPTR			= 1<<16, /* Teststep Read Ptr */
+
+	TBMU_TEST_TEST_WSPTR_ON			= 1<<14, /* Testmode Shadow Write Ptr On */
+	TBMU_TEST_TEST_WSPTR_OFF		= 1<<13, /* Testmode Shadow Write Ptr Off */
+	TBMU_TEST_TESTSTEP_WSPTR		= 1<<12, /* Teststep Shadow Write Ptr */
+
+	TBMU_TEST_TEST_WPTR_ON			= 1<<10, /* Testmode Write Ptr On */
+	TBMU_TEST_TEST_WPTR_OFF			= 1<<9, /* Testmode Write Ptr Off */
+	TBMU_TEST_TESTSTEP_WPTR			= 1<<8,			/* Teststep Write Ptr */
+
+	TBMU_TEST_TEST_REQ_NB_ON		= 1<<6, /* Testmode Req Nbytes/Addr On */
+	TBMU_TEST_TEST_REQ_NB_OFF		= 1<<5, /* Testmode Req Nbytes/Addr Off */
+	TBMU_TEST_TESTSTEP_REQ_NB		= 1<<4, /* Teststep Req Nbytes/Addr */
+
+	TBMU_TEST_TEST_DONE_IDX_ON		= 1<<2, /* Testmode Done Index On */
+	TBMU_TEST_TEST_DONE_IDX_OFF		= 1<<1, /* Testmode Done Index Off */
+	TBMU_TEST_TESTSTEP_DONE_IDX		= 1<<0,	/* Teststep Done Index */
+};
+
 /* Queue Prefetch Unit Offsets, use Y2_QADDR() to address (Yukon-2 only)*/
 /* PREF_UNIT_CTRL	32 bit	Prefetch Control register */
 enum {
@@ -1674,6 +1830,12 @@ enum {
 
 /*	RX_GMF_CTRL_T	32 bit	Rx GMAC FIFO Control/Test */
 enum {
+	RX_GCLKMAC_ENA	= 1<<31,	/* RX MAC Clock Gating Enable */
+	RX_GCLKMAC_OFF	= 1<<30,
+
+	RX_STFW_DIS	= 1<<29,	/* RX Store and Forward Enable */
+	RX_STFW_ENA	= 1<<28,
+
 	RX_TRUNC_ON	= 1<<27,  	/* enable  packet truncation */
 	RX_TRUNC_OFF	= 1<<26, 	/* disable packet truncation */
 	RX_VLAN_STRIP_ON = 1<<25,	/* enable  VLAN stripping */
@@ -1711,6 +1873,20 @@ enum {
 	GMF_RX_CTRL_DEF	= GMF_OPER_ON | GMF_RX_F_FL_ON,
 };
 
+/*	RX_GMF_FL_CTRL	16 bit	Rx GMAC FIFO Flush Control (Yukon-Supreme) */
+enum {
+	RX_IPV6_SA_MOB_ENA	= 1<<9,	/* IPv6 SA Mobility Support Enable */
+	RX_IPV6_SA_MOB_DIS	= 1<<8,	/* IPv6 SA Mobility Support Disable */
+	RX_IPV6_DA_MOB_ENA	= 1<<7,	/* IPv6 DA Mobility Support Enable */
+	RX_IPV6_DA_MOB_DIS	= 1<<6,	/* IPv6 DA Mobility Support Disable */
+	RX_PTR_SYNCDLY_ENA	= 1<<5,	/* Pointers Delay Synch Enable */
+	RX_PTR_SYNCDLY_DIS	= 1<<4,	/* Pointers Delay Synch Disable */
+	RX_ASF_NEWFLAG_ENA	= 1<<3,	/* RX ASF Flag New Logic Enable */
+	RX_ASF_NEWFLAG_DIS	= 1<<2,	/* RX ASF Flag New Logic Disable */
+	RX_FLSH_MISSPKT_ENA	= 1<<1,	/* RX Flush Miss-Packet Enable */
+	RX_FLSH_MISSPKT_DIS	= 1<<0,	/* RX Flush Miss-Packet Disable */
+};
+
 /*	TX_GMF_EA		32 bit	Tx GMAC FIFO End Address */
 enum {
 	TX_DYN_WM_ENA	= 3,	/* Yukon-FE+ specific */

sky2-optima-fix-tcp-offload.patch:
 sky2.c |    5 +++++
 1 file changed, 5 insertions(+)

--- NEW FILE sky2-optima-fix-tcp-offload.patch ---
From: Takashi Iwai <tiwai at suse.de>
Date: Thu, 3 Dec 2009 05:12:01 +0000 (+0000)
Subject: net: Fix Yukon-2 Optima TCP offload setup
X-Git-Tag: v2.6.33-rc1~59^2~39
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=b338682dc5c20e8ff986e58407bdb6e3a3e3f0a3

net: Fix Yukon-2 Optima TCP offload setup

Fix the TCP offload setup for Yukon-2 Optima.
It requires SKY2_HW_NE_LE flag unlike Ultra 2.

Signed-off-by: Takashi Iwai <tiwai at suse.de>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 3943d89..050e6b5 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2968,8 +2968,13 @@ static int __devinit sky2_init(struct sky2_hw *hw)
 		break;
 
 	case CHIP_ID_YUKON_UL_2:
+		hw->flags = SKY2_HW_GIGABIT
+			| SKY2_HW_ADV_POWER_CTL;
+		break;
+
 	case CHIP_ID_YUKON_OPT:
 		hw->flags = SKY2_HW_GIGABIT
+			| SKY2_HW_NEW_LE
 			| SKY2_HW_ADV_POWER_CTL;
 		break;
 

sky2-optima-print-chip-name.patch:
 sky2.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE sky2-optima-print-chip-name.patch ---
From: stephen hemminger <shemminger at vyatta.com>
Date: Mon, 14 Dec 2009 08:33:47 +0000 (+0000)
Subject: sky2: print Optima chip name
X-Git-Tag: v2.6.33-rc1~59^2~9
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=dae3a5112d258764cad9e48439ca7dd05c2edca1

sky2: print Optima chip name

Off by one in name lookup makes Optima display as (chip 0xbc)

Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 89a05d6..9431f64 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -4530,7 +4530,7 @@ static const char *sky2_name(u8 chipid, char *buf, int sz)
 		"Optima",	/* 0xbc */
 	};
 
-	if (chipid >= CHIP_ID_YUKON_XL && chipid < CHIP_ID_YUKON_OPT)
+	if (chipid >= CHIP_ID_YUKON_XL && chipid <= CHIP_ID_YUKON_OPT)
 		strncpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz);
 	else
 		snprintf(buf, sz, "(chip %#x)", chipid);

sky2-optima-support.patch:
 sky2.c |   79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

--- NEW FILE sky2-optima-support.patch ---
From: Stephen Hemminger <shemminger at vyatta.com>
Date: Thu, 29 Oct 2009 06:37:09 +0000 (+0000)
Subject: sky2: 88E8059 support
X-Git-Tag: v2.6.33-rc1~388^2~588
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=0f5aac7070a01ec757ed243febe4fff7c944c4d2

sky2: 88E8059 support

Tentative support for newer Marvell hardware including
the Yukon-2 Optima chip. Do not have hatdware to test this yet,
code is based on vendor driver.

Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
---

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 3387a2f..53cce74 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -140,6 +140,7 @@ static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x436D) }, /* 88E8055 */
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4370) }, /* 88E8075 */
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4380) }, /* 88E8057 */
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4381) }, /* 88E8059 */
 	{ 0 }
 };
 
@@ -603,6 +604,16 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port)
 		/* apply workaround for integrated resistors calibration */
 		gm_phy_write(hw, port, PHY_MARV_PAGE_ADDR, 17);
 		gm_phy_write(hw, port, PHY_MARV_PAGE_DATA, 0x3f60);
+	} else if (hw->chip_id == CHIP_ID_YUKON_OPT && hw->chip_rev == 0) {
+		/* apply fixes in PHY AFE */
+		gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 0x00ff);
+
+		/* apply RDAC termination workaround */
+		gm_phy_write(hw, port, 24, 0x2800);
+		gm_phy_write(hw, port, 23, 0x2001);
+
+		/* set page register back to 0 */
+		gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 0);
 	} else if (hw->chip_id != CHIP_ID_YUKON_EX &&
 		   hw->chip_id < CHIP_ID_YUKON_SUPR) {
 		/* no effect on Yukon-XL */
@@ -2127,6 +2138,25 @@ out:
 	spin_unlock(&sky2->phy_lock);
 }
 
+/* Special quick link interrupt (Yukon-2 Optima only) */
+static void sky2_qlink_intr(struct sky2_hw *hw)
+{
+	struct sky2_port *sky2 = netdev_priv(hw->dev[0]);
+	u32 imask;
+	u16 phy;
+
+	/* disable irq */
+	imask = sky2_read32(hw, B0_IMSK);
+	imask &= ~Y2_IS_PHY_QLNK;
+	sky2_write32(hw, B0_IMSK, imask);
+
+	/* reset PHY Link Detect */
+	phy = sky2_pci_read16(hw, PSM_CONFIG_REG4);
+	sky2_pci_write16(hw, PSM_CONFIG_REG4, phy | 1);
+
+	sky2_link_up(sky2);
+}
+
 /* Transmit timeout is only called if we are running, carrier is up
  * and tx queue is full (stopped).
  */
@@ -2796,6 +2826,9 @@ static int sky2_poll(struct napi_struct *napi, int work_limit)
 	if (status & Y2_IS_IRQ_PHY2)
 		sky2_phy_intr(hw, 1);
 
+	if (status & Y2_IS_PHY_QLNK)
+		sky2_qlink_intr(hw);
+
 	while ((idx = sky2_read16(hw, STAT_PUT_IDX)) != hw->st_idx) {
 		work_done += sky2_status_intr(hw, work_limit - work_done, idx);
 
@@ -2845,6 +2878,7 @@ static u32 sky2_mhz(const struct sky2_hw *hw)
 	case CHIP_ID_YUKON_EX:
 	case CHIP_ID_YUKON_SUPR:
 	case CHIP_ID_YUKON_UL_2:
+	case CHIP_ID_YUKON_OPT:
 		return 125;
 
 	case CHIP_ID_YUKON_FE:
@@ -2934,6 +2968,7 @@ static int __devinit sky2_init(struct sky2_hw *hw)
 		break;
 
 	case CHIP_ID_YUKON_UL_2:
+	case CHIP_ID_YUKON_OPT:
 		hw->flags = SKY2_HW_GIGABIT
 			| SKY2_HW_ADV_POWER_CTL;
 		break;
@@ -3024,6 +3059,46 @@ static void sky2_reset(struct sky2_hw *hw)
 		sky2_pci_write32(hw, PCI_DEV_REG3, P_CLK_MACSEC_DIS);
 	}
 
+	if (hw->chip_id == CHIP_ID_YUKON_OPT) {
+		u16 reg;
+		u32 msk;
+
+		if (hw->chip_rev == 0) {
+			/* disable PCI-E PHY power down (set PHY reg 0x80, bit 7 */
+			sky2_write32(hw, Y2_PEX_PHY_DATA, (0x80UL << 16) | (1 << 7));
+
+			/* set PHY Link Detect Timer to 1.1 second (11x 100ms) */
+			reg = 10;
+		} else {
+			/* set PHY Link Detect Timer to 0.4 second (4x 100ms) */
+			reg = 3;
+		}
+
+		reg <<= PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE;
+
+		/* reset PHY Link Detect */
+		sky2_pci_write16(hw, PSM_CONFIG_REG4,
+				 reg | PSM_CONFIG_REG4_RST_PHY_LINK_DETECT);
+		sky2_pci_write16(hw, PSM_CONFIG_REG4, reg);
+
+
+		/* enable PHY Quick Link */
+		msk = sky2_read32(hw, B0_IMSK);
+		msk |= Y2_IS_PHY_QLNK;
+		sky2_write32(hw, B0_IMSK, msk);
+
+		/* check if PSMv2 was running before */
+		reg = sky2_pci_read16(hw, PSM_CONFIG_REG3);
+		if (reg & PCI_EXP_LNKCTL_ASPMC) {
+			int cap = pci_find_capability(pdev, PCI_CAP_ID_EXP);
+			/* restore the PCIe Link Control register */
+			sky2_pci_write16(hw, cap + PCI_EXP_LNKCTL, reg);
+		}
+
+		/* re-enable PEX PM in PEX PHY debug reg. 8 (clear bit 12) */
+		sky2_write32(hw, Y2_PEX_PHY_DATA, PEX_DB_ACCESS | (0x08UL << 16));
+	}
+
 	/* Clear I2C IRQ noise */
 	sky2_write32(hw, B2_I2C_IRQ, 1);
 
@@ -4442,9 +4517,11 @@ static const char *sky2_name(u8 chipid, char *buf, int sz)
 		"FE+",		/* 0xb8 */
 		"Supreme",	/* 0xb9 */
 		"UL 2",		/* 0xba */
+		"Unknown",	/* 0xbb */
+		"Optima",	/* 0xbc */
 	};
 
-	if (chipid >= CHIP_ID_YUKON_XL && chipid < CHIP_ID_YUKON_UL_2)
+	if (chipid >= CHIP_ID_YUKON_XL && chipid < CHIP_ID_YUKON_OPT)
 		strncpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz);
 	else
 		snprintf(buf, sz, "(chip %#x)", chipid);


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.1014.2.45
retrieving revision 1.1014.2.46
diff -u -p -r1.1014.2.45 -r1.1014.2.46
--- .cvsignore	29 May 2010 14:04:42 -0000	1.1014.2.45
+++ .cvsignore	12 Jul 2010 21:28:20 -0000	1.1014.2.46
@@ -5,4 +5,4 @@ kernel-2.6.*.config
 temp-*
 kernel-2.6.32
 linux-2.6.32.tar.bz2
-patch-2.6.32.14.bz2
+patch-2.6.32.16.bz2

drm-upgrayedd.patch:
 b/drivers/gpu/drm/Kconfig                         |    2 
 b/drivers/gpu/drm/Makefile                        |    5 
 b/drivers/gpu/drm/ati_pcigart.c                   |    2 
 b/drivers/gpu/drm/drm_crtc.c                      |  181 
 b/drivers/gpu/drm/drm_crtc_helper.c               |   31 
 b/drivers/gpu/drm/drm_dp_i2c_helper.c             |  209 
 b/drivers/gpu/drm/drm_drv.c                       |   55 
 b/drivers/gpu/drm/drm_edid.c                      |  363 -
 b/drivers/gpu/drm/drm_fb_helper.c                 |   32 
 b/drivers/gpu/drm/drm_fops.c                      |  112 
 b/drivers/gpu/drm/drm_ioc32.c                     |   89 
 b/drivers/gpu/drm/drm_irq.c                       |  101 
 b/drivers/gpu/drm/drm_mm.c                        |  113 
 b/drivers/gpu/drm/drm_modes.c                     |  118 
 b/drivers/gpu/drm/drm_stub.c                      |   15 
 b/drivers/gpu/drm/i2c/Makefile                    |    4 
 b/drivers/gpu/drm/i2c/ch7006_drv.c                |  536 +
 b/drivers/gpu/drm/i2c/ch7006_mode.c               |  468 +
 b/drivers/gpu/drm/i2c/ch7006_priv.h               |  344 +
 b/drivers/gpu/drm/i810/i810_dma.c                 |    2 
 b/drivers/gpu/drm/i810/i810_drv.c                 |    2 
 b/drivers/gpu/drm/i830/i830_dma.c                 |    2 
 b/drivers/gpu/drm/i830/i830_drv.c                 |    2 
 b/drivers/gpu/drm/i915/Makefile                   |    2 
 b/drivers/gpu/drm/i915/dvo_ch7017.c               |    9 
 b/drivers/gpu/drm/i915/dvo_ch7xxx.c               |   16 
 b/drivers/gpu/drm/i915/dvo_ivch.c                 |   37 
 b/drivers/gpu/drm/i915/dvo_sil164.c               |   20 
 b/drivers/gpu/drm/i915/dvo_tfp410.c               |   34 
 b/drivers/gpu/drm/i915/i915_debugfs.c             |  141 
 b/drivers/gpu/drm/i915/i915_dma.c                 |   67 
 b/drivers/gpu/drm/i915/i915_drv.c                 |  297 -
 b/drivers/gpu/drm/i915/i915_drv.h                 |  196 
 b/drivers/gpu/drm/i915/i915_gem.c                 |  437 +
 b/drivers/gpu/drm/i915/i915_gem_tiling.c          |   52 
 b/drivers/gpu/drm/i915/i915_ioc32.c               |   23 
 b/drivers/gpu/drm/i915/i915_irq.c                 |  194 
 b/drivers/gpu/drm/i915/i915_opregion.c            |   92 
 b/drivers/gpu/drm/i915/i915_reg.h                 |   73 
 b/drivers/gpu/drm/i915/i915_suspend.c             |   86 
 b/drivers/gpu/drm/i915/intel_bios.c               |  170 
 b/drivers/gpu/drm/i915/intel_bios.h               |   57 
 b/drivers/gpu/drm/i915/intel_crt.c                |   53 
 b/drivers/gpu/drm/i915/intel_display.c            | 1317 +++-
 b/drivers/gpu/drm/i915/intel_dp.c                 |  127 
 b/drivers/gpu/drm/i915/intel_drv.h                |   44 
 b/drivers/gpu/drm/i915/intel_fb.c                 |   11 
 b/drivers/gpu/drm/i915/intel_hdmi.c               |    5 
 b/drivers/gpu/drm/i915/intel_i2c.c                |   21 
 b/drivers/gpu/drm/i915/intel_lvds.c               |  200 
 b/drivers/gpu/drm/i915/intel_overlay.c            | 1416 +++++
 b/drivers/gpu/drm/i915/intel_sdvo.c               |   24 
 b/drivers/gpu/drm/i915/intel_tv.c                 |   49 
 b/drivers/gpu/drm/mga/mga_drv.c                   |    2 
 b/drivers/gpu/drm/mga/mga_ioc32.c                 |   13 
 b/drivers/gpu/drm/nouveau/Kconfig                 |   44 
 b/drivers/gpu/drm/nouveau/Makefile                |   32 
 b/drivers/gpu/drm/nouveau/nouveau_acpi.c          |  125 
 b/drivers/gpu/drm/nouveau/nouveau_backlight.c     |  155 
 b/drivers/gpu/drm/nouveau/nouveau_bios.c          | 6052 ++++++++++++++++++++++
 b/drivers/gpu/drm/nouveau/nouveau_bios.h          |  292 +
 b/drivers/gpu/drm/nouveau/nouveau_bo.c            |  773 ++
 b/drivers/gpu/drm/nouveau/nouveau_calc.c          |  478 +
 b/drivers/gpu/drm/nouveau/nouveau_channel.c       |  430 +
 b/drivers/gpu/drm/nouveau/nouveau_connector.c     |  846 +++
 b/drivers/gpu/drm/nouveau/nouveau_connector.h     |   54 
 b/drivers/gpu/drm/nouveau/nouveau_crtc.h          |   95 
 b/drivers/gpu/drm/nouveau/nouveau_debugfs.c       |  155 
 b/drivers/gpu/drm/nouveau/nouveau_display.c       |  115 
 b/drivers/gpu/drm/nouveau/nouveau_dma.c           |  244 
 b/drivers/gpu/drm/nouveau/nouveau_dma.h           |  159 
 b/drivers/gpu/drm/nouveau/nouveau_dp.c            |  575 ++
 b/drivers/gpu/drm/nouveau/nouveau_drv.c           |  421 +
 b/drivers/gpu/drm/nouveau/nouveau_drv.h           | 1350 ++++
 b/drivers/gpu/drm/nouveau/nouveau_encoder.h       |   91 
 b/drivers/gpu/drm/nouveau/nouveau_fb.h            |   47 
 b/drivers/gpu/drm/nouveau/nouveau_fbcon.c         |  423 +
 b/drivers/gpu/drm/nouveau/nouveau_fbcon.h         |   54 
 b/drivers/gpu/drm/nouveau/nouveau_fence.c         |  262 
 b/drivers/gpu/drm/nouveau/nouveau_gem.c           |  994 +++
 b/drivers/gpu/drm/nouveau/nouveau_grctx.c         |  161 
 b/drivers/gpu/drm/nouveau/nouveau_grctx.h         |  133 
 b/drivers/gpu/drm/nouveau/nouveau_hw.c            | 1080 +++
 b/drivers/gpu/drm/nouveau/nouveau_hw.h            |  455 +
 b/drivers/gpu/drm/nouveau/nouveau_i2c.c           |  269 
 b/drivers/gpu/drm/nouveau/nouveau_i2c.h           |   52 
 b/drivers/gpu/drm/nouveau/nouveau_ioc32.c         |   70 
 b/drivers/gpu/drm/nouveau/nouveau_irq.c           |  737 ++
 b/drivers/gpu/drm/nouveau/nouveau_mem.c           |  668 ++
 b/drivers/gpu/drm/nouveau/nouveau_notifier.c      |  203 
 b/drivers/gpu/drm/nouveau/nouveau_object.c        | 1295 ++++
 b/drivers/gpu/drm/nouveau/nouveau_reg.h           |  837 +++
 b/drivers/gpu/drm/nouveau/nouveau_sgdma.c         |  322 +
 b/drivers/gpu/drm/nouveau/nouveau_state.c         |  897 +++
 b/drivers/gpu/drm/nouveau/nouveau_ttm.c           |  103 
 b/drivers/gpu/drm/nouveau/nv04_crtc.c             | 1002 +++
 b/drivers/gpu/drm/nouveau/nv04_cursor.c           |   70 
 b/drivers/gpu/drm/nouveau/nv04_dac.c              |  527 +
 b/drivers/gpu/drm/nouveau/nv04_dfp.c              |  623 ++
 b/drivers/gpu/drm/nouveau/nv04_display.c          |  287 +
 b/drivers/gpu/drm/nouveau/nv04_fb.c               |   21 
 b/drivers/gpu/drm/nouveau/nv04_fbcon.c            |  312 +
 b/drivers/gpu/drm/nouveau/nv04_fifo.c             |  305 +
 b/drivers/gpu/drm/nouveau/nv04_graph.c            |  584 ++
 b/drivers/gpu/drm/nouveau/nv04_instmem.c          |  208 
 b/drivers/gpu/drm/nouveau/nv04_mc.c               |   20 
 b/drivers/gpu/drm/nouveau/nv04_timer.c            |   51 
 b/drivers/gpu/drm/nouveau/nv04_tv.c               |  305 +
 b/drivers/gpu/drm/nouveau/nv10_fb.c               |   44 
 b/drivers/gpu/drm/nouveau/nv10_fifo.c             |  260 
 b/drivers/gpu/drm/nouveau/nv10_graph.c            | 1009 +++
 b/drivers/gpu/drm/nouveau/nv17_gpio.c             |   92 
 b/drivers/gpu/drm/nouveau/nv17_tv.c               |  776 ++
 b/drivers/gpu/drm/nouveau/nv17_tv.h               |  156 
 b/drivers/gpu/drm/nouveau/nv17_tv_modes.c         |  583 ++
 b/drivers/gpu/drm/nouveau/nv20_graph.c            |  775 ++
 b/drivers/gpu/drm/nouveau/nv40_fb.c               |   75 
 b/drivers/gpu/drm/nouveau/nv40_fifo.c             |  314 +
 b/drivers/gpu/drm/nouveau/nv40_graph.c            |  406 +
 b/drivers/gpu/drm/nouveau/nv40_grctx.c            |  678 ++
 b/drivers/gpu/drm/nouveau/nv40_mc.c               |   38 
 b/drivers/gpu/drm/nouveau/nv50_crtc.c             |  792 ++
 b/drivers/gpu/drm/nouveau/nv50_cursor.c           |  156 
 b/drivers/gpu/drm/nouveau/nv50_dac.c              |  304 +
 b/drivers/gpu/drm/nouveau/nv50_display.c          | 1032 +++
 b/drivers/gpu/drm/nouveau/nv50_display.h          |   46 
 b/drivers/gpu/drm/nouveau/nv50_evo.h              |  113 
 b/drivers/gpu/drm/nouveau/nv50_fbcon.c            |  267 
 b/drivers/gpu/drm/nouveau/nv50_fifo.c             |  495 +
 b/drivers/gpu/drm/nouveau/nv50_graph.c            |  394 +
 b/drivers/gpu/drm/nouveau/nv50_instmem.c          |  509 +
 b/drivers/gpu/drm/nouveau/nv50_mc.c               |   40 
 b/drivers/gpu/drm/nouveau/nv50_sor.c              |  323 +
 b/drivers/gpu/drm/nouveau/nvreg.h                 |  535 +
 b/drivers/gpu/drm/r128/r128_drv.c                 |    2 
 b/drivers/gpu/drm/r128/r128_ioc32.c               |   16 
 b/drivers/gpu/drm/radeon/Kconfig                  |   12 
 b/drivers/gpu/drm/radeon/Makefile                 |    7 
 b/drivers/gpu/drm/radeon/ObjectID.h               |  801 +-
 b/drivers/gpu/drm/radeon/atom.c                   |  155 
 b/drivers/gpu/drm/radeon/atom.h                   |    4 
 b/drivers/gpu/drm/radeon/atombios.h               |  217 
 b/drivers/gpu/drm/radeon/atombios_crtc.c          |  306 -
 b/drivers/gpu/drm/radeon/atombios_dp.c            |  789 ++
 b/drivers/gpu/drm/radeon/mkregtable.c             |    4 
 b/drivers/gpu/drm/radeon/r100.c                   |  392 +
 b/drivers/gpu/drm/radeon/r100_track.h             |   19 
 b/drivers/gpu/drm/radeon/r200.c                   |   17 
 b/drivers/gpu/drm/radeon/r300.c                   |  120 
 b/drivers/gpu/drm/radeon/r300_cmdbuf.c            |    6 
 b/drivers/gpu/drm/radeon/r300_reg.h               |    1 
 b/drivers/gpu/drm/radeon/r420.c                   |   73 
 b/drivers/gpu/drm/radeon/r500_reg.h               |    2 
 b/drivers/gpu/drm/radeon/r520.c                   |   12 
 b/drivers/gpu/drm/radeon/r600.c                   | 1279 ++++
 b/drivers/gpu/drm/radeon/r600_audio.c             |  266 
 b/drivers/gpu/drm/radeon/r600_blit_kms.c          |   55 
 b/drivers/gpu/drm/radeon/r600_blit_shaders.c      |   10 
 b/drivers/gpu/drm/radeon/r600_cs.c                |   87 
 b/drivers/gpu/drm/radeon/r600_hdmi.c              |  506 +
 b/drivers/gpu/drm/radeon/r600_reg.h               |   74 
 b/drivers/gpu/drm/radeon/r600d.h                  |  237 
 b/drivers/gpu/drm/radeon/radeon.h                 |  222 
 b/drivers/gpu/drm/radeon/radeon_agp.c             |   17 
 b/drivers/gpu/drm/radeon/radeon_asic.h            |   76 
 b/drivers/gpu/drm/radeon/radeon_atombios.c        |  477 +
 b/drivers/gpu/drm/radeon/radeon_benchmark.c       |   91 
 b/drivers/gpu/drm/radeon/radeon_bios.c            |    6 
 b/drivers/gpu/drm/radeon/radeon_clocks.c          |   29 
 b/drivers/gpu/drm/radeon/radeon_combios.c         |  800 ++
 b/drivers/gpu/drm/radeon/radeon_connectors.c      |  243 
 b/drivers/gpu/drm/radeon/radeon_cp.c              |   46 
 b/drivers/gpu/drm/radeon/radeon_cs.c              |   16 
 b/drivers/gpu/drm/radeon/radeon_device.c          |  149 
 b/drivers/gpu/drm/radeon/radeon_display.c         |  221 
 b/drivers/gpu/drm/radeon/radeon_drv.c             |   12 
 b/drivers/gpu/drm/radeon/radeon_drv.h             |    1 
 b/drivers/gpu/drm/radeon/radeon_encoders.c        |  399 -
 b/drivers/gpu/drm/radeon/radeon_fb.c              |   74 
 b/drivers/gpu/drm/radeon/radeon_fence.c           |   65 
 b/drivers/gpu/drm/radeon/radeon_fixed.h           |   17 
 b/drivers/gpu/drm/radeon/radeon_gart.c            |   42 
 b/drivers/gpu/drm/radeon/radeon_gem.c             |  111 
 b/drivers/gpu/drm/radeon/radeon_i2c.c             |  182 
 b/drivers/gpu/drm/radeon/radeon_ioc32.c           |   38 
 b/drivers/gpu/drm/radeon/radeon_irq.c             |   10 
 b/drivers/gpu/drm/radeon/radeon_irq_kms.c         |   71 
 b/drivers/gpu/drm/radeon/radeon_kms.c             |   42 
 b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c     |  202 
 b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c |  148 
 b/drivers/gpu/drm/radeon/radeon_legacy_tv.c       |   14 
 b/drivers/gpu/drm/radeon/radeon_mode.h            |  216 
 b/drivers/gpu/drm/radeon/radeon_object.c          |  578 --
 b/drivers/gpu/drm/radeon/radeon_object.h          |  151 
 b/drivers/gpu/drm/radeon/radeon_pm.c              |    9 
 b/drivers/gpu/drm/radeon/radeon_reg.h             |   60 
 b/drivers/gpu/drm/radeon/radeon_ring.c            |  172 
 b/drivers/gpu/drm/radeon/radeon_state.c           |    2 
 b/drivers/gpu/drm/radeon/radeon_test.c            |   55 
 b/drivers/gpu/drm/radeon/radeon_ttm.c             |  113 
 b/drivers/gpu/drm/radeon/reg_srcs/r200            |    2 
 b/drivers/gpu/drm/radeon/reg_srcs/r420            |  795 ++
 b/drivers/gpu/drm/radeon/reg_srcs/rs600           |   68 
 b/drivers/gpu/drm/radeon/reg_srcs/rv515           |    6 
 b/drivers/gpu/drm/radeon/rs400.c                  |   49 
 b/drivers/gpu/drm/radeon/rs600.c                  |  235 
 b/drivers/gpu/drm/radeon/rs600d.h                 |  112 
 b/drivers/gpu/drm/radeon/rs690.c                  |   42 
 b/drivers/gpu/drm/radeon/rv515.c                  |   29 
 b/drivers/gpu/drm/radeon/rv770.c                  |  128 
 b/drivers/gpu/drm/savage/savage_drv.c             |    2 
 b/drivers/gpu/drm/sis/sis_drv.c                   |    2 
 b/drivers/gpu/drm/tdfx/tdfx_drv.c                 |    2 
 b/drivers/gpu/drm/ttm/Makefile                    |    3 
 b/drivers/gpu/drm/ttm/ttm_bo.c                    |  747 +-
 b/drivers/gpu/drm/ttm/ttm_bo_util.c               |   12 
 b/drivers/gpu/drm/ttm/ttm_bo_vm.c                 |    9 
 b/drivers/gpu/drm/ttm/ttm_execbuf_util.c          |  117 
 b/drivers/gpu/drm/ttm/ttm_lock.c                  |  313 +
 b/drivers/gpu/drm/ttm/ttm_memory.c                |   16 
 b/drivers/gpu/drm/ttm/ttm_object.c                |  452 +
 b/drivers/gpu/drm/ttm/ttm_tt.c                    |   24 
 b/drivers/gpu/drm/via/via_drv.c                   |    2 
 b/drivers/gpu/drm/vmwgfx/Kconfig                  |   13 
 b/drivers/gpu/drm/vmwgfx/Makefile                 |    9 
 b/drivers/gpu/drm/vmwgfx/svga3d_reg.h             | 1793 ++++++
 b/drivers/gpu/drm/vmwgfx/svga_escape.h            |   89 
 b/drivers/gpu/drm/vmwgfx/svga_overlay.h           |  201 
 b/drivers/gpu/drm/vmwgfx/svga_reg.h               | 1346 ++++
 b/drivers/gpu/drm/vmwgfx/svga_types.h             |   45 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c          |  252 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c             |  800 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h             |  521 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c         |  640 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c              |  734 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c            |  538 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c             |  213 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c           |   87 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c             |  286 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c             |  880 +++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h             |  102 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c             |  516 +
 b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c         |  625 ++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_reg.h             |   57 
 b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c        | 1187 ++++
 b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c        |   99 
 b/drivers/staging/Kconfig                         |    2 
 b/fs/ubifs/gc.c                                   |   96 
 b/include/drm/Kbuild                              |    2 
 b/include/drm/drm.h                               |   65 
 b/include/drm/drmP.h                              |   91 
 b/include/drm/drm_crtc.h                          |   49 
 b/include/drm/drm_dp_helper.h                     |  180 
 b/include/drm/drm_edid.h                          |   11 
 b/include/drm/drm_mm.h                            |   35 
 b/include/drm/drm_mode.h                          |   83 
 b/include/drm/drm_os_linux.h                      |    2 
 b/include/drm/i2c/ch7006.h                        |   86 
 b/include/drm/i915_drm.h                          |  132 
 b/include/drm/mga_drm.h                           |    2 
 b/include/drm/nouveau_drm.h                       |  221 
 b/include/drm/radeon_drm.h                        |    2 
 b/include/drm/ttm/ttm_bo_api.h                    |  115 
 b/include/drm/ttm/ttm_bo_driver.h                 |   42 
 b/include/drm/ttm/ttm_execbuf_util.h              |  107 
 b/include/drm/ttm/ttm_lock.h                      |  247 
 b/include/drm/ttm/ttm_object.h                    |  271 
 b/include/drm/via_drm.h                           |    2 
 b/include/drm/vmwgfx_drm.h                        |  588 ++
 b/include/linux/list_sort.h                       |   11 
 b/lib/Makefile                                    |    2 
 b/lib/list_sort.c                                 |  102 
 drivers/gpu/drm/i915/intel_dp.h                   |  144 
 drivers/gpu/drm/i915/intel_dp_i2c.c               |  273 
 274 files changed, 66855 insertions(+), 5102 deletions(-)

Index: drm-upgrayedd.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/drm-upgrayedd.patch,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.4 -r1.1.2.5
--- drm-upgrayedd.patch	10 Apr 2010 16:42:00 -0000	1.1.2.4
+++ drm-upgrayedd.patch	12 Jul 2010 21:28:21 -0000	1.1.2.5
@@ -11499,8 +11499,8 @@ index 0e0e4b4..b1d0acb 100644
  };
  
 @@ -622,7 +650,7 @@ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect
- {
- 	enum drm_connector_status status = connector_status_connected;
+ 	if (IS_I8XX(dev))
+ 		return connector_status_connected;
  
 -	if (!acpi_lid_open() && !dmi_check_system(bad_lid_status))
 +	if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())

hdpvr-ir-enable.patch:
 Makefile     |    4 --
 hdpvr-core.c |   12 ++-----
 hdpvr-i2c.c  |   89 +++++++++++++++++++++++++++++++++++++++++------------------
 hdpvr.h      |    2 -
 4 files changed, 68 insertions(+), 39 deletions(-)

Index: hdpvr-ir-enable.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/hdpvr-ir-enable.patch,v
retrieving revision 1.2.2.6
retrieving revision 1.2.2.7
diff -u -p -r1.2.2.6 -r1.2.2.7
--- hdpvr-ir-enable.patch	18 May 2010 21:58:02 -0000	1.2.2.6
+++ hdpvr-ir-enable.patch	12 Jul 2010 21:28:21 -0000	1.2.2.7
@@ -1,28 +1,7 @@
-From http://hg.jannau.net/hdpvr/, pending v4l-dvb pull request
-
----
- drivers/media/video/hdpvr/Makefile     |    4 +--
- drivers/media/video/hdpvr/hdpvr-core.c |    7 ++---
- drivers/media/video/hdpvr/hdpvr-i2c.c  |   40 ++++++++++++++++++++++++++-----
- 3 files changed, 37 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/media/video/hdpvr/Makefile b/drivers/media/video/hdpvr/Makefile
-index e0230fc..79ad2e1 100644
---- a/drivers/media/video/hdpvr/Makefile
-+++ b/drivers/media/video/hdpvr/Makefile
-@@ -1,6 +1,4 @@
--hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-video.o
--
--hdpvr-$(CONFIG_I2C) += hdpvr-i2c.o
-+hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-i2c.o hdpvr-video.o
- 
- obj-$(CONFIG_VIDEO_HDPVR) += hdpvr.o
- 
-diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
-index 188bd5a..779f907 100644
---- a/drivers/media/video/hdpvr/hdpvr-core.c
-+++ b/drivers/media/video/hdpvr/hdpvr-core.c
-@@ -362,9 +362,8 @@ static int hdpvr_probe(struct usb_interface *interface,
+diff -Naurp a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
+--- a/drivers/media/video/hdpvr/hdpvr-core.c	2010-07-06 17:36:44.000000000 -0400
++++ b/drivers/media/video/hdpvr/hdpvr-core.c	2010-07-06 17:38:13.000000000 -0400
+@@ -363,9 +363,8 @@ static int hdpvr_probe(struct usb_interf
  		goto error;
  	}
  
@@ -34,19 +13,36 @@ index 188bd5a..779f907 100644
  	if (retval < 0) {
  		v4l2_err(&dev->v4l2_dev, "registering i2c adapter failed\n");
  		goto error;
-@@ -414,7 +413,7 @@ static void hdpvr_disconnect(struct usb_interface *interface)
+@@ -411,12 +410,9 @@ static void hdpvr_disconnect(struct usb_
  	mutex_unlock(&dev->io_mutex);
  
  	/* deregister I2C adapter */
 -#ifdef CONFIG_I2C
 +#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
  	mutex_lock(&dev->i2c_mutex);
- 	if (dev->i2c_adapter)
- 		i2c_del_adapter(dev->i2c_adapter);
-diff --git a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
-index c4b5d15..e0ae619 100644
---- a/drivers/media/video/hdpvr/hdpvr-i2c.c
-+++ b/drivers/media/video/hdpvr/hdpvr-i2c.c
+-	if (dev->i2c_adapter)
+-		i2c_del_adapter(dev->i2c_adapter);
+-	kfree(dev->i2c_adapter);
+-	dev->i2c_adapter = NULL;
++	i2c_del_adapter(&dev->i2c_adapter);
+ 	mutex_unlock(&dev->i2c_mutex);
+ #endif /* CONFIG_I2C */
+ 
+diff -Naurp a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h
+--- a/drivers/media/video/hdpvr/hdpvr.h	2010-02-24 13:52:17.000000000 -0500
++++ b/drivers/media/video/hdpvr/hdpvr.h	2010-07-06 17:42:20.000000000 -0400
+@@ -101,7 +101,7 @@ struct hdpvr_device {
+ 	struct work_struct	worker;
+ 
+ 	/* I2C adapter */
+-	struct i2c_adapter	*i2c_adapter;
++	struct i2c_adapter	i2c_adapter;
+ 	/* I2C lock */
+ 	struct mutex		i2c_mutex;
+ 
+diff -Naurp a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
+--- a/drivers/media/video/hdpvr/hdpvr-i2c.c	2010-07-06 17:36:51.000000000 -0400
++++ b/drivers/media/video/hdpvr/hdpvr-i2c.c	2010-07-06 17:45:50.000000000 -0400
 @@ -10,6 +10,8 @@
   *
   */
@@ -56,8 +52,15 @@ index c4b5d15..e0ae619 100644
  #include <linux/i2c.h>
  
  #include "hdpvr.h"
-@@ -22,7 +24,7 @@
- #define REQTYPE_I2C_WRITE_STATT	0xd0
+@@ -19,10 +21,13 @@
+ 
+ #define REQTYPE_I2C_READ	0xb1
+ #define REQTYPE_I2C_WRITE	0xb0
+-#define REQTYPE_I2C_WRITE_STATT	0xd0
++#define REQTYPE_I2C_WRITE_STAT	0xd0
++
++#define HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR	0x70
++#define HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR	0x71
  
  static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
 -			  char *data, int len)
@@ -65,7 +68,7 @@ index c4b5d15..e0ae619 100644
  {
  	int ret;
  	char *buf = kmalloc(len, GFP_KERNEL);
-@@ -32,7 +34,7 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
+@@ -32,7 +37,7 @@ static int hdpvr_i2c_read(struct hdpvr_d
  	ret = usb_control_msg(dev->udev,
  			      usb_rcvctrlpipe(dev->udev, 0),
  			      REQTYPE_I2C_READ, CTRL_READ_REQUEST,
@@ -74,7 +77,7 @@ index c4b5d15..e0ae619 100644
  
  	if (ret == len) {
  		memcpy(data, buf, len);
-@@ -46,7 +48,7 @@ static int hdpvr_i2c_read(struct hdpvr_device *dev, unsigned char addr,
+@@ -46,7 +51,7 @@ static int hdpvr_i2c_read(struct hdpvr_d
  }
  
  static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
@@ -83,7 +86,7 @@ index c4b5d15..e0ae619 100644
  {
  	int ret;
  	char *buf = kmalloc(len, GFP_KERNEL);
-@@ -57,7 +59,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
+@@ -57,17 +62,17 @@ static int hdpvr_i2c_write(struct hdpvr_
  	ret = usb_control_msg(dev->udev,
  			      usb_sndctrlpipe(dev->udev, 0),
  			      REQTYPE_I2C_WRITE, CTRL_WRITE_REQUEST,
@@ -92,8 +95,11 @@ index c4b5d15..e0ae619 100644
  
  	if (ret < 0)
  		goto error;
-@@ -67,7 +69,7 @@ static int hdpvr_i2c_write(struct hdpvr_device *dev, unsigned char addr,
- 			      REQTYPE_I2C_WRITE_STATT, CTRL_READ_REQUEST,
+ 
+ 	ret = usb_control_msg(dev->udev,
+ 			      usb_rcvctrlpipe(dev->udev, 0),
+-			      REQTYPE_I2C_WRITE_STATT, CTRL_READ_REQUEST,
++			      REQTYPE_I2C_WRITE_STAT, CTRL_READ_REQUEST,
  			      0, 0, buf, 2, 1000);
  
 -	if (ret == 2)
@@ -101,7 +107,7 @@ index c4b5d15..e0ae619 100644
  		ret = 0;
  	else if (ret >= 0)
  		ret = -EIO;
-@@ -93,10 +95,10 @@ static int hdpvr_transfer(struct i2c_adapter *i2c_adapter, struct i2c_msg *msgs,
+@@ -93,10 +98,10 @@ static int hdpvr_transfer(struct i2c_ada
  
  		if (msgs[i].flags & I2C_M_RD)
  			retval = hdpvr_i2c_read(dev, addr, msgs[i].buf,
@@ -114,10 +120,24 @@ index c4b5d15..e0ae619 100644
  	}
  
  	mutex_unlock(&dev->i2c_mutex);
-@@ -114,6 +116,26 @@ static struct i2c_algorithm hdpvr_algo = {
+@@ -114,31 +119,61 @@ static struct i2c_algorithm hdpvr_algo =
  	.functionality = hdpvr_functionality,
  };
  
++static struct i2c_adapter hdpvr_i2c_adap_template = {
++	.name		= "Hauppauge HD PVR I2C",
++	.owner		= THIS_MODULE,
++	.id		= I2C_HW_B_HDPVR,
++	.algo		= &hdpvr_algo,
++	.algo_data	= NULL,
++	.class		= I2C_CLASS_TV_ANALOG,
++};
++
++static struct i2c_board_info hdpvr_i2c_board_info = {
++	I2C_BOARD_INFO("ir_tx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_TX_I2C_ADDR),
++	I2C_BOARD_INFO("ir_rx_z8f0811_haup", HDPVR_HW_Z8F0811_IR_RX_I2C_ADDR),
++};
++
 +static int hdpvr_activate_ir(struct hdpvr_device *dev)
 +{
 +	char buffer[8];
@@ -140,19 +160,54 @@ index c4b5d15..e0ae619 100644
 +
  int hdpvr_register_i2c_adapter(struct hdpvr_device *dev)
  {
- 	struct i2c_adapter *i2c_adap;
-@@ -123,6 +145,8 @@ int hdpvr_register_i2c_adapter(struct hdpvr_device *dev)
- 	if (i2c_adap == NULL)
- 		goto error;
+-	struct i2c_adapter *i2c_adap;
+ 	int retval = -ENOMEM;
  
+-	i2c_adap = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
+-	if (i2c_adap == NULL)
 +	hdpvr_activate_ir(dev);
 +
- 	strlcpy(i2c_adap->name, "Hauppauge HD PVR I2C",
- 		sizeof(i2c_adap->name));
- 	i2c_adap->algo  = &hdpvr_algo;
-@@ -143,3 +167,5 @@ int hdpvr_register_i2c_adapter(struct hdpvr_device *dev)
++	memcpy(&dev->i2c_adapter, &hdpvr_i2c_adap_template,
++	       sizeof(struct i2c_adapter));
++	dev->i2c_adapter.dev.parent = &dev->udev->dev;
++
++	i2c_set_adapdata(&dev->i2c_adapter, dev);
++
++	retval = i2c_add_adapter(&dev->i2c_adapter);
++
++	if (retval)
+ 		goto error;
+ 
+-	strlcpy(i2c_adap->name, "Hauppauge HD PVR I2C",
+-		sizeof(i2c_adap->name));
+-	i2c_adap->algo  = &hdpvr_algo;
+-	i2c_adap->class = I2C_CLASS_TV_ANALOG;
+-	i2c_adap->owner = THIS_MODULE;
+-	i2c_adap->dev.parent = &dev->udev->dev;
+-
+-	i2c_set_adapdata(i2c_adap, dev);
+-
+-	retval = i2c_add_adapter(i2c_adap);
+-
+-	if (!retval)
+-		dev->i2c_adapter = i2c_adap;
+-	else
+-		kfree(i2c_adap);
++	i2c_new_device(&dev->i2c_adapter, &hdpvr_i2c_board_info);
+ 
  error:
  	return retval;
  }
 +
 +#endif /* CONFIG_I2C */
+diff -Naurp a/drivers/media/video/hdpvr/Makefile b/drivers/media/video/hdpvr/Makefile
+--- a/drivers/media/video/hdpvr/Makefile	2010-07-06 17:36:38.000000000 -0400
++++ b/drivers/media/video/hdpvr/Makefile	2010-07-06 17:35:17.000000000 -0400
+@@ -1,6 +1,4 @@
+-hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-video.o
+-
+-hdpvr-$(CONFIG_I2C) += hdpvr-i2c.o
++hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-i2c.o hdpvr-video.o
+ 
+ obj-$(CONFIG_VIDEO_HDPVR) += hdpvr.o
+ 

iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch:
 iwl-1000.c     |    2 +
 iwl-3945.c     |    2 +
 iwl-4965.c     |    1 
 iwl-5000.c     |    8 ++++
 iwl-6000.c     |    6 +++
 iwl-agn.c      |   16 +++++++++
 iwl-core.c     |   93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 iwl-core.h     |    7 ++++
 iwl-dev.h      |   10 ++++++
 iwl-tx.c       |    2 +
 iwl3945-base.c |   16 +++++++++
 11 files changed, 163 insertions(+)

Index: iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.1 -r1.1.2.2
--- iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch	28 Apr 2010 20:04:56 -0000	1.1.2.1
+++ iwlwifi_-Recover-TX-flow-stall-due-to-stuck-queue.patch	12 Jul 2010 21:28:22 -0000	1.1.2.2
@@ -142,8 +142,8 @@ diff -up linux-2.6.32.noarch/drivers/net
  
  struct iwl_cfg iwl5100_abg_cfg = {
 @@ -1709,6 +1713,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
+ 	.valid_rx_ant = ANT_AB,
  	.need_pll_cfg = true,
- 	.ht_greenfield_support = true,
  	.plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
 +	.monitor_recover_period = IWL_MONITORING_PERIOD,
  };

iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch:
 iwl-1000.c    |    1 +
 iwl-3945.c    |    2 ++
 iwl-4965.c    |    1 +
 iwl-5000.c    |    6 ++++++
 iwl-6000.c    |    5 +++++
 iwl-core.h    |    3 +++
 iwl-debug.h   |    1 +
 iwl-debugfs.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 iwl-dev.h     |   12 ++++++++++++
 iwl-rx.c      |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 10 files changed, 129 insertions(+)

Index: iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.1 -r1.1.2.2
--- iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch	28 Apr 2010 20:04:56 -0000	1.1.2.1
+++ iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch	12 Jul 2010 21:28:22 -0000	1.1.2.2
@@ -82,9 +82,9 @@ diff -up linux-2.6.32.noarch/drivers/net
  
  struct iwl_cfg iwl5100_abg_cfg = {
 @@ -1706,6 +1708,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
+ 	.valid_tx_ant = ANT_B,
  	.valid_rx_ant = ANT_AB,
  	.need_pll_cfg = true,
- 	.ht_greenfield_support = true,
 +	.plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
  };
  


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.107
retrieving revision 1.1294.2.108
diff -u -p -r1.1294.2.107 -r1.1294.2.108
--- kernel.spec	16 Jun 2010 19:13:53 -0000	1.1294.2.107
+++ kernel.spec	12 Jul 2010 21:28:22 -0000	1.1294.2.108
@@ -61,7 +61,7 @@ Summary: The Linux kernel
 %if 0%{?released_kernel}
 
 # Do we have a -stable update to apply?
-%define stable_update 14
+%define stable_update 16
 # Is it a -stable RC?
 %define stable_rc 0
 # Set rpm version accordingly
@@ -694,10 +694,11 @@ Patch610: hda_intel-prealloc-4mb-dmabuff
 
 Patch670: linux-2.6-ata-quirk.patch
 
-Patch680: linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch
-
-Patch700: linux-2.6.31-nx-data.patch
-Patch701: linux-2.6.31-modules-ro-nx.patch
+Patch701: sky2-optima-add-register-definitions.patch
+Patch702: sky2-optima-support.patch
+Patch703: sky2-optima-fix-tcp-offload.patch
+Patch704: sky2-optima-print-chip-name.patch
+Patch705: sky2-optima-add-missing-write-bits.patch
 
 Patch800: linux-2.6-crash-driver.patch
 
@@ -715,7 +716,6 @@ Patch1700: linux-2.6-x86-64-fbdev-primar
 
 # nouveau + drm fixes
 Patch1810: drm-upgrayedd.patch
-Patch1811: drm-upgrayed-fixes.patch
 Patch1813: drm-radeon-pm.patch
 #Patch1814: drm-nouveau.patch
 Patch1818: drm-i915-resume-force-mode.patch
@@ -767,8 +767,6 @@ Patch3051: linux-2.6-nfs4-callback-hidde
 # btrfs
 Patch3100: linux-2.6-btrfs-fix-acl.patch
 Patch3101: btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch
-Patch3102: btrfs-should-add-permission-check-for-setfacl.patch
-
 
 # XFS
 
@@ -805,7 +803,6 @@ Patch12380: ssb_check_for_sprom.patch
 Patch12391: iwlwifi-reset-card-during-probe.patch
 
 # patches from Intel to address intermittent firmware failures with iwlagn
-Patch12401: iwlwifi_-check-for-aggregation-frame-and-queue.patch
 Patch12404: iwlwifi_-add-function-to-reset_tune-radio-if-needed.patch
 Patch12405: iwlwifi_-Logic-to-control-how-frequent-radio-should-be-reset-if-needed.patch
 Patch12406: iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch
@@ -829,23 +826,20 @@ Patch12911: iwlwifi-fix-internal-scan-ra
 # iwlwifi: recover_from_tx_stall
 Patch12912: iwlwifi-recover_from_tx_stall.patch
 
-# iwlwifi: recalculate average tpt if not current
-Patch12920: iwlwifi-recalculate-average-tpt-if-not-current.patch
-
 Patch12921: iwlwifi-manage-QoS-by-mac-stack.patch
 Patch12922: mac80211-do-not-wipe-out-old-supported-rates.patch
 Patch12923: mac80211-explicitly-disable-enable-QoS.patch
 Patch12924: mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch
 
-# CVE-2010-1437
-Patch13000: keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch
-
-# iwlwifi: update supported PCI_ID list for 5xx0 series
-Patch13010: iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch
-
 # iwlwifi: cancel scan watchdog in iwl_bg_abort_scan
 Patch13020: iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch
 
+# l2tp: fix oops in pppol2tp_xmit (#607054)
+Patch13030: l2tp-fix-oops-in-pppol2tp_xmit.patch
+
+Patch14000: sched-fix-over-scheduling-bug.patch
+Patch14010: ethtool-fix-buffer-overflow.patch
+
 Patch19997: xen.pvops.pre.patch
 Patch19998: xen.pvops.patch
 Patch19999: xen.pvops.post.patch
@@ -1319,10 +1313,8 @@ ApplyPatch linux-2.6-execshield.patch
 
 # btrfs
 ApplyPatch linux-2.6-btrfs-fix-acl.patch
-ApplyPatch btrfs-should-add-permission-check-for-setfacl.patch
 ApplyPatch btrfs-prohibit-a-operation-of-changing-acls-mask-when-noacl-mount-option-is-used.patch
 
-
 # eCryptfs
 
 # NFSv4
@@ -1376,6 +1368,11 @@ ApplyPatch linux-2.6-defaults-alsa-hda-b
 ApplyPatch hda_intel-prealloc-4mb-dmabuffer.patch
 
 # Networking
+ApplyPatch sky2-optima-add-register-definitions.patch
+ApplyPatch sky2-optima-support.patch
+ApplyPatch sky2-optima-fix-tcp-offload.patch
+ApplyPatch sky2-optima-print-chip-name.patch
+ApplyPatch sky2-optima-add-missing-write-bits.patch
 
 # Misc fixes
 # The input layer spews crap no-one cares about.
@@ -1417,14 +1414,6 @@ ApplyPatch linux-2.6-sparc-selinux-mprot
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
 
-# Report meaningful values for MCS rates through wireless extensions
-ApplyPatch linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch
-
-# Mark kernel data as NX
-#ApplyPatch linux-2.6.31-nx-data.patch
-# Apply NX/RO to modules
-#ApplyPatch linux-2.6.31-modules-ro-nx.patch
-
 # /dev/crash driver.
 ApplyPatch linux-2.6-crash-driver.patch
 
@@ -1454,7 +1443,6 @@ ApplyPatch linux-2.6-phylib-autoload.pat
 ApplyPatch linux-2.6-x86-64-fbdev-primary.patch
 # Nouveau DRM + drm fixes
 ApplyPatch drm-upgrayedd.patch
-ApplyPatch drm-upgrayed-fixes.patch
 #ApplyPatch drm-intel-big-hammer.patch
 #ApplyPatch drm-intel-no-tv-hotplug.patch
 ApplyOptionalPatch drm-intel-next.patch
@@ -1507,7 +1495,6 @@ ApplyPatch ssb_check_for_sprom.patch
 ApplyPatch iwlwifi-reset-card-during-probe.patch
 
 # patches from Intel to address intermittent firmware failures with iwlagn
-ApplyPatch iwlwifi_-check-for-aggregation-frame-and-queue.patch
 ApplyPatch iwlwifi_-add-function-to-reset_tune-radio-if-needed.patch
 ApplyPatch iwlwifi_-Logic-to-control-how-frequent-radio-should-be-reset-if-needed.patch
 ApplyPatch iwlwifi_-Tune-radio-to-prevent-unexpected-behavior.patch
@@ -1531,24 +1518,24 @@ ApplyPatch iwlwifi-fix-internal-scan-rac
 # iwlwifi: recover_from_tx_stall
 ApplyPatch iwlwifi-recover_from_tx_stall.patch
 
-# iwlwifi: recalculate average tpt if not current
-ApplyPatch iwlwifi-recalculate-average-tpt-if-not-current.patch
-
 # mac80211/iwlwifi fix connections to some APs (rhbz#558002)
 ApplyPatch mac80211-explicitly-disable-enable-QoS.patch
 ApplyPatch iwlwifi-manage-QoS-by-mac-stack.patch
 ApplyPatch mac80211-do-not-wipe-out-old-supported-rates.patch
 ApplyPatch mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch
 
-# CVE-2010-1437
-ApplyPatch keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch
-
-# iwlwifi: update supported PCI_ID list for 5xx0 series
-ApplyPatch iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch
-
 # iwlwifi: cancel scan watchdog in iwl_bg_abort_scan
 ApplyPatch iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch
 
+# l2tp: fix oops in pppol2tp_xmit (#607054)
+ApplyPatch l2tp-fix-oops-in-pppol2tp_xmit.patch
+
+# fix performance problem with CGROUPS
+ApplyPatch sched-fix-over-scheduling-bug.patch
+
+# CVE-2010-2478
+ApplyPatch ethtool-fix-buffer-overflow.patch
+
 ApplyPatch xen.pvops.pre.patch
 ApplyPatch xen.pvops.patch
 ApplyPatch xen.pvops.post.patch
@@ -2201,12 +2188,43 @@ fi
 %kernel_variant_files %{with_pae_debug} PAEdebug
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
-# plz don't put in a version string unless you're going to tag
-# and build.
+%changelog
+* Wed Jul 12 2010 Michael Young <m.a.young at durham.ac.uk>
+- update pvops
 
+* Wed Jul 07 2010 Jarod Wilson <jarod at redhat.com> 2.6.32.16-141
+- Really make hdpvr i2c IR part register this time, so something can
+  actually be bound to it (like, say, lirc_zilog)
+
+* Tue Jul 06 2010 Chuck Ebbert <cebbert at redhat.com> 2.6.32.16-140
+- ethtool-fix-buffer-overflow.patch: ethtool buffer overflow (CVE-2010-2478)
+- sched-fix-over-scheduling-bug.patch: fix scheduler bug with CGROUPS
 
+* Tue Jul 06 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.16-139
+- Linux 2.6.32.16
+
+* Fri Jul 02 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.16-138.rc1
+- Linux 2.6.32.16-rc1
+- Drop patches merged upstream:
+    btrfs-should-add-permission-check-for-setfacl.patch
+    linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch
+    drm-upgrayed-fixes.patch
+    iwlwifi_-check-for-aggregation-frame-and-queue.patch
+    iwlwifi-recalculate-average-tpt-if-not-current.patch
+    iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch
+    keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch
+- Fix up wireless patches and usb-wwan-update.patch to apply on 2.6.32.16
+
+* Thu Jul 01 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.15-137
+- Linux 2.6.32.15
+
+* Mon Jun 28 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.14-136
+- Drop unused ro-nx patches.
+- Add support for sky2 Optima chip.
+
+* Wed Jun 23 2010 Kyle McMartin <kyle at redhat.com>  2.6.32.14-135
+- l2tp: fix oops in pppol2tp_xmit (rhbz#607054)
 
-%changelog
 * Wed Jun 16 2010 Michael Young <m.a.young at durham.ac.uk>
 - update pvops
 - undo balloning patch as it is upstream in xen

linux-2.6-usb-wwan-update.patch:
 Kconfig    |    4 
 Makefile   |    1 
 option.c   |  648 +----------------------------------------------------------
 qcserial.c |   94 ++++++--
 usb-wwan.h |   66 ++++++
 usb_wwan.c |  665 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 831 insertions(+), 647 deletions(-)

Index: linux-2.6-usb-wwan-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/linux-2.6-usb-wwan-update.patch,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -u -p -r1.2.2.2 -r1.2.2.3
--- linux-2.6-usb-wwan-update.patch	10 Apr 2010 16:42:05 -0000	1.2.2.2
+++ linux-2.6-usb-wwan-update.patch	12 Jul 2010 21:28:22 -0000	1.2.2.3
@@ -116,18 +116,25 @@ diff -up linux-2.6.32.noarch/drivers/usb
  struct option_port_private {
  	/* Input endpoints and buffer for this port */
  	struct urb *in_urbs[N_IN_URB];
-@@ -767,209 +740,21 @@ module_exit(option_exit);
+@@ -767,216 +740,28 @@ module_exit(option_exit);
  static int option_probe(struct usb_serial *serial,
  			const struct usb_device_id *id)
  {
 -	struct option_intf_private *data;
 +	struct usb_wwan_intf_private *data;
+ 
  	/* D-Link DWM 652 still exposes CD-Rom emulation interface in modem mode */
  	if (serial->dev->descriptor.idVendor == DLINK_VENDOR_ID &&
  		serial->dev->descriptor.idProduct == DLINK_PRODUCT_DWM_652 &&
  		serial->interface->cur_altsetting->desc.bInterfaceClass == 0x8)
  		return -ENODEV;
  
+ 	/* Bandrich modem and AT command interface is 0xff */
+ 	if ((serial->dev->descriptor.idVendor == BANDRICH_VENDOR_ID ||
+ 		serial->dev->descriptor.idVendor == PIRELLI_VENDOR_ID) &&
+ 		serial->interface->cur_altsetting->desc.bInterfaceClass != 0xff)
+ 		return -ENODEV;
+ 
 -	data = serial->private = kzalloc(sizeof(struct option_intf_private), GFP_KERNEL);
 +	data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
  	if (!data)


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.976.2.46
retrieving revision 1.976.2.47
diff -u -p -r1.976.2.46 -r1.976.2.47
--- sources	29 May 2010 14:04:52 -0000	1.976.2.46
+++ sources	12 Jul 2010 21:28:24 -0000	1.976.2.47
@@ -1,2 +1,2 @@
 260551284ac224c3a43c4adac7df4879  linux-2.6.32.tar.bz2
-90f0ec928aff643f05a8b98fad54b10c  patch-2.6.32.14.bz2
+744890f9651962ceae7663d44b19df65  patch-2.6.32.16.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.888.2.45
retrieving revision 1.888.2.46
diff -u -p -r1.888.2.45 -r1.888.2.46
--- upstream	29 May 2010 14:04:52 -0000	1.888.2.45
+++ upstream	12 Jul 2010 21:28:24 -0000	1.888.2.46
@@ -1,2 +1,2 @@
 linux-2.6.32.tar.bz2
-patch-2.6.32.14.bz2
+patch-2.6.32.16.bz2

xen.pvops.patch:
 Documentation/x86/x86_64/boot-options.txt       |    6 
 arch/ia64/include/asm/dma-mapping.h             |    2 
 arch/ia64/include/asm/swiotlb.h                 |    2 
 arch/ia64/include/asm/xen/events.h              |    4 
 arch/ia64/kernel/pci-swiotlb.c                  |    4 
 arch/powerpc/include/asm/dma-mapping.h          |    2 
 arch/powerpc/kernel/setup_32.c                  |    2 
 arch/powerpc/kernel/setup_64.c                  |    2 
 arch/x86/Kconfig                                |    4 
 arch/x86/include/asm/amd_iommu.h                |    4 
 arch/x86/include/asm/calgary.h                  |    2 
 arch/x86/include/asm/dma-mapping.h              |    7 
 arch/x86/include/asm/gart.h                     |    9 
 arch/x86/include/asm/hpet.h                     |    2 
 arch/x86/include/asm/hugetlb.h                  |   30 
 arch/x86/include/asm/io.h                       |   15 
 arch/x86/include/asm/io_apic.h                  |    3 
 arch/x86/include/asm/iommu.h                    |    2 
 arch/x86/include/asm/irq_vectors.h              |   14 
 arch/x86/include/asm/microcode.h                |    9 
 arch/x86/include/asm/mmu.h                      |    3 
 arch/x86/include/asm/paravirt.h                 |    7 
 arch/x86/include/asm/paravirt_types.h           |    2 
 arch/x86/include/asm/pci.h                      |    8 
 arch/x86/include/asm/pci_x86.h                  |    2 
 arch/x86/include/asm/pgtable.h                  |    6 
 arch/x86/include/asm/pgtable_64.h               |    2 
 arch/x86/include/asm/processor.h                |    4 
 arch/x86/include/asm/swiotlb.h                  |   11 
 arch/x86/include/asm/syscalls.h                 |    8 
 arch/x86/include/asm/tlbflush.h                 |    6 
 arch/x86/include/asm/x86_init.h                 |   10 
 arch/x86/include/asm/xen/hypercall.h            |   50 
 arch/x86/include/asm/xen/hypervisor.h           |   25 
 arch/x86/include/asm/xen/interface.h            |    8 
 arch/x86/include/asm/xen/interface_32.h         |    5 
 arch/x86/include/asm/xen/interface_64.h         |   13 
 arch/x86/include/asm/xen/iommu.h                |   12 
 arch/x86/include/asm/xen/page.h                 |   16 
 arch/x86/include/asm/xen/pci.h                  |  104 +
 arch/x86/include/asm/xen/swiotlb-xen.h          |   14 
 arch/x86/kernel/Makefile                        |    1 
 arch/x86/kernel/acpi/boot.c                     |   21 
 arch/x86/kernel/acpi/processor.c                |   17 
 arch/x86/kernel/acpi/sleep.c                    |    2 
 arch/x86/kernel/amd_iommu.c                     |   23 
 arch/x86/kernel/amd_iommu_init.c                |   25 
 arch/x86/kernel/aperture_64.c                   |    4 
 arch/x86/kernel/apic/io_apic.c                  |   53 
 arch/x86/kernel/cpu/mtrr/Makefile               |    1 
 arch/x86/kernel/cpu/mtrr/amd.c                  |    6 
 arch/x86/kernel/cpu/mtrr/centaur.c              |    6 
 arch/x86/kernel/cpu/mtrr/cyrix.c                |    6 
 arch/x86/kernel/cpu/mtrr/generic.c              |   13 
 arch/x86/kernel/cpu/mtrr/main.c                 |   20 
 arch/x86/kernel/cpu/mtrr/mtrr.h                 |   11 
 arch/x86/kernel/cpu/mtrr/xen.c                  |  109 +
 arch/x86/kernel/crash.c                         |    1 
 arch/x86/kernel/hpet.c                          |    2 
 arch/x86/kernel/ioport.c                        |   40 
 arch/x86/kernel/ldt.c                           |    3 
 arch/x86/kernel/microcode_core.c                |    6 
 arch/x86/kernel/microcode_xen.c                 |  201 ++
 arch/x86/kernel/paravirt.c                      |    1 
 arch/x86/kernel/pci-calgary_64.c                |   73 
 arch/x86/kernel/pci-dma.c                       |   38 
 arch/x86/kernel/pci-gart_64.c                   |   40 
 arch/x86/kernel/pci-nommu.c                     |   11 
 arch/x86/kernel/pci-swiotlb.c                   |   21 
 arch/x86/kernel/process.c                       |   27 
 arch/x86/kernel/reboot.c                        |    4 
 arch/x86/kernel/setup.c                         |    6 
 arch/x86/kernel/x86_init.c                      |    8 
 arch/x86/mm/Makefile                            |    5 
 arch/x86/mm/gup.c                               |    5 
 arch/x86/mm/pat.c                               |    2 
 arch/x86/mm/pgtable.c                           |   19 
 arch/x86/mm/tlb.c                               |   37 
 arch/x86/pci/Makefile                           |    1 
 arch/x86/pci/common.c                           |   18 
 arch/x86/pci/i386.c                             |    2 
 arch/x86/pci/init.c                             |    6 
 arch/x86/pci/xen.c                              |  154 +
 arch/x86/xen/Kconfig                            |   37 
 arch/x86/xen/Makefile                           |    5 
 arch/x86/xen/apic.c                             |   33 
 arch/x86/xen/enlighten.c                        |  254 +++
 arch/x86/xen/mmu.c                              |  527 ++++++
 arch/x86/xen/pci-swiotlb-xen.c                  |   52 
 arch/x86/xen/pci.c                              |  296 +++
 arch/x86/xen/setup.c                            |  125 +
 arch/x86/xen/smp.c                              |    9 
 arch/x86/xen/time.c                             |   16 
 arch/x86/xen/vga.c                              |   67 
 arch/x86/xen/xen-ops.h                          |   20 
 block/blk-core.c                                |    2 
 drivers/acpi/Makefile                           |    1 
 drivers/acpi/acpi_memhotplug.c                  |   19 
 drivers/acpi/acpica/hwsleep.c                   |   16 
 drivers/acpi/processor_core.c                   |   35 
 drivers/acpi/processor_idle.c                   |   20 
 drivers/acpi/processor_perflib.c                |    4 
 drivers/acpi/processor_xen.c                    |  616 +++++++
 drivers/acpi/sleep.c                            |   19 
 drivers/block/Kconfig                           |    1 
 drivers/block/xen-blkfront.c                    |  346 +++-
 drivers/char/agp/intel-agp.c                    |   23 
 drivers/char/hvc_xen.c                          |  101 -
 drivers/gpu/drm/drm_drv.c                       |    2 
 drivers/gpu/drm/drm_gem.c                       |    2 
 drivers/gpu/drm/drm_scatter.c                   |   67 
 drivers/gpu/drm/ttm/ttm_bo_vm.c                 |    2 
 drivers/input/xen-kbdfront.c                    |    7 
 drivers/net/Kconfig                             |    1 
 drivers/net/xen-netfront.c                      |   11 
 drivers/pci/Kconfig                             |   10 
 drivers/pci/Makefile                            |    4 
 drivers/pci/bus.c                               |    1 
 drivers/pci/dmar.c                              |    7 
 drivers/pci/intel-iommu.c                       |    6 
 drivers/pci/msi.c                               |   17 
 drivers/pci/xen-iommu.c                         |  271 +++
 drivers/pci/xen-pcifront.c                      | 1156 ++++++++++++++
 drivers/video/Kconfig                           |    1 
 drivers/video/broadsheetfb.c                    |    2 
 drivers/video/fb_defio.c                        |    4 
 drivers/video/hecubafb.c                        |    2 
 drivers/video/metronomefb.c                     |    2 
 drivers/video/xen-fbfront.c                     |    9 
 drivers/xen/Kconfig                             |  138 +
 drivers/xen/Makefile                            |   29 
 drivers/xen/acpi.c                              |   23 
 drivers/xen/acpi_processor.c                    |  417 +++++
 drivers/xen/balloon.c                           |  268 ++-
 drivers/xen/biomerge.c                          |   14 
 drivers/xen/blkback/Makefile                    |    4 
 drivers/xen/blkback/blkback-pagemap.c           |  109 +
 drivers/xen/blkback/blkback-pagemap.h           |   36 
 drivers/xen/blkback/blkback.c                   |  675 ++++++++
 drivers/xen/blkback/common.h                    |  143 +
 drivers/xen/blkback/interface.c                 |  186 ++
 drivers/xen/blkback/vbd.c                       |  161 ++
 drivers/xen/blkback/xenbus.c                    |  546 +++++++
 drivers/xen/blktap/Makefile                     |    3 
 drivers/xen/blktap/blktap.h                     |  231 ++
 drivers/xen/blktap/control.c                    |  266 +++
 drivers/xen/blktap/device.c                     |  931 +++++++++++
 drivers/xen/blktap/request.c                    |  295 +++
 drivers/xen/blktap/ring.c                       |  477 ++++++
 drivers/xen/blktap/sysfs.c                      |  312 ++++
 drivers/xen/cpu_hotplug.c                       |    1 
 drivers/xen/events.c                            |  529 ++++++
 drivers/xen/evtchn.c                            |   96 -
 drivers/xen/features.c                          |    2 
 drivers/xen/gntdev.c                            |  645 ++++++++
 drivers/xen/grant-table.c                       |  176 ++
 drivers/xen/manage.c                            |  103 +
 drivers/xen/mce.c                               |  216 ++
 drivers/xen/netback/Makefile                    |    3 
 drivers/xen/netback/common.h                    |  326 ++++
 drivers/xen/netback/interface.c                 |  437 +++++
 drivers/xen/netback/netback.c                   | 1869 ++++++++++++++++++++++++
 drivers/xen/netback/xenbus.c                    |  528 ++++++
 drivers/xen/pci.c                               |  124 +
 drivers/xen/pciback/Makefile                    |   17 
 drivers/xen/pciback/conf_space.c                |  435 +++++
 drivers/xen/pciback/conf_space.h                |  126 +
 drivers/xen/pciback/conf_space_capability.c     |   66 
 drivers/xen/pciback/conf_space_capability.h     |   26 
 drivers/xen/pciback/conf_space_capability_msi.c |  110 +
 drivers/xen/pciback/conf_space_capability_pm.c  |  113 +
 drivers/xen/pciback/conf_space_capability_vpd.c |   40 
 drivers/xen/pciback/conf_space_header.c         |  385 ++++
 drivers/xen/pciback/conf_space_quirks.c         |  140 +
 drivers/xen/pciback/conf_space_quirks.h         |   35 
 drivers/xen/pciback/controller.c                |  442 +++++
 drivers/xen/pciback/passthrough.c               |  178 ++
 drivers/xen/pciback/pci_stub.c                  | 1370 +++++++++++++++++
 drivers/xen/pciback/pciback.h                   |  142 +
 drivers/xen/pciback/pciback_ops.c               |  242 +++
 drivers/xen/pciback/slot.c                      |  191 ++
 drivers/xen/pciback/vpci.c                      |  244 +++
 drivers/xen/pciback/xenbus.c                    |  722 +++++++++
 drivers/xen/pcpu.c                              |  420 +++++
 drivers/xen/platform-pci.c                      |  259 +++
 drivers/xen/sys-hypervisor.c                    |    1 
 drivers/xen/xen_acpi_memhotplug.c               |  209 ++
 drivers/xen/xenbus/Makefile                     |    5 
 drivers/xen/xenbus/xenbus_client.c              |   92 -
 drivers/xen/xenbus/xenbus_probe.c               |  409 +----
 drivers/xen/xenbus/xenbus_probe.h               |   29 
 drivers/xen/xenbus/xenbus_probe_backend.c       |  293 +++
 drivers/xen/xenbus/xenbus_probe_frontend.c      |  314 ++++
 drivers/xen/xenbus/xenbus_xs.c                  |   57 
 drivers/xen/xenfs/Makefile                      |    3 
 drivers/xen/xenfs/privcmd.c                     |  404 +++++
 drivers/xen/xenfs/super.c                       |  100 +
 drivers/xen/xenfs/xenfs.h                       |    3 
 drivers/xen/xenfs/xenstored.c                   |   67 
 include/acpi/acpi_drivers.h                     |   21 
 include/acpi/processor.h                        |   22 
 include/asm-generic/pci.h                       |    2 
 include/drm/drmP.h                              |    2 
 include/linux/bootmem.h                         |    1 
 include/linux/dmar.h                            |   15 
 include/linux/fb.h                              |    1 
 include/linux/interrupt.h                       |    1 
 include/linux/mm.h                              |   11 
 include/linux/page-flags.h                      |   20 
 include/linux/swiotlb.h                         |  115 +
 include/linux/vmalloc.h                         |    2 
 include/xen/Kbuild                              |    1 
 include/xen/acpi.h                              |  106 +
 include/xen/balloon.h                           |    8 
 include/xen/blkif.h                             |  123 +
 include/xen/events.h                            |   40 
 include/xen/gntdev.h                            |  119 +
 include/xen/grant_table.h                       |   44 
 include/xen/hvm.h                               |   32 
 include/xen/interface/features.h                |    3 
 include/xen/interface/grant_table.h             |   23 
 include/xen/interface/hvm/hvm_op.h              |   72 
 include/xen/interface/hvm/params.h              |  112 +
 include/xen/interface/io/pciif.h                |  124 +
 include/xen/interface/io/ring.h                 |    3 
 include/xen/interface/io/xenbus.h               |    8 
 include/xen/interface/memory.h                  |   92 +
 include/xen/interface/physdev.h                 |   68 
 include/xen/interface/platform.h                |  381 ++++
 include/xen/interface/platform_pci.h            |   45 
 include/xen/interface/xen-mca.h                 |  429 +++++
 include/xen/interface/xen.h                     |   45 
 include/xen/pcpu.h                              |   30 
 include/xen/platform_pci.h                      |   47 
 include/xen/privcmd.h                           |   80 +
 include/xen/xen-ops.h                           |   13 
 include/xen/xen.h                               |   32 
 include/xen/xenbus.h                            |    3 
 kernel/irq/manage.c                             |    3 
 lib/Makefile                                    |    3 
 lib/swiotlb-core.c                              |  572 +++++++
 lib/swiotlb-xen.c                               |  504 ++++++
 lib/swiotlb.c                                   |  551 -------
 mm/bootmem.c                                    |   24 
 mm/memory.c                                     |   46 
 mm/page_alloc.c                                 |   14 
 mm/vmalloc.c                                    |    7 
 247 files changed, 26173 insertions(+), 1573 deletions(-)

Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.70
retrieving revision 1.1.2.71
diff -u -p -r1.1.2.70 -r1.1.2.71
--- xen.pvops.patch	16 Jun 2010 19:13:55 -0000	1.1.2.70
+++ xen.pvops.patch	12 Jul 2010 21:28:24 -0000	1.1.2.71
@@ -18,19 +18,6 @@ index 29a6ff8..81f9b94 100644
  
    Settings for the IBM Calgary hardware IOMMU currently found in IBM
    pSeries and xSeries machines:
-diff --git a/Makefile b/Makefile
-index 47866f8..36fead3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,7 +1,7 @@
- VERSION = 2
- PATCHLEVEL = 6
- SUBLEVEL = 32
--EXTRAVERSION = .14
-+EXTRAVERSION = .15
- NAME = Man-Eating Seals of Antiquity
- 
- # *DOCUMENTATION*
 diff --git a/arch/ia64/include/asm/dma-mapping.h b/arch/ia64/include/asm/dma-mapping.h
 index 8d3c79c..7d09a09 100644
 --- a/arch/ia64/include/asm/dma-mapping.h
@@ -1270,7 +1257,7 @@ index 8b85734..eb186ef 100644
  #include "sleep.h"
  
 diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
-index c0ebc63..c8b5021 100644
+index f0fa7a1..0c1876b 100644
 --- a/arch/x86/kernel/amd_iommu.c
 +++ b/arch/x86/kernel/amd_iommu.c
 @@ -928,7 +928,7 @@ static unsigned long dma_ops_alloc_addresses(struct device *dev,
@@ -2797,7 +2784,7 @@ index 269c2a3..8e1aac8 100644
  }
  
 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 8425f7e..abd6489 100644
+index d7a0888..fea5875 100644
 --- a/arch/x86/kernel/setup.c
 +++ b/arch/x86/kernel/setup.c
 @@ -89,6 +89,7 @@
@@ -2816,7 +2803,7 @@ index 8425f7e..abd6489 100644
  
  #include <asm/percpu.h>
  #include <asm/topology.h>
-@@ -955,6 +957,9 @@ void __init setup_arch(char **cmdline_p)
+@@ -966,6 +968,9 @@ void __init setup_arch(char **cmdline_p)
  
  	initmem_init(0, max_pfn);
  
@@ -2826,7 +2813,7 @@ index 8425f7e..abd6489 100644
  #ifdef CONFIG_ACPI_SLEEP
  	/*
  	 * Reserve low memory region for sleep support.
-@@ -1023,6 +1028,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1034,6 +1039,7 @@ void __init setup_arch(char **cmdline_p)
  	probe_nr_irqs_gsi();
  
  	kvm_guest_init();
@@ -5133,19 +5120,6 @@ index 360f8d8..632ea35 100644
  	per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
  
  	/* make sure interrupts start blocked */
-diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
-index 987267f..a9c6611 100644
---- a/arch/x86/xen/suspend.c
-+++ b/arch/x86/xen/suspend.c
-@@ -60,6 +60,6 @@ static void xen_vcpu_notify_restore(void *data)
- 
- void xen_arch_resume(void)
- {
--	smp_call_function(xen_vcpu_notify_restore,
--			       (void *)CLOCK_EVT_NOTIFY_RESUME, 1);
-+	on_each_cpu(xen_vcpu_notify_restore,
-+		    (void *)CLOCK_EVT_NOTIFY_RESUME, 1);
- }
 diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
 index 9d1f853..af5463a 100644
 --- a/arch/x86/xen/time.c
@@ -27596,7 +27570,7 @@ index 0000000..54e4d70
 +
 +MODULE_LICENSE("GPL");
 diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
-index eab33f1..6f91e8c 100644
+index 7b547f5..5534690 100644
 --- a/drivers/xen/xenbus/xenbus_xs.c
 +++ b/drivers/xen/xenbus/xenbus_xs.c
 @@ -76,6 +76,14 @@ struct xs_handle {
@@ -31175,36 +31149,6 @@ index 986519e..cae345b 100644
  			return;
  		desc->status |= IRQ_SUSPENDED;
  	}
-diff --git a/kernel/lockdep.c b/kernel/lockdep.c
-index f672d51..9af5672 100644
---- a/kernel/lockdep.c
-+++ b/kernel/lockdep.c
-@@ -591,9 +591,9 @@ static int static_obj(void *obj)
- 	 * percpu var?
- 	 */
- 	for_each_possible_cpu(i) {
--		start = (unsigned long) per_cpu_ptr(&__per_cpu_start, i);
--		end   = (unsigned long) per_cpu_ptr(&__per_cpu_start, i)
--					+ PERCPU_ENOUGH_ROOM;
-+		start = (unsigned long) &__per_cpu_start + per_cpu_offset(i);
-+		end   = (unsigned long) &__per_cpu_start + PERCPU_ENOUGH_ROOM
-+					+ per_cpu_offset(i);
- 
- 		if ((addr >= start) && (addr < end))
- 			return 1;
-diff --git a/kernel/module.c b/kernel/module.c
-index a4aae35..dfa33e8 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -555,7 +555,7 @@ static void percpu_modcopy(void *pcpudest, const void *from, unsigned long size)
- 	int cpu;
- 
- 	for_each_possible_cpu(cpu)
--		memcpy(per_cpu_ptr(pcpudest, cpu), from, size);
-+		memcpy(pcpudest + per_cpu_offset(cpu), from, size);
- }
- 
- #else /* ... !CONFIG_SMP */
 diff --git a/lib/Makefile b/lib/Makefile
 index 452f188..001e918 100644
 --- a/lib/Makefile
@@ -33012,7 +32956,7 @@ index 555d5d2..d1dc23c 100644
  {
  	int aligned;
 diff --git a/mm/memory.c b/mm/memory.c
-index 4e59455..b2de7c9 100644
+index 4e59455..b7f9311 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
 @@ -553,6 +553,13 @@ struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
@@ -33093,6 +33037,23 @@ index 4e59455..b2de7c9 100644
  	err = track_pfn_vma_new(vma, &prot, pfn, PAGE_ALIGN(size));
  	if (err) {
  		/*
+@@ -1890,7 +1929,6 @@ int apply_to_page_range(struct mm_struct *mm, unsigned long addr,
+ 	int err;
+ 
+ 	BUG_ON(addr >= end);
+-	mmu_notifier_invalidate_range_start(mm, start, end);
+ 	pgd = pgd_offset(mm, addr);
+ 	do {
+ 		next = pgd_addr_end(addr, end);
+@@ -1898,7 +1936,7 @@ int apply_to_page_range(struct mm_struct *mm, unsigned long addr,
+ 		if (err)
+ 			break;
+ 	} while (pgd++, addr = next, addr != end);
+-	mmu_notifier_invalidate_range_end(mm, start, end);
++
+ 	return err;
+ }
+ EXPORT_SYMBOL_GPL(apply_to_page_range);
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
 index 36992b6..bc1b6e9 100644
 --- a/mm/page_alloc.c


--- btrfs-should-add-permission-check-for-setfacl.patch DELETED ---


--- drm-upgrayed-fixes.patch DELETED ---


--- iwlwifi-recalculate-average-tpt-if-not-current.patch DELETED ---


--- iwlwifi-update-supported-PCI_ID-list-for-5xx0-series.patch DELETED ---


--- iwlwifi_-check-for-aggregation-frame-and-queue.patch DELETED ---


--- keys-find-keyring-by-name-can-gain-access-to-the-freed-keyring.patch DELETED ---


--- linux-2.6-wireless_-report-reasonable-bitrate-for-MCS-rates-through-wext.patch DELETED ---


--- linux-2.6.31-modules-ro-nx.patch DELETED ---


--- linux-2.6.31-nx-data.patch DELETED ---


--- patch-2.6.32.14.bz2.sign DELETED ---



More information about the scm-commits mailing list