From: Greg Kroah-Hartman Date: Wed, 11 Jul 2012 23:27:06 +0000 (-0700) Subject: 3.0-stable patches X-Git-Tag: v3.0.37~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=916240446d6f302490505851070460d8b5acd9e5;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: md-raid10-don-t-try-to-recovery-unmatched-and-unused-chunks.patch md-raid5-do-not-add-data_offset-before-call-to-is_badblock.patch raid5-delayed-stripe-fix.patch rtl8187-brightness_set-can-not-sleep.patch umem-fix-up-unplugging.patch vhost-don-t-forget-to-schedule.patch x86-cpufeature-rename-x86_feature_dts-to-x86_feature_dtherm.patch --- diff --git a/queue-3.0/arm-fix-rcu-stalls-on-smp-platforms.patch b/queue-3.0/arm-fix-rcu-stalls-on-smp-platforms.patch index e2c6270437c..2e1b9fd96e8 100644 --- a/queue-3.0/arm-fix-rcu-stalls-on-smp-platforms.patch +++ b/queue-3.0/arm-fix-rcu-stalls-on-smp-platforms.patch @@ -14,12 +14,13 @@ friends. Add the necessary calls, and remove the one from within ipi_timer(), so that they're all in a common place. Signed-off-by: Russell King +[add irq_enter()/irq_exit() in do_local_timer] Signed-off-by: UCHINO Satoshi Signed-off-by: Greg Kroah-Hartman --- - arch/arm/kernel/smp.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) + arch/arm/kernel/smp.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -33,7 +34,17 @@ Signed-off-by: Greg Kroah-Hartman } #ifdef CONFIG_LOCAL_TIMERS -@@ -568,7 +566,9 @@ asmlinkage void __exception_irq_entry do +@@ -458,7 +456,9 @@ asmlinkage void __exception_irq_entry do + + if (local_timer_ack()) { + __inc_irq_stat(cpu, local_timer_irqs); ++ irq_enter(); + ipi_timer(); ++ irq_exit(); + } + + set_irq_regs(old_regs); +@@ -568,7 +568,9 @@ asmlinkage void __exception_irq_entry do switch (ipinr) { case IPI_TIMER: @@ -43,7 +54,7 @@ Signed-off-by: Greg Kroah-Hartman break; case IPI_RESCHEDULE: -@@ -576,15 +576,21 @@ asmlinkage void __exception_irq_entry do +@@ -576,15 +578,21 @@ asmlinkage void __exception_irq_entry do break; case IPI_CALL_FUNC: diff --git a/queue-3.0/ath9k_htc-configure-bssid-on-assoc-ibss-change.patch b/queue-3.0/ath9k_htc-configure-bssid-on-assoc-ibss-change.patch deleted file mode 100644 index 3d9e6a082e5..00000000000 --- a/queue-3.0/ath9k_htc-configure-bssid-on-assoc-ibss-change.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 931cb03afed7b541392295f3afc4638da32f08a0 Mon Sep 17 00:00:00 2001 -From: Rajkumar Manoharan -Date: Wed, 20 Jun 2012 16:29:20 +0530 -Subject: ath9k_htc: configure bssid on ASSOC/IBSS change - -From: Rajkumar Manoharan - -commit 931cb03afed7b541392295f3afc4638da32f08a0 upstream. - -After the change "mac80211: remove spurious BSSID change flag", -BSS_CHANGED_BSSID will not be passed on association or IBSS -status changes. So it could be better to program bssid on ASSOC -or IBSS change notification. Not doing so, is affecting the -packet transmission. - -Reported-by: Michael Leun -Signed-off-by: Rajkumar Manoharan -Signed-off-by: John W. Linville -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/net/wireless/ath/ath9k/htc_drv_main.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - ---- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c -+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c -@@ -1487,6 +1487,7 @@ static void ath9k_htc_bss_info_changed(s - priv->num_sta_assoc_vif++ : priv->num_sta_assoc_vif--; - - if (priv->ah->opmode == NL80211_IFTYPE_STATION) { -+ ath9k_htc_choose_set_bssid(priv); - if (bss_conf->assoc && (priv->num_sta_assoc_vif == 1)) - ath9k_htc_start_ani(priv); - else if (priv->num_sta_assoc_vif == 0) -@@ -1494,13 +1495,11 @@ static void ath9k_htc_bss_info_changed(s - } - } - -- if (changed & BSS_CHANGED_BSSID) { -+ if (changed & BSS_CHANGED_IBSS) { - if (priv->ah->opmode == NL80211_IFTYPE_ADHOC) { - common->curaid = bss_conf->aid; - memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN); - ath9k_htc_set_bssid(priv); -- } else if (priv->ah->opmode == NL80211_IFTYPE_STATION) { -- ath9k_htc_choose_set_bssid(priv); - } - } - diff --git a/queue-3.0/md-raid10-don-t-try-to-recovery-unmatched-and-unused-chunks.patch b/queue-3.0/md-raid10-don-t-try-to-recovery-unmatched-and-unused-chunks.patch new file mode 100644 index 00000000000..6c4d9afc18b --- /dev/null +++ b/queue-3.0/md-raid10-don-t-try-to-recovery-unmatched-and-unused-chunks.patch @@ -0,0 +1,46 @@ +From: NeilBrown +Date: Tue, 3 Jul 2012 10:37:30 +1000 +Subject: md/raid10: Don't try to recovery unmatched (and unused) chunks. + +From: NeilBrown + +commit fc448a18ae6219af9a73257b1fbcd009efab4a81 upstream. + +If a RAID10 has an odd number of chunks - as might happen when there +are an odd number of devices - the last chunk has no pair and so is +not mirrored. We don't store data there, but when recovering the last +device in an array we retry to recover that last chunk from a +non-existent location. This results in an error, and the recovery +aborts. + +When we get to that last chunk we should just stop - there is nothing +more to do anyway. + +This bug has been present since the introduction of RAID10, so the +patch is appropriate for any -stable kernel. + +Reported-by: Christian Balzer +Tested-by: Christian Balzer +Signed-off-by: NeilBrown +[bwh: Backported to 3.2: adjust context] +Signed-off-by: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman +--- + drivers/md/raid10.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/md/raid10.c ++++ b/drivers/md/raid10.c +@@ -1858,6 +1858,12 @@ static sector_t sync_request(mddev_t *md + /* want to reconstruct this device */ + rb2 = r10_bio; + sect = raid10_find_virt(conf, sector_nr, i); ++ if (sect >= mddev->resync_max_sectors) { ++ /* last stripe is not complete - don't ++ * try to recover this sector. ++ */ ++ continue; ++ } + /* Unless we are doing a full sync, we only need + * to recover the block if it is set in the bitmap + */ diff --git a/queue-3.0/md-raid5-do-not-add-data_offset-before-call-to-is_badblock.patch b/queue-3.0/md-raid5-do-not-add-data_offset-before-call-to-is_badblock.patch new file mode 100644 index 00000000000..ff9bff9e016 --- /dev/null +++ b/queue-3.0/md-raid5-do-not-add-data_offset-before-call-to-is_badblock.patch @@ -0,0 +1,50 @@ +From: majianpeng +Date: Tue, 12 Jun 2012 08:31:10 +0800 +Subject: md/raid5: Do not add data_offset before call to is_badblock + +From: majianpeng + +commit 6c0544e255dd6582a9899572e120fb55d9f672a4 upstream. + +In chunk_aligned_read() we are adding data_offset before calling +is_badblock. But is_badblock also adds data_offset, so that is bad. + +So move the addition of data_offset to after the call to +is_badblock. + +This bug was introduced by commit 31c176ecdf3563140e639 + md/raid5: avoid reading from known bad blocks. +which first appeared in 3.0. So that patch is suitable for any +-stable kernel from 3.0.y onwards. However it will need minor +revision for most of those (as the comment didn't appear until +recently). + +Signed-off-by: majianpeng +Signed-off-by: NeilBrown +[bwh: Backported to 3.2: ignored missing comment] +Signed-off-by: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman +--- + drivers/md/raid5.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/md/raid5.c ++++ b/drivers/md/raid5.c +@@ -3848,7 +3848,6 @@ static int chunk_aligned_read(mddev_t *m + raid_bio->bi_next = (void*)rdev; + align_bi->bi_bdev = rdev->bdev; + align_bi->bi_flags &= ~(1 << BIO_SEG_VALID); +- align_bi->bi_sector += rdev->data_offset; + + if (!bio_fits_rdev(align_bi)) { + /* too big in some way */ +@@ -3857,6 +3856,9 @@ static int chunk_aligned_read(mddev_t *m + return 0; + } + ++ /* No reshape active, so we can trust rdev->data_offset */ ++ align_bi->bi_sector += rdev->data_offset; ++ + spin_lock_irq(&conf->device_lock); + wait_event_lock_irq(conf->wait_for_stripe, + conf->quiesce == 0, diff --git a/queue-3.0/raid5-delayed-stripe-fix.patch b/queue-3.0/raid5-delayed-stripe-fix.patch new file mode 100644 index 00000000000..30ce6e3a6dd --- /dev/null +++ b/queue-3.0/raid5-delayed-stripe-fix.patch @@ -0,0 +1,41 @@ +From fab363b5ff502d1b39ddcfec04271f5858d9f26e Mon Sep 17 00:00:00 2001 +From: Shaohua Li +Date: Tue, 3 Jul 2012 15:57:19 +1000 +Subject: raid5: delayed stripe fix + +From: Shaohua Li + +commit fab363b5ff502d1b39ddcfec04271f5858d9f26e upstream. + +There isn't locking setting STRIPE_DELAYED and STRIPE_PREREAD_ACTIVE bits, but +the two bits have relationship. A delayed stripe can be moved to hold list only +when preread active stripe count is below IO_THRESHOLD. If a stripe has both +the bits set, such stripe will be in delayed list and preread count not 0, +which will make such stripe never leave delayed list. + +Signed-off-by: Shaohua Li +Signed-off-by: NeilBrown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/raid5.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/md/raid5.c ++++ b/drivers/md/raid5.c +@@ -199,12 +199,14 @@ static void __release_stripe(raid5_conf_ + BUG_ON(!list_empty(&sh->lru)); + BUG_ON(atomic_read(&conf->active_stripes)==0); + if (test_bit(STRIPE_HANDLE, &sh->state)) { +- if (test_bit(STRIPE_DELAYED, &sh->state)) ++ if (test_bit(STRIPE_DELAYED, &sh->state) && ++ !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) + list_add_tail(&sh->lru, &conf->delayed_list); + else if (test_bit(STRIPE_BIT_DELAY, &sh->state) && + sh->bm_seq - conf->seq_write > 0) + list_add_tail(&sh->lru, &conf->bitmap_list); + else { ++ clear_bit(STRIPE_DELAYED, &sh->state); + clear_bit(STRIPE_BIT_DELAY, &sh->state); + list_add_tail(&sh->lru, &conf->handle_list); + } diff --git a/queue-3.0/rtl8187-brightness_set-can-not-sleep.patch b/queue-3.0/rtl8187-brightness_set-can-not-sleep.patch new file mode 100644 index 00000000000..0d38eecff2e --- /dev/null +++ b/queue-3.0/rtl8187-brightness_set-can-not-sleep.patch @@ -0,0 +1,55 @@ +From 0fde0a8cfd0ede7f310d6a681c8e5a7cb3e32406 Mon Sep 17 00:00:00 2001 +From: Stanislaw Gruszka +Date: Wed, 16 May 2012 11:06:21 +0200 +Subject: rtl8187: ->brightness_set can not sleep + +From: Stanislaw Gruszka + +commit 0fde0a8cfd0ede7f310d6a681c8e5a7cb3e32406 upstream. + +Fix: + +BUG: sleeping function called from invalid context at kernel/workqueue.c:2547 +in_atomic(): 1, irqs_disabled(): 0, pid: 629, name: wpa_supplicant +2 locks held by wpa_supplicant/629: + #0: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x14/0x20 + #1: (&trigger->leddev_list_lock){.+.?..}, at: [] led_trigger_event+0x21/0x80 +Pid: 629, comm: wpa_supplicant Not tainted 3.3.0-0.rc3.git5.1.fc17.i686 +Call Trace: + [] __might_sleep+0x126/0x1d0 + [] wait_on_work+0x2c/0x1d0 + [] __cancel_work_timer+0x6a/0x120 + [] cancel_delayed_work_sync+0x10/0x20 + [] rtl8187_led_brightness_set+0x82/0xf0 [rtl8187] + [] led_trigger_event+0x5c/0x80 + [] ieee80211_led_radio+0x1d/0x40 [mac80211] + [] ieee80211_stop_device+0x13/0x230 [mac80211] + +Removing _sync is ok, because if led_on work is currently running +it will be finished before led_off work start to perform, since +they are always queued on the same mac80211 local->workqueue. + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=795176 + +Signed-off-by: Stanislaw Gruszka +Acked-by: Larry Finger +Acked-by: Hin-Tak Leung +Signed-off-by: John W. Linville +Cc: Josh Boyer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rtl818x/rtl8187/leds.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/wireless/rtl818x/rtl8187/leds.c ++++ b/drivers/net/wireless/rtl818x/rtl8187/leds.c +@@ -117,7 +117,7 @@ static void rtl8187_led_brightness_set(s + radio_on = true; + } else if (radio_on) { + radio_on = false; +- cancel_delayed_work_sync(&priv->led_on); ++ cancel_delayed_work(&priv->led_on); + ieee80211_queue_delayed_work(hw, &priv->led_off, 0); + } + } else if (radio_on) { diff --git a/queue-3.0/series b/queue-3.0/series index 3e3b129f9ab..97a57122e34 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -20,7 +20,6 @@ udf-avoid-run-away-loop-when-partition-table-length-is-corrupted.patch udf-fortify-loading-of-sparing-table.patch ath9k-fix-softlockup-in-ar9485.patch ath9k_hw-avoid-possible-infinite-loop-in.patch -ath9k_htc-configure-bssid-on-assoc-ibss-change.patch ath9k-enable-serialize_regmode-for-non-pcie-ar9287.patch asoc-tlv320aic3x-fix-codec-pll-configure-bug.patch btrfs-run-delayed-directory-updates-during-log-replay.patch @@ -53,3 +52,10 @@ pci-ehci-fix-crash-during-suspend-on-asus-computers.patch xhci-avoid-dead-ports-when-config_usb_xhci_hcd-n.patch ipheth-add-support-for-ipad.patch tracing-change-cpu-ring-buffer-state-from-tracing_cpumask.patch +vhost-don-t-forget-to-schedule.patch +raid5-delayed-stripe-fix.patch +rtl8187-brightness_set-can-not-sleep.patch +umem-fix-up-unplugging.patch +x86-cpufeature-rename-x86_feature_dts-to-x86_feature_dtherm.patch +md-raid5-do-not-add-data_offset-before-call-to-is_badblock.patch +md-raid10-don-t-try-to-recovery-unmatched-and-unused-chunks.patch diff --git a/queue-3.0/udf-avoid-run-away-loop-when-partition-table-length-is-corrupted.patch b/queue-3.0/udf-avoid-run-away-loop-when-partition-table-length-is-corrupted.patch index fd49b104a9c..aa66ca810d0 100644 --- a/queue-3.0/udf-avoid-run-away-loop-when-partition-table-length-is-corrupted.patch +++ b/queue-3.0/udf-avoid-run-away-loop-when-partition-table-length-is-corrupted.patch @@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman lvd = (struct logicalVolDesc *)bh->b_data; + table_len = le32_to_cpu(lvd->mapTableLength); + if (sizeof(*lvd) + table_len > sb->s_blocksize) { -+ udf_error(sb, "error loading logical volume descriptor: " ++ udf_error(sb, __func__, "error loading logical volume descriptor: " + "Partition table too long (%u > %lu)\n", table_len, + sb->s_blocksize - sizeof(*lvd)); + goto out_bh; diff --git a/queue-3.0/umem-fix-up-unplugging.patch b/queue-3.0/umem-fix-up-unplugging.patch new file mode 100644 index 00000000000..cfb02d1a976 --- /dev/null +++ b/queue-3.0/umem-fix-up-unplugging.patch @@ -0,0 +1,85 @@ +From 32587371ad3db2f9d335de10dbd8cffd4fff5669 Mon Sep 17 00:00:00 2001 +From: Tao Guo +Date: Wed, 13 Jun 2012 21:17:21 +0200 +Subject: umem: fix up unplugging + +From: Tao Guo + +commit 32587371ad3db2f9d335de10dbd8cffd4fff5669 upstream. + +Fix a regression introduced by 7eaceaccab5f40 ("block: remove per-queue +plugging"). In that patch, Jens removed the whole mm_unplug_device() +function, which used to be the trigger to make umem start to work. + +We need to implement unplugging to make umem start to work, or I/O will +never be triggered. + +Signed-off-by: Tao Guo +Cc: Neil Brown +Cc: Jens Axboe +Cc: Shaohua Li +Cc: +Acked-by: NeilBrown +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/block/umem.c | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +--- a/drivers/block/umem.c ++++ b/drivers/block/umem.c +@@ -513,6 +513,44 @@ static void process_page(unsigned long d + } + } + ++struct mm_plug_cb { ++ struct blk_plug_cb cb; ++ struct cardinfo *card; ++}; ++ ++static void mm_unplug(struct blk_plug_cb *cb) ++{ ++ struct mm_plug_cb *mmcb = container_of(cb, struct mm_plug_cb, cb); ++ ++ spin_lock_irq(&mmcb->card->lock); ++ activate(mmcb->card); ++ spin_unlock_irq(&mmcb->card->lock); ++ kfree(mmcb); ++} ++ ++static int mm_check_plugged(struct cardinfo *card) ++{ ++ struct blk_plug *plug = current->plug; ++ struct mm_plug_cb *mmcb; ++ ++ if (!plug) ++ return 0; ++ ++ list_for_each_entry(mmcb, &plug->cb_list, cb.list) { ++ if (mmcb->cb.callback == mm_unplug && mmcb->card == card) ++ return 1; ++ } ++ /* Not currently on the callback list */ ++ mmcb = kmalloc(sizeof(*mmcb), GFP_ATOMIC); ++ if (!mmcb) ++ return 0; ++ ++ mmcb->card = card; ++ mmcb->cb.callback = mm_unplug; ++ list_add(&mmcb->cb.list, &plug->cb_list); ++ return 1; ++} ++ + static int mm_make_request(struct request_queue *q, struct bio *bio) + { + struct cardinfo *card = q->queuedata; +@@ -523,6 +561,8 @@ static int mm_make_request(struct reques + *card->biotail = bio; + bio->bi_next = NULL; + card->biotail = &bio->bi_next; ++ if (bio->bi_rw & REQ_SYNC || !mm_check_plugged(card)) ++ activate(card); + spin_unlock_irq(&card->lock); + + return 0; diff --git a/queue-3.0/vhost-don-t-forget-to-schedule.patch b/queue-3.0/vhost-don-t-forget-to-schedule.patch new file mode 100644 index 00000000000..a5b908250e8 --- /dev/null +++ b/queue-3.0/vhost-don-t-forget-to-schedule.patch @@ -0,0 +1,59 @@ +From d550dda192c1bd039afb774b99485e88b70d7cb8 Mon Sep 17 00:00:00 2001 +From: Nadav Har'El +Date: Mon, 27 Feb 2012 15:07:29 +0200 +Subject: vhost: don't forget to schedule() + +From: Nadav Har'El + +commit d550dda192c1bd039afb774b99485e88b70d7cb8 upstream. + +This is a tiny, but important, patch to vhost. + +Vhost's worker thread only called schedule() when it had no work to do, and +it wanted to go to sleep. But if there's always work to do, e.g., the guest +is running a network-intensive program like netperf with small message sizes, +schedule() was *never* called. This had several negative implications (on +non-preemptive kernels): + + 1. Passing time was not properly accounted to the "vhost" process (ps and + top would wrongly show it using zero CPU time). + + 2. Sometimes error messages about RCU timeouts would be printed, if the + core running the vhost thread didn't schedule() for a very long time. + + 3. Worst of all, a vhost thread would "hog" the core. If several vhost + threads need to share the same core, typically one would get most of the + CPU time (and its associated guest most of the performance), while the + others hardly get any work done. + +The trivial solution is to add + + if (need_resched()) + schedule(); + +After doing every piece of work. This will not do the heavy schedule() all +the time, just when the timer interrupt decided a reschedule is warranted +(so need_resched returns true). + +Thanks to Abel Gordon for this patch. + +Signed-off-by: Nadav Har'El +Signed-off-by: Michael S. Tsirkin +Cc: Jean Delvare +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/vhost/vhost.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/vhost/vhost.c ++++ b/drivers/vhost/vhost.c +@@ -217,6 +217,8 @@ static int vhost_worker(void *data) + if (work) { + __set_current_state(TASK_RUNNING); + work->fn(work); ++ if (need_resched()) ++ schedule(); + } else + schedule(); + diff --git a/queue-3.0/x86-cpufeature-rename-x86_feature_dts-to-x86_feature_dtherm.patch b/queue-3.0/x86-cpufeature-rename-x86_feature_dts-to-x86_feature_dtherm.patch new file mode 100644 index 00000000000..6a72ba59e1f --- /dev/null +++ b/queue-3.0/x86-cpufeature-rename-x86_feature_dts-to-x86_feature_dtherm.patch @@ -0,0 +1,65 @@ +From: "H. Peter Anvin" +Date: Fri, 22 Jun 2012 10:58:06 -0700 +Subject: x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM + +From: "H. Peter Anvin" + +commit 4ad33411308596f2f918603509729922a1ec4411 upstream. + +It makes sense to label "Digital Thermal Sensor" as "DTS", but +unfortunately the string "dts" was already used for "Debug Store", and +/proc/cpuinfo is a user space ABI. + +Therefore, rename this to "dtherm". + +This conflict went into mainline via the hwmon tree without any x86 +maintainer ack, and without any kind of hint in the subject. + + a4659053 x86/hwmon: fix initialization of coretemp + +Reported-by: Jean Delvare +Link: http://lkml.kernel.org/r/4FE34BCB.5050305@linux.intel.com +Cc: Jan Beulich +Signed-off-by: H. Peter Anvin +[bwh: Backported to 3.2: drop the coretemp device table change] +Signed-off-by: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/include/asm/cpufeature.h | 2 +- + arch/x86/kernel/cpu/scattered.c | 2 +- + drivers/hwmon/coretemp.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/x86/include/asm/cpufeature.h ++++ b/arch/x86/include/asm/cpufeature.h +@@ -173,7 +173,7 @@ + #define X86_FEATURE_XSAVEOPT (7*32+ 4) /* Optimized Xsave */ + #define X86_FEATURE_PLN (7*32+ 5) /* Intel Power Limit Notification */ + #define X86_FEATURE_PTS (7*32+ 6) /* Intel Package Thermal Status */ +-#define X86_FEATURE_DTS (7*32+ 7) /* Digital Thermal Sensor */ ++#define X86_FEATURE_DTHERM (7*32+ 7) /* Digital Thermal Sensor */ + + /* Virtualization flags: Linux defined, word 8 */ + #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ +--- a/arch/x86/kernel/cpu/scattered.c ++++ b/arch/x86/kernel/cpu/scattered.c +@@ -31,7 +31,7 @@ void __cpuinit init_scattered_cpuid_feat + const struct cpuid_bit *cb; + + static const struct cpuid_bit __cpuinitconst cpuid_bits[] = { +- { X86_FEATURE_DTS, CR_EAX, 0, 0x00000006, 0 }, ++ { X86_FEATURE_DTHERM, CR_EAX, 0, 0x00000006, 0 }, + { X86_FEATURE_IDA, CR_EAX, 1, 0x00000006, 0 }, + { X86_FEATURE_ARAT, CR_EAX, 2, 0x00000006, 0 }, + { X86_FEATURE_PLN, CR_EAX, 4, 0x00000006, 0 }, +--- a/drivers/hwmon/coretemp.c ++++ b/drivers/hwmon/coretemp.c +@@ -709,7 +709,7 @@ static void __cpuinit get_core_online(un + * sensors. We check this bit only, all the early CPUs + * without thermal sensors will be filtered out. + */ +- if (!cpu_has(c, X86_FEATURE_DTS)) ++ if (!cpu_has(c, X86_FEATURE_DTHERM)) + return; + + if (!pdev) {