Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e30302b authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-fixes-for-linus' of...

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
parents 35984d73 35d11680
Loading
Loading
Loading
Loading
+8 −8
Original line number Original line Diff line number Diff line
@@ -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);


+2 −0
Original line number Original line Diff line number Diff line
@@ -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);
+1 −1
Original line number Original line Diff line number Diff line
@@ -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);
+7 −5
Original line number Original line Diff line number Diff line
@@ -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;