From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161112AbcAON1Y (ORCPT ); Fri, 15 Jan 2016 08:27:24 -0500 Received: from mx2.suse.de ([195.135.220.15]:44110 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161062AbcAON1W convert rfc822-to-8bit (ORCPT ); Fri, 15 Jan 2016 08:27:22 -0500 Date: Fri, 15 Jan 2016 14:27:19 +0100 From: Jean Delvare To: Andy Lutomirski Cc: Pali =?UTF-8?B?Um9ow6Fy?= , Jean Delvare , Andy Lutomirski , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, stable Subject: Re: [PATCH] dell-wmi: Stop storing pointers to DMI tables Message-ID: <20160115142719.36eea015@endymion.delvare> In-Reply-To: References: <119170b95d373bc943eb4f16818239bac9fa6c59.1451832667.git.luto@kernel.org> <20160112142538.GB11560@pali> Organization: SUSE Linux X-Mailer: Claws Mail 3.10.1 (GTK+ 2.24.23; x86_64-suse-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andy, Sorry for the late reply. On Wed, 13 Jan 2016 14:28:18 -0800, Andy Lutomirski wrote: > [cc: Jean Delvare] > > On Tue, Jan 12, 2016 at 6:25 AM, Pali Rohár wrote: > > On Monday 11 January 2016 13:58:20 Andy Lutomirski wrote: > >> On Sun, Jan 3, 2016 at 6:52 AM, Andy Lutomirski wrote: > >> > The dmi_walk function maps the DMI table, walks it, and unmaps it. > >> > This means that the dell_bios_hotkey_table that find_hk_type stores > >> > points to unmapped memory by the time it gets read. > >> > > >> > I've been able to trigger crashes caused by the stale pointer a > >> > couple of times, but never on a stock kernel. > >> > > >> > Fix it by generating the keymap in the dmi_walk callback instead of > >> > storing a pointer. > >> > >> Quick ping: has anyone had a chance to look at this? > > > > Hi Andy, I looked at this patch, but I think some people from -mm or DMI > > code should look at it as it is memory problem... We also has one in > > dell-laptop.ko (wrong API usage) and so -mm people could know it better. > > Let's ask: > > Jean, am I right that drivers must not store pointers to DMI tables > that they find through dmi_walk? Yes, you are right. > Is there any alternative interface > that could be used to get a longer-lived pointer to DMI tables, or > should drivers just parse them and copy out any info needed from the > dmi_walk callback? There is no alternative for OEM type records. Drivers are indeed expected to copy the information they need to their own buffers. > There are at least two platform drivers (dell-wmi and dell-laptop) > that don't play well with the current interface. This patch is > intended to fix one of them. Couldn't see any problem with dell-laptop. -- Jean Delvare SUSE L3 Support