On Tue 21. Feb - 17:24:24, Jeff Garzik wrote: > On 02/18/2012 02:57 PM, Holger Macht wrote: > >On Sa 18. Feb - 10:46:04, Hugh Dickins wrote: > >>On Sat, 18 Feb 2012, Holger Macht wrote: > >>>How about that one? > >> > >>It's more broken than that. Here's my attempt. It boots on the > >>systems with dock_station_count 0, and it boots on my laptop with > >>dock_station_count 2; but I don't actually have any docking station, > >>so it still doesn't test very much (dock is 0 after the loop). > > > >Well, there doesn't have to actually exist a physical dock station (or > >bay device) for dock_station_count to be> 0. It just tells that the > >ACPI objects are present and thus the system is capable of it. > > > >So does this function actually also break on your laptop and you're > >getting the oops there, too? > > > >>I have no idea if what goes on in the loop is correct, but it looks > >>to me as if (as predicted) there's further breakage, that it would > >>have been writing beyond the end of what it allocated if I did have > >>a docking station. > >> > >>Hugh > >> > >>[PATCH] dock: fix bootup oops and other dock_link breakage > >> > >>dock_link_device() and dock_unlink_device() should bail out early > >>to avoid oops on zero-length kmalloc() when dock_station_count is 0. > >> > >>But isn't there an off-by-one in that kmalloc() length anyway? > >>An extra NULL appended at the end suggests so. > >> > >>Rework the ordering with gotos on failure to fix several issues. > >> > >>And presumably dock_unlink_device() should be presenting the same > >>interface as dock_link_device(), with NULL returned when none found. > >> > >>Signed-off-by: Hugh Dickins > > > >Fine with me. > > So, just to be clear, the preferred patch is Hugh's, and I should > drop your earlier proposed fix found in this thread? Correct. > And what about that warning? You mean the fix for the compile error when compiling with CONFIG_ACPI_DOCK=n? Here it is again: [PATCH] acpi: Fix compiler error when setting CONFIG_ACPI_DOCK=n When compiling with CONFIG_ACPI_DOCK=n, is_registered_hotplug_dock_device() needs to be defined Signed-off-by: Holger Macht --- include/acpi/acpi_drivers.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h index 3c4e381..3319574 100644 --- a/include/acpi/acpi_drivers.h +++ b/include/acpi/acpi_drivers.h @@ -155,6 +155,10 @@ static inline int register_hotplug_dock_device(acpi_handle handle, static inline void unregister_hotplug_dock_device(acpi_handle handle) { } +static inline int is_registered_hotplug_dock_device(const struct acpi_dock_ops *ops) +{ + return 0; +} static inline struct device **dock_link_device(acpi_handle handle) { return NULL; -- 1.7.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/