diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-12 11:58:02 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-12 11:58:02 -0700 |
commit | 61eed0c20551ad199a31ff67e56e13d912f5e903 (patch) | |
tree | 4b564156572cd7070d3d2e0c057ea042c4741627 | |
parent | 034fa8e8cf3ba07a8bea5d16afbded707d30e2ed (diff) | |
download | stable-queue-61eed0c20551ad199a31ff67e56e13d912f5e903.tar.gz |
3.0 patches
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); |