Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: show number of core_siblings instead of thread_siblings in /proc/cpuinfo amd-iommu: fix iommu flag masks x86: initialize io_bitmap_base on 32bit x86: gettimeofday() vDSO: fix segfault when tv == NULL
This commit is contained in:
commit
5e30302b9e
4 changed files with 18 additions and 14 deletions
|
@ -49,10 +49,10 @@
|
||||||
#define IVHD_DEV_EXT_SELECT 0x46
|
#define IVHD_DEV_EXT_SELECT 0x46
|
||||||
#define IVHD_DEV_EXT_SELECT_RANGE 0x47
|
#define IVHD_DEV_EXT_SELECT_RANGE 0x47
|
||||||
|
|
||||||
#define IVHD_FLAG_HT_TUN_EN 0x00
|
#define IVHD_FLAG_HT_TUN_EN_MASK 0x01
|
||||||
#define IVHD_FLAG_PASSPW_EN 0x01
|
#define IVHD_FLAG_PASSPW_EN_MASK 0x02
|
||||||
#define IVHD_FLAG_RESPASSPW_EN 0x02
|
#define IVHD_FLAG_RESPASSPW_EN_MASK 0x04
|
||||||
#define IVHD_FLAG_ISOC_EN 0x03
|
#define IVHD_FLAG_ISOC_EN_MASK 0x08
|
||||||
|
|
||||||
#define IVMD_FLAG_EXCL_RANGE 0x08
|
#define IVMD_FLAG_EXCL_RANGE 0x08
|
||||||
#define IVMD_FLAG_UNITY_MAP 0x01
|
#define IVMD_FLAG_UNITY_MAP 0x01
|
||||||
|
@ -569,19 +569,19 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
|
||||||
* First set the recommended feature enable bits from ACPI
|
* First set the recommended feature enable bits from ACPI
|
||||||
* into the IOMMU control registers
|
* into the IOMMU control registers
|
||||||
*/
|
*/
|
||||||
h->flags & IVHD_FLAG_HT_TUN_EN ?
|
h->flags & IVHD_FLAG_HT_TUN_EN_MASK ?
|
||||||
iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) :
|
iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) :
|
||||||
iommu_feature_disable(iommu, CONTROL_HT_TUN_EN);
|
iommu_feature_disable(iommu, CONTROL_HT_TUN_EN);
|
||||||
|
|
||||||
h->flags & IVHD_FLAG_PASSPW_EN ?
|
h->flags & IVHD_FLAG_PASSPW_EN_MASK ?
|
||||||
iommu_feature_enable(iommu, CONTROL_PASSPW_EN) :
|
iommu_feature_enable(iommu, CONTROL_PASSPW_EN) :
|
||||||
iommu_feature_disable(iommu, CONTROL_PASSPW_EN);
|
iommu_feature_disable(iommu, CONTROL_PASSPW_EN);
|
||||||
|
|
||||||
h->flags & IVHD_FLAG_RESPASSPW_EN ?
|
h->flags & IVHD_FLAG_RESPASSPW_EN_MASK ?
|
||||||
iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) :
|
iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) :
|
||||||
iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN);
|
iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN);
|
||||||
|
|
||||||
h->flags & IVHD_FLAG_ISOC_EN ?
|
h->flags & IVHD_FLAG_ISOC_EN_MASK ?
|
||||||
iommu_feature_enable(iommu, CONTROL_ISOC_EN) :
|
iommu_feature_enable(iommu, CONTROL_ISOC_EN) :
|
||||||
iommu_feature_disable(iommu, CONTROL_ISOC_EN);
|
iommu_feature_disable(iommu, CONTROL_ISOC_EN);
|
||||||
|
|
||||||
|
|
|
@ -1203,6 +1203,8 @@ void __cpuinit cpu_init(void)
|
||||||
load_TR_desc();
|
load_TR_desc();
|
||||||
load_LDT(&init_mm.context);
|
load_LDT(&init_mm.context);
|
||||||
|
|
||||||
|
t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
|
||||||
|
|
||||||
#ifdef CONFIG_DOUBLEFAULT
|
#ifdef CONFIG_DOUBLEFAULT
|
||||||
/* Set up doublefault TSS pointer in the GDT */
|
/* Set up doublefault TSS pointer in the GDT */
|
||||||
__set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
|
__set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
|
||||||
|
|
|
@ -14,7 +14,7 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
|
||||||
if (c->x86_max_cores * smp_num_siblings > 1) {
|
if (c->x86_max_cores * smp_num_siblings > 1) {
|
||||||
seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
|
seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
|
||||||
seq_printf(m, "siblings\t: %d\n",
|
seq_printf(m, "siblings\t: %d\n",
|
||||||
cpumask_weight(cpu_sibling_mask(cpu)));
|
cpumask_weight(cpu_core_mask(cpu)));
|
||||||
seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
|
seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
|
||||||
seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
|
seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
|
||||||
seq_printf(m, "apicid\t\t: %d\n", c->apicid);
|
seq_printf(m, "apicid\t\t: %d\n", c->apicid);
|
||||||
|
|
|
@ -104,11 +104,13 @@ notrace int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
if (likely(gtod->sysctl_enabled && gtod->clock.vread)) {
|
if (likely(gtod->sysctl_enabled && gtod->clock.vread)) {
|
||||||
|
if (likely(tv != NULL)) {
|
||||||
BUILD_BUG_ON(offsetof(struct timeval, tv_usec) !=
|
BUILD_BUG_ON(offsetof(struct timeval, tv_usec) !=
|
||||||
offsetof(struct timespec, tv_nsec) ||
|
offsetof(struct timespec, tv_nsec) ||
|
||||||
sizeof(*tv) != sizeof(struct timespec));
|
sizeof(*tv) != sizeof(struct timespec));
|
||||||
do_realtime((struct timespec *)tv);
|
do_realtime((struct timespec *)tv);
|
||||||
tv->tv_usec /= 1000;
|
tv->tv_usec /= 1000;
|
||||||
|
}
|
||||||
if (unlikely(tz != NULL)) {
|
if (unlikely(tz != NULL)) {
|
||||||
/* Avoid memcpy. Some old compilers fail to inline it */
|
/* Avoid memcpy. Some old compilers fail to inline it */
|
||||||
tz->tz_minuteswest = gtod->sys_tz.tz_minuteswest;
|
tz->tz_minuteswest = gtod->sys_tz.tz_minuteswest;
|
||||||
|
|
Loading…
Add table
Reference in a new issue