Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 250104
b: refs/heads/master
c: f4e0bcf
h: refs/heads/master
v: v3
  • Loading branch information
Guenter Roeck authored and Linus Torvalds committed May 24, 2011
1 parent db55275 commit c7bb648
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f2e8e2b0bf0f3a1819b25f6117a7f20bd15521d
refs/heads/master: f4e0bcf06b9771af04273473592aeeb860ca2816
20 changes: 18 additions & 2 deletions trunk/drivers/hwmon/coretemp.c
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,13 @@ static int create_core_data(struct platform_data *pdata,
if (attr_no > MAX_CORE_DATA - 1)
return -ERANGE;

/* Skip if it is a HT core, Not an error */
/*
* Provide a single set of attributes for all HT siblings of a core
* to avoid duplicate sensors (the processor ID and core ID of all
* HT siblings of a core is the same).
* Skip if a HT sibling of this core is already online.
* This is not an error.
*/
if (pdata->core_data[attr_no] != NULL)
return 0;

Expand Down Expand Up @@ -763,10 +769,20 @@ static void __cpuinit put_core_offline(unsigned int cpu)
if (pdata->core_data[indx] && pdata->core_data[indx]->cpu == cpu)
coretemp_remove_core(pdata, &pdev->dev, indx);

/* Online the HT version of this core, if any */
/*
* If a core is taken offline, but a HT sibling of the same core is
* still online, register the alternate sibling. This ensures that
* exactly one set of attributes is provided as long as at least one
* HT sibling of a core is online.
*/
for_each_sibling(i, cpu) {
if (i != cpu) {
get_core_online(i);
/*
* Display temperature sensor data for one HT sibling
* per core only, so abort the loop after one such
* sibling has been found.
*/
break;
}
}
Expand Down

0 comments on commit c7bb648

Please sign in to comment.