Commit fe6f8e91 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull powerpc fixes from Madhavan Srinivasan:

 - Fix preempt count leak in sysfs show paths

 - Fix error handling in pika_dtm_thread

 - Remove pmac_low_i2c_{lock,unlock}()

 - Enable all windfarms by default

 - Fix dead default for GUEST_STATE_BUFFER_TEST

 - Remove redundant preempt_disable|enable() calls from
   arch_irq_work_raise()

Thanks to Aboorva Devarajan, Ally Heev, Amit Machhiwal, Bart Van Assche,
Christophe Leroy, Christophe Leroy (CS GROUP), Dan Carpenter, Gautam
Menghani, Harsh Prateek Bora, Julian Braha, Krzysztof Kozlowski, Linus
Walleij, Ma Ke, Ritesh Harjani (IBM), and Sayali Patil

* tag 'powerpc-7.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  powerpc/time: Remove redundant preempt_disable|enable() calls from arch_irq_work_raise()
  powerpc/hv-gpci: fix preempt count leak in sysfs show paths
  powerpc: fix dead default for GUEST_STATE_BUFFER_TEST
  powerpc/powermac: Remove pmac_low_i2c_{lock,unlock}()
  powerpc/warp: Fix error handling in pika_dtm_thread
  powerpc: 82xx: fix uninitialized pointers with free attribute
  powerpc/g5: Enable all windfarms by default
parents b6a08b01 31467b23
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -83,11 +83,10 @@ config MSI_BITMAP_SELFTEST
	depends on DEBUG_KERNEL

config GUEST_STATE_BUFFER_TEST
	def_tristate n
	def_tristate KUNIT_ALL_TESTS
	prompt "Enable Guest State Buffer unit tests"
	depends on KUNIT
	depends on KVM_BOOK3S_HV_POSSIBLE
	default KUNIT_ALL_TESTS
	help
	  The Guest State Buffer is a data format specified in the PAPR.
	  It is by hcalls to communicate the state of L2 guests between
+2 −0
Original line number Diff line number Diff line
@@ -85,6 +85,8 @@ CONFIG_PMAC_SMU=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_WINDFARM=y
CONFIG_WINDFARM_PM81=y
CONFIG_WINDFARM_PM72=y
CONFIG_WINDFARM_RM31=y
CONFIG_WINDFARM_PM91=y
CONFIG_WINDFARM_PM112=y
CONFIG_WINDFARM_PM121=y
+0 −4
Original line number Diff line number Diff line
@@ -79,10 +79,6 @@ extern int pmac_i2c_match_adapter(struct device_node *dev,
				  struct i2c_adapter *adapter);


/* (legacy) Locking functions exposed to i2c-keywest */
extern int pmac_low_i2c_lock(struct device_node *np);
extern int pmac_low_i2c_unlock(struct device_node *np);

/* Access functions for platform code */
extern int pmac_i2c_open(struct pmac_i2c_bus *bus, int polled);
extern void pmac_i2c_close(struct pmac_i2c_bus *bus);
+4 −2
Original line number Diff line number Diff line
@@ -458,6 +458,10 @@ DEFINE_PER_CPU(u8, irq_work_pending);

#endif /* 32 vs 64 bit */

/*
 * Must be called with preemption disabled since it updates
 * per-CPU irq_work state and programs the local CPU decrementer.
 */
void arch_irq_work_raise(void)
{
	/*
@@ -471,10 +475,8 @@ void arch_irq_work_raise(void)
	 * which could get tangled up if we're messing with the same state
	 * here.
	 */
	preempt_disable();
	set_irq_work_pending_flag();
	set_dec(1);
	preempt_enable();
}

static void set_dec_or_work(u64 val)
+16 −8
Original line number Diff line number Diff line
@@ -210,7 +210,7 @@ static ssize_t processor_bus_topology_show(struct device *dev, struct device_att
			0, 0, buf, &n, arg);

	if (!ret)
		return n;
		goto out_success;

	if (ret != H_PARAMETER)
		goto out;
@@ -244,12 +244,14 @@ static ssize_t processor_bus_topology_show(struct device *dev, struct device_att
				starting_index, 0, buf, &n, arg);

		if (!ret)
			return n;
			goto out_success;

		if (ret != H_PARAMETER)
			goto out;
	}

out_success:
	put_cpu_var(hv_gpci_reqb);
	return n;

out:
@@ -278,7 +280,7 @@ static ssize_t processor_config_show(struct device *dev, struct device_attribute
			0, 0, buf, &n, arg);

	if (!ret)
		return n;
		goto out_success;

	if (ret != H_PARAMETER)
		goto out;
@@ -312,12 +314,14 @@ static ssize_t processor_config_show(struct device *dev, struct device_attribute
				starting_index, 0, buf, &n, arg);

		if (!ret)
			return n;
			goto out_success;

		if (ret != H_PARAMETER)
			goto out;
	}

out_success:
	put_cpu_var(hv_gpci_reqb);
	return n;

out:
@@ -346,7 +350,7 @@ static ssize_t affinity_domain_via_virtual_processor_show(struct device *dev,
			0, 0, buf, &n, arg);

	if (!ret)
		return n;
		goto out_success;

	if (ret != H_PARAMETER)
		goto out;
@@ -382,12 +386,14 @@ static ssize_t affinity_domain_via_virtual_processor_show(struct device *dev,
				starting_index, secondary_index, buf, &n, arg);

		if (!ret)
			return n;
			goto out_success;

		if (ret != H_PARAMETER)
			goto out;
	}

out_success:
	put_cpu_var(hv_gpci_reqb);
	return n;

out:
@@ -416,7 +422,7 @@ static ssize_t affinity_domain_via_domain_show(struct device *dev, struct device
			0, 0, buf, &n, arg);

	if (!ret)
		return n;
		goto out_success;

	if (ret != H_PARAMETER)
		goto out;
@@ -448,12 +454,14 @@ static ssize_t affinity_domain_via_domain_show(struct device *dev, struct device
					starting_index, 0, buf, &n, arg);

		if (!ret)
			return n;
			goto out_success;

		if (ret != H_PARAMETER)
			goto out;
	}

out_success:
	put_cpu_var(hv_gpci_reqb);
	return n;

out:
Loading