Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937382AbXHJNgp (ORCPT ); Fri, 10 Aug 2007 09:36:45 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1763828AbXHJNgf (ORCPT ); Fri, 10 Aug 2007 09:36:35 -0400 Received: from mtagate2.de.ibm.com ([195.212.29.151]:29294 "EHLO mtagate2.de.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756241AbXHJNge (ORCPT ); Fri, 10 Aug 2007 09:36:34 -0400 Date: Fri, 10 Aug 2007 15:37:28 +0200 From: Cornelia Huck To: Pavel Emelyanov Cc: Kay Sievers , Greg KH , Linux Kernel Mailing List , Andrew Morton , devel@openvz.org Subject: Re: [PATCH] Fix OOPS in show_uevent() Message-ID: <20070810153728.7cf99fc1@gondolin.boeblingen.de.ibm.com> In-Reply-To: <46BC666F.6010409@openvz.org> References: <46BC3A57.5070404@openvz.org> <3ae72650708100523w45b4d5cbxf0ffbdc11cfb5e45@mail.gmail.com> <20070810143927.619d0640@gondolin.boeblingen.de.ibm.com> <46BC666F.6010409@openvz.org> Organization: IBM Deutschland Entwicklung GmbH Vorsitzender des Aufsichtsrats: Martin Jetter =?ISO-8859-15?Q?Gesch=E4ftsf=FChrung:?= Herbert Kircher Sitz der Gesellschaft: =?ISO-8859-15?Q?B=F6blingen?= Registergericht: Amtsgericht Stuttgart, HRB 243294 X-Mailer: Claws Mail 2.10.0 (GTK+ 2.10.13; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2035 Lines: 46 On Fri, 10 Aug 2007 17:21:51 +0400, Pavel Emelyanov wrote: > Cornelia Huck wrote: > > On Fri, 10 Aug 2007 14:23:56 +0200, > > "Kay Sievers" wrote: > > > >> But we still don't update the remaining buffer size and the remaining > >> array fields which are left after the call. Shouldn't we instead just > >> change the: > >> int (*dev_uevent)(struct device *dev, > >> char **envp, int num_envp, > >> char *buffer, int buffer_size); > >> to: > >> int (*dev_uevent)(struct device *dev, > >> char **envp, int num_envp, int *cur_index, > >> char *buffer, int buffer_size, int *cur_len); > >> > >> like we do for: > >> int add_uevent_var(char **envp, int num_envp, int *cur_index, > >> char *buffer, int buffer_size, int *cur_len, > >> const char *format, ...) > >> > >> and along with the change of the callers, we would update the values > >> properly, so the next call has the correct numbers? There are 6 > >> classes and something like 12 buses using this method, so it shouldn't > >> be too much trouble. > > isn't it better to change > int (*dev_uevent)(struct device *dev, > char **envp, int num_envp, > char *buffer, int buffer_size); > to > int (*dev_uevent)(struct device *dev, > char **envp, int num_envp, > char **buffer); > and alter the buffer pointer inside? But the function wants to know the buffer_size, doesn't it? (And the caller can make the adjustments easily; it saves duplicated code.) - 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/