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

Commit dd52cb87 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'platform-drivers-x86-v4.17-4' of git://git.infradead.org/linux-platform-drivers-x86

Pull x86 platform driver fix from Andy Shevchenko:
 "Fix NULL pointer dereference in asus-wmi on rfkill cleanup.

  The effective change is just one new condition - two lines of code.
  But it required moving one static helper function, which is why the
  diff looks a bit bigger"

* tag 'platform-drivers-x86-v4.17-4' of git://git.infradead.org/linux-platform-drivers-x86:
  platform/x86: asus-wmi: Fix NULL pointer dereference
parents 88a86765 32ffd6e8
Loading
Loading
Loading
Loading
+13 −10
Original line number Original line Diff line number Diff line
@@ -163,6 +163,16 @@ MODULE_LICENSE("GPL");


static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL };
static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL };


static bool ashs_present(void)
{
	int i = 0;
	while (ashs_ids[i]) {
		if (acpi_dev_found(ashs_ids[i++]))
			return true;
	}
	return false;
}

struct bios_args {
struct bios_args {
	u32 arg0;
	u32 arg0;
	u32 arg1;
	u32 arg1;
@@ -1025,6 +1035,9 @@ static int asus_new_rfkill(struct asus_wmi *asus,


static void asus_wmi_rfkill_exit(struct asus_wmi *asus)
static void asus_wmi_rfkill_exit(struct asus_wmi *asus)
{
{
	if (asus->driver->wlan_ctrl_by_user && ashs_present())
		return;

	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P5");
	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P5");
	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P6");
	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P6");
	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P7");
	asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P7");
@@ -2121,16 +2134,6 @@ static int asus_wmi_fan_init(struct asus_wmi *asus)
	return 0;
	return 0;
}
}


static bool ashs_present(void)
{
	int i = 0;
	while (ashs_ids[i]) {
		if (acpi_dev_found(ashs_ids[i++]))
			return true;
	}
	return false;
}

/*
/*
 * WMI Driver
 * WMI Driver
 */
 */