summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-08-12 11:58:02 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-08-12 11:58:02 -0700
commit61eed0c20551ad199a31ff67e56e13d912f5e903 (patch)
tree4b564156572cd7070d3d2e0c057ea042c4741627
parent034fa8e8cf3ba07a8bea5d16afbded707d30e2ed (diff)
downloadstable-queue-61eed0c20551ad199a31ff67e56e13d912f5e903.tar.gz
3.0 patches
-rw-r--r--queue-3.0/ath9k-fix-a-misprint-which-leads-to-incorrect-calibration.patch31
-rw-r--r--queue-3.0/ath9k_hw-fix-incorrect-tx-control-power-in-ar9003-template.patch52
-rw-r--r--queue-3.0/dp83640-increase-receive-time-stamp-buffer-size.patch46
-rw-r--r--queue-3.0/e1000e-alternate-mac-address-does-not-work-on-device-id-0x1060.patch32
-rw-r--r--queue-3.0/ext3-properly-count-journal-credits-for-long-symlinks.patch48
-rw-r--r--queue-3.0/ext4-properly-count-journal-credits-for-long-symlinks.patch48
-rw-r--r--queue-3.0/gianfar-fix-fiper-alignment-after-resetting-the-time.patch56
-rw-r--r--queue-3.0/mm-fix-fixup_user_fault-for-mmu-n.patch60
-rw-r--r--queue-3.0/series9
-rw-r--r--queue-3.0/sparc-don-t-do-hypervisor-calls-on-non-sun4v-in-ds-driver.patch40
10 files changed, 422 insertions, 0 deletions
diff --git a/queue-3.0/ath9k-fix-a-misprint-which-leads-to-incorrect-calibration.patch b/queue-3.0/ath9k-fix-a-misprint-which-leads-to-incorrect-calibration.patch
new file mode 100644
index 0000000000..622bef1a8d
--- /dev/null
+++ b/queue-3.0/ath9k-fix-a-misprint-which-leads-to-incorrect-calibration.patch
@@ -0,0 +1,31 @@
+From 118c9db51e7acaf8f16deae8311cce6588b83e31 Mon Sep 17 00:00:00 2001
+From: Alex Hacker <hacker@epn.ru>
+Date: Thu, 4 Aug 2011 13:47:32 +0600
+Subject: ath9k: fix a misprint which leads to incorrect calibration
+
+From: Alex Hacker <hacker@epn.ru>
+
+commit 118c9db51e7acaf8f16deae8311cce6588b83e31 upstream.
+
+This patch addresses an issue with incorrect HW register
+AR_PHY_TX_IQCAL_CORR_COEFF_B1 definition which leads to incorrect clibration.
+
+Signed-off-by: Alex Hacker <hacker@epn.ru>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9003_phy.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h
+@@ -848,7 +848,7 @@
+ #define AR_PHY_TPC_11_B1 (AR_SM1_BASE + 0x220)
+ #define AR_PHY_PDADC_TAB_1 (AR_SM1_BASE + 0x240)
+ #define AR_PHY_TX_IQCAL_STATUS_B1 (AR_SM1_BASE + 0x48c)
+-#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i) (AR_SM_BASE + 0x450 + ((_i) << 2))
++#define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i) (AR_SM1_BASE + 0x450 + ((_i) << 2))
+
+ /*
+ * Channel 2 Register Map
diff --git a/queue-3.0/ath9k_hw-fix-incorrect-tx-control-power-in-ar9003-template.patch b/queue-3.0/ath9k_hw-fix-incorrect-tx-control-power-in-ar9003-template.patch
new file mode 100644
index 0000000000..cb8cf55448
--- /dev/null
+++ b/queue-3.0/ath9k_hw-fix-incorrect-tx-control-power-in-ar9003-template.patch
@@ -0,0 +1,52 @@
+From 15052f81d255eac44e745bc630b36aa86779ad9d Mon Sep 17 00:00:00 2001
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Date: Fri, 29 Jul 2011 17:38:15 +0530
+Subject: ath9k_hw: Fix incorrect Tx control power in AR9003 template
+
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+
+commit 15052f81d255eac44e745bc630b36aa86779ad9d upstream.
+
+CTL power data incorrect in ctlPowerData_2G field of ar9300_eeprom.
+Setting incorrect CTL power in calibration is causing lower tx power.
+Tx power was reported as 3dBm while operating in channel 6 HT40+/
+in channel 11 HT40- due to CTL powers in the calibration is set to
+zero.
+
+Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -306,7 +306,7 @@ static const struct ar9300_eeprom ar9300
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
+
+- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+
+@@ -883,7 +883,7 @@ static const struct ar9300_eeprom ar9300
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
+
+- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+
+@@ -2039,7 +2039,7 @@ static const struct ar9300_eeprom ar9300
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
+
+- { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
++ { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+ { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
+
diff --git a/queue-3.0/dp83640-increase-receive-time-stamp-buffer-size.patch b/queue-3.0/dp83640-increase-receive-time-stamp-buffer-size.patch
new file mode 100644
index 0000000000..e9a00aac08
--- /dev/null
+++ b/queue-3.0/dp83640-increase-receive-time-stamp-buffer-size.patch
@@ -0,0 +1,46 @@
+From 8028837d71ba9904b17281b40f94b93e947fbe38 Mon Sep 17 00:00:00 2001
+From: Richard Cochran <richardcochran@gmail.com>
+Date: Sat, 6 Aug 2011 21:03:04 +0000
+Subject: dp83640: increase receive time stamp buffer size
+
+From: Richard Cochran <richardcochran@gmail.com>
+
+commit 8028837d71ba9904b17281b40f94b93e947fbe38 upstream.
+
+The dp83640 buffers receive time stamps from special PHY status frames,
+matching them to received PTP packets in a work queue. Because the timeout
+for orphaned time stamps is so long and the buffer is so small, the driver
+can drop time stamps under moderate PTP traffic.
+
+This commit fixes the issue by decreasing the timeout to (at least) one
+timer tick and increasing the buffer size.
+
+Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/phy/dp83640.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/phy/dp83640.c
++++ b/drivers/net/phy/dp83640.c
+@@ -34,8 +34,7 @@
+ #define PAGESEL 0x13
+ #define LAYER4 0x02
+ #define LAYER2 0x01
+-#define MAX_RXTS 4
+-#define MAX_TXTS 4
++#define MAX_RXTS 64
+ #define N_EXT_TS 1
+ #define PSF_PTPVER 2
+ #define PSF_EVNT 0x4000
+@@ -218,7 +217,7 @@ static void phy2rxts(struct phy_rxts *p,
+ rxts->seqid = p->seqid;
+ rxts->msgtype = (p->msgtype >> 12) & 0xf;
+ rxts->hash = p->msgtype & 0x0fff;
+- rxts->tmo = jiffies + HZ;
++ rxts->tmo = jiffies + 2;
+ }
+
+ static u64 phy2txts(struct phy_txts *p)
diff --git a/queue-3.0/e1000e-alternate-mac-address-does-not-work-on-device-id-0x1060.patch b/queue-3.0/e1000e-alternate-mac-address-does-not-work-on-device-id-0x1060.patch
new file mode 100644
index 0000000000..772fa4127c
--- /dev/null
+++ b/queue-3.0/e1000e-alternate-mac-address-does-not-work-on-device-id-0x1060.patch
@@ -0,0 +1,32 @@
+From c407bee8a56d874b91f3e4ee790660959ff1a25e Mon Sep 17 00:00:00 2001
+From: Bruce Allan <bruce.w.allan@intel.com>
+Date: Fri, 22 Jul 2011 06:21:51 +0000
+Subject: e1000e: alternate MAC address does not work on device id 0x1060
+
+From: Bruce Allan <bruce.w.allan@intel.com>
+
+commit c407bee8a56d874b91f3e4ee790660959ff1a25e upstream.
+
+This issue is present all the way back to 2.6.34 kernels.
+
+Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
+Tested-by: Jeffrey Pieper <jeffrey.e.pieper@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/e1000e/lib.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/e1000e/lib.c
++++ b/drivers/net/e1000e/lib.c
+@@ -190,7 +190,8 @@ s32 e1000_check_alt_mac_addr_generic(str
+ /* Check for LOM (vs. NIC) or one of two valid mezzanine cards */
+ if (!((nvm_data & NVM_COMPAT_LOM) ||
+ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) ||
+- (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD)))
++ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) ||
++ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES)))
+ goto out;
+
+ ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1,
diff --git a/queue-3.0/ext3-properly-count-journal-credits-for-long-symlinks.patch b/queue-3.0/ext3-properly-count-journal-credits-for-long-symlinks.patch
new file mode 100644
index 0000000000..e98ca99288
--- /dev/null
+++ b/queue-3.0/ext3-properly-count-journal-credits-for-long-symlinks.patch
@@ -0,0 +1,48 @@
+From d2db60df1e7eb39cf0f378dfc4dd8813666d46ef Mon Sep 17 00:00:00 2001
+From: Eric Sandeen <sandeen@redhat.com>
+Date: Thu, 11 Aug 2011 09:51:46 -0500
+Subject: ext3: Properly count journal credits for long symlinks
+
+From: Eric Sandeen <sandeen@redhat.com>
+
+commit d2db60df1e7eb39cf0f378dfc4dd8813666d46ef upstream.
+
+Commit ae54870a1dc9 ("ext3: Fix lock inversion in ext3_symlink()")
+recalculated the number of credits needed for a long symlink, in the
+process of splitting it into two transactions. However, the first
+credit calculation under-counted because if selinux is enabled, credits
+are needed to create the selinux xattr as well.
+
+Overrunning the reservation will result in an OOPS in
+journal_dirty_metadata() due to this assert:
+
+ J_ASSERT_JH(jh, handle->h_buffer_credits > 0);
+
+Fix this by increasing the reservation size.
+
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Reviewed-by: Jan Kara <jack@suse.cz>
+Acked-by: "Theodore Ts'o" <tytso@mit.edu>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/ext3/namei.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/fs/ext3/namei.c
++++ b/fs/ext3/namei.c
+@@ -2210,9 +2210,11 @@ static int ext3_symlink (struct inode *
+ /*
+ * For non-fast symlinks, we just allocate inode and put it on
+ * orphan list in the first transaction => we need bitmap,
+- * group descriptor, sb, inode block, quota blocks.
++ * group descriptor, sb, inode block, quota blocks, and
++ * possibly selinux xattr blocks.
+ */
+- credits = 4 + EXT3_MAXQUOTAS_INIT_BLOCKS(dir->i_sb);
++ credits = 4 + EXT3_MAXQUOTAS_INIT_BLOCKS(dir->i_sb) +
++ EXT3_XATTR_TRANS_BLOCKS;
+ } else {
+ /*
+ * Fast symlink. We have to add entry to directory
diff --git a/queue-3.0/ext4-properly-count-journal-credits-for-long-symlinks.patch b/queue-3.0/ext4-properly-count-journal-credits-for-long-symlinks.patch
new file mode 100644
index 0000000000..f51b4b1d55
--- /dev/null
+++ b/queue-3.0/ext4-properly-count-journal-credits-for-long-symlinks.patch
@@ -0,0 +1,48 @@
+From 8c20871998c082f6fbc963f1449a5ba5140ee39a Mon Sep 17 00:00:00 2001
+From: Eric Sandeen <sandeen@redhat.com>
+Date: Thu, 11 Aug 2011 09:54:31 -0500
+Subject: ext4: Properly count journal credits for long symlinks
+
+From: Eric Sandeen <sandeen@redhat.com>
+
+commit 8c20871998c082f6fbc963f1449a5ba5140ee39a upstream.
+
+Commit df5e6223407e ("ext4: fix deadlock in ext4_symlink() in ENOSPC
+conditions") recalculated the number of credits needed for a long
+symlink, in the process of splitting it into two transactions. However,
+the first credit calculation under-counted because if selinux is
+enabled, credits are needed to create the selinux xattr as well.
+
+Overrunning the reservation will result in an OOPS in
+jbd2_journal_dirty_metadata() due to this assert:
+
+ J_ASSERT_JH(jh, handle->h_buffer_credits > 0);
+
+Fix this by increasing the reservation size.
+
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Reviewed-by: Jan Kara <jack@suse.cz>
+Acked-by: "Theodore Ts'o" <tytso@mit.edu>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/ext4/namei.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
+@@ -2264,9 +2264,11 @@ static int ext4_symlink(struct inode *di
+ /*
+ * For non-fast symlinks, we just allocate inode and put it on
+ * orphan list in the first transaction => we need bitmap,
+- * group descriptor, sb, inode block, quota blocks.
++ * group descriptor, sb, inode block, quota blocks, and
++ * possibly selinux xattr blocks.
+ */
+- credits = 4 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb);
++ credits = 4 + EXT4_MAXQUOTAS_INIT_BLOCKS(dir->i_sb) +
++ EXT4_XATTR_TRANS_BLOCKS;
+ } else {
+ /*
+ * Fast symlink. We have to add entry to directory
diff --git a/queue-3.0/gianfar-fix-fiper-alignment-after-resetting-the-time.patch b/queue-3.0/gianfar-fix-fiper-alignment-after-resetting-the-time.patch
new file mode 100644
index 0000000000..5c03e710c1
--- /dev/null
+++ b/queue-3.0/gianfar-fix-fiper-alignment-after-resetting-the-time.patch
@@ -0,0 +1,56 @@
+From cbc056602c7c63620c86904c431ff6b61e029dcc Mon Sep 17 00:00:00 2001
+From: Richard Cochran <richardcochran@gmail.com>
+Date: Sat, 6 Aug 2011 21:03:03 +0000
+Subject: gianfar: fix fiper alignment after resetting the time
+
+From: Richard Cochran <richardcochran@gmail.com>
+
+commit cbc056602c7c63620c86904c431ff6b61e029dcc upstream.
+
+After resetting the time, the PPS signals on the FIPER output channels
+are incorrectly offset from the clock time, as can be readily verified
+by a looping back the FIPER to the external time stamp input.
+
+Despite its name, setting the "Fiper Realignment Disable" bit seems to
+fix the problem, at least on the P2020.
+
+Also, following the example code from the Freescale BSP, it is not really
+necessary to disable and re-enable the timer in order to reprogram the
+FIPER. (The documentation is rather unclear on this point. It seems that
+writing to the alarm register also disables the FIPER.)
+
+Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/gianfar_ptp.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/gianfar_ptp.c
++++ b/drivers/net/gianfar_ptp.c
+@@ -193,14 +193,9 @@ static void set_alarm(struct etsects *et
+ /* Caller must hold etsects->lock. */
+ static void set_fipers(struct etsects *etsects)
+ {
+- u32 tmr_ctrl = gfar_read(&etsects->regs->tmr_ctrl);
+-
+- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl & (~TE));
+- gfar_write(&etsects->regs->tmr_prsc, etsects->tmr_prsc);
++ set_alarm(etsects);
+ gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1);
+ gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2);
+- set_alarm(etsects);
+- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|TE);
+ }
+
+ /*
+@@ -511,7 +506,7 @@ static int gianfar_ptp_probe(struct plat
+ gfar_write(&etsects->regs->tmr_fiper1, etsects->tmr_fiper1);
+ gfar_write(&etsects->regs->tmr_fiper2, etsects->tmr_fiper2);
+ set_alarm(etsects);
+- gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|FS|RTPE|TE);
++ gfar_write(&etsects->regs->tmr_ctrl, tmr_ctrl|FS|RTPE|TE|FRD);
+
+ spin_unlock_irqrestore(&etsects->lock, flags);
+
diff --git a/queue-3.0/mm-fix-fixup_user_fault-for-mmu-n.patch b/queue-3.0/mm-fix-fixup_user_fault-for-mmu-n.patch
new file mode 100644
index 0000000000..8a20fa9ba7
--- /dev/null
+++ b/queue-3.0/mm-fix-fixup_user_fault-for-mmu-n.patch
@@ -0,0 +1,60 @@
+From 5c723ba5b7886909b2e430f2eae454c33f7fe5c6 Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <peterz@infradead.org>
+Date: Wed, 27 Jul 2011 12:17:11 +0200
+Subject: mm: Fix fixup_user_fault() for MMU=n
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+commit 5c723ba5b7886909b2e430f2eae454c33f7fe5c6 upstream.
+
+In commit 2efaca927f5c ("mm/futex: fix futex writes on archs with SW
+tracking of dirty & young") we forgot about MMU=n. This patch fixes
+that.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Acked-by: David Howells <dhowells@redhat.com>
+Link: http://lkml.kernel.org/r/1311761831.24752.413.camel@twins
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Mike Frysinger <vapier.adi@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/linux/mm.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/include/linux/mm.h
++++ b/include/linux/mm.h
+@@ -959,6 +959,8 @@ int invalidate_inode_page(struct page *p
+ #ifdef CONFIG_MMU
+ extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+ unsigned long address, unsigned int flags);
++extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
++ unsigned long address, unsigned int fault_flags);
+ #else
+ static inline int handle_mm_fault(struct mm_struct *mm,
+ struct vm_area_struct *vma, unsigned long address,
+@@ -968,6 +970,14 @@ static inline int handle_mm_fault(struct
+ BUG();
+ return VM_FAULT_SIGBUS;
+ }
++static inline int fixup_user_fault(struct task_struct *tsk,
++ struct mm_struct *mm, unsigned long address,
++ unsigned int fault_flags)
++{
++ /* should never happen if there's no MMU */
++ BUG();
++ return -EFAULT;
++}
+ #endif
+
+ extern int make_pages_present(unsigned long addr, unsigned long end);
+@@ -985,8 +995,6 @@ int get_user_pages(struct task_struct *t
+ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
+ struct page **pages);
+ struct page *get_dump_page(unsigned long addr);
+-extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
+- unsigned long address, unsigned int fault_flags);
+
+ extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
+ extern void do_invalidatepage(struct page *page, unsigned long offset);
diff --git a/queue-3.0/series b/queue-3.0/series
index b8bc5b52af..99b00e91d6 100644
--- a/queue-3.0/series
+++ b/queue-3.0/series
@@ -79,3 +79,12 @@ ecryptfs-return-error-when-lower-file-pointer-is-null.patch
powerpc-pseries-fix-kexec-on-recent-firmware-versions.patch
powerpc-fix-device-tree-claim-code.patch
powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch
+ext3-properly-count-journal-credits-for-long-symlinks.patch
+ext4-properly-count-journal-credits-for-long-symlinks.patch
+e1000e-alternate-mac-address-does-not-work-on-device-id-0x1060.patch
+gianfar-fix-fiper-alignment-after-resetting-the-time.patch
+dp83640-increase-receive-time-stamp-buffer-size.patch
+ath9k_hw-fix-incorrect-tx-control-power-in-ar9003-template.patch
+ath9k-fix-a-misprint-which-leads-to-incorrect-calibration.patch
+sparc-don-t-do-hypervisor-calls-on-non-sun4v-in-ds-driver.patch
+mm-fix-fixup_user_fault-for-mmu-n.patch
diff --git a/queue-3.0/sparc-don-t-do-hypervisor-calls-on-non-sun4v-in-ds-driver.patch b/queue-3.0/sparc-don-t-do-hypervisor-calls-on-non-sun4v-in-ds-driver.patch
new file mode 100644
index 0000000000..e1b9b864d0
--- /dev/null
+++ b/queue-3.0/sparc-don-t-do-hypervisor-calls-on-non-sun4v-in-ds-driver.patch
@@ -0,0 +1,40 @@
+From c92761fd9efcbbcb59e7bf4db88e29ce03229889 Mon Sep 17 00:00:00 2001
+From: "David S. Miller" <davem@davemloft.net>
+Date: Thu, 11 Aug 2011 17:58:59 -0700
+Subject: sparc: Don't do hypervisor calls on non-sun4v in DS driver.
+
+From: "David S. Miller" <davem@davemloft.net>
+
+commit c92761fd9efcbbcb59e7bf4db88e29ce03229889 upstream.
+
+Reported-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc/kernel/ds.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+--- a/arch/sparc/kernel/ds.c
++++ b/arch/sparc/kernel/ds.c
+@@ -1256,13 +1256,14 @@ static int __init ds_init(void)
+ {
+ unsigned long hv_ret, major, minor;
+
+- hv_ret = sun4v_get_version(HV_GRP_REBOOT_DATA, &major, &minor);
+- if (hv_ret == HV_EOK) {
+- pr_info("SUN4V: Reboot data supported (maj=%lu,min=%lu).\n",
+- major, minor);
+- reboot_data_supported = 1;
++ if (tlb_type == hypervisor) {
++ hv_ret = sun4v_get_version(HV_GRP_REBOOT_DATA, &major, &minor);
++ if (hv_ret == HV_EOK) {
++ pr_info("SUN4V: Reboot data supported (maj=%lu,min=%lu).\n",
++ major, minor);
++ reboot_data_supported = 1;
++ }
+ }
+-
+ kthread_run(ds_thread, NULL, "kldomd");
+
+ return vio_register_driver(&ds_driver);