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

Commit 7767e126 authored by Paolo Galtieri's avatar Paolo Galtieri Committed by Linus Torvalds
Browse files

[PATCH] IPMI oops fix



While doing some testing I discovered that if the BIOS on a board does not
properly setup the DMI information it leads to a panic in the IPMI code.

The panic is due to dereferencing a pointer which is not initialized.  The
pointer is initialized in port_setup() and/or mem_setup() and used in
init_one_smi() and cleanup_one_si(), however if either port_setup() or
mem_setup() return ENODEV the pointer does not get initialized.

Signed-off-by: default avatarPaolo Galtieri <pgaltieri@mvista.com>
Acked-by: default avatarCorey Minyard <cminyard@mvista.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent ebbd1bce
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2399,6 +2399,7 @@ static int init_one_smi(int intf_num, struct smi_info **smi)
			new_smi->handlers->cleanup(new_smi->si_sm);
		kfree(new_smi->si_sm);
	}
	if (new_smi->io_cleanup)
		new_smi->io_cleanup(new_smi);

	return rv;
@@ -2518,6 +2519,7 @@ static void __exit cleanup_one_si(struct smi_info *to_clean)

	kfree(to_clean->si_sm);

	if (to_clean->io_cleanup)
		to_clean->io_cleanup(to_clean);
}