Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755791AbYHCFru (ORCPT ); Sun, 3 Aug 2008 01:47:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751573AbYHCFrm (ORCPT ); Sun, 3 Aug 2008 01:47:42 -0400 Received: from saeurebad.de ([85.214.36.134]:60443 "EHLO saeurebad.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751241AbYHCFrl (ORCPT ); Sun, 3 Aug 2008 01:47:41 -0400 From: Johannes Weiner To: "Yinghai Lu" Cc: "Ingo Molnar" , "Thomas Gleixner" , "H. Peter Anvin" , "Eric W. Biederman" , "Dhaval Giani" , "Mike Travis" , "Andrew Morton" , linux-kernel@vger.kernel.org Subject: Re: [PATCH 03/25] add dyn_array support References: <1217732365-16595-1-git-send-email-yhlu.kernel@gmail.com> <1217732365-16595-2-git-send-email-yhlu.kernel@gmail.com> <1217732365-16595-3-git-send-email-yhlu.kernel@gmail.com> <1217732365-16595-4-git-send-email-yhlu.kernel@gmail.com> <871w163fuw.fsf@saeurebad.de> <86802c440808022121u3dcdbda2s5ff463f4b330ca17@mail.gmail.com> <87sktm1yuu.fsf@saeurebad.de> <86802c440808022204s62ff2b35g391125babdb2e8e4@mail.gmail.com> <87od4a1x6y.fsf@saeurebad.de> <86802c440808022239i447f9627t98e5867b0b08e709@mail.gmail.com> Date: Sun, 03 Aug 2008 07:47:18 +0200 In-Reply-To: <86802c440808022239i447f9627t98e5867b0b08e709@mail.gmail.com> (Yinghai Lu's message of "Sat, 2 Aug 2008 22:39:01 -0700") Message-ID: <87k5ey1wgp.fsf@saeurebad.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2078 Lines: 64 Hi, "Yinghai Lu" writes: > On Sat, Aug 2, 2008 at 10:31 PM, Johannes Weiner wrote: >> Hi, >> >> "Yinghai Lu" writes: >> >>> On Sat, Aug 2, 2008 at 9:55 PM, Johannes Weiner wrote: >>>> Hi, >>>> >>>> "Yinghai Lu" writes: >>>> >>>>> On Sat, Aug 2, 2008 at 9:03 PM, Johannes Weiner wrote: >>>>>> Hi, >>>>>> >>>>>> Yinghai Lu writes: >>>>>> >>>>>>> could have crazy big arrays and allocate them in bootmem at init stage. >>>>>>> also also to allocate array according to size we need to use to avoid wasting >>>>>>> memory >>>>>>> use CONFIG_HAVE_DYN_ARRAY to enable it or not >>>>>>> >>>>>>> usage: >>>>>>> >>>>>>> |static struct irq_desc irq_desc_init __initdata = { >>>>>>> | .status = IRQ_DISABLED, >>>>>>> | .chip = &no_irq_chip, >>>>>>> | .handle_irq = handle_bad_irq, >>>>>>> | .depth = 1, >>>>>>> | .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock), >>>>>>> |#ifdef CONFIG_SMP >>>>>>> | .affinity = CPU_MASK_ALL >>>>>>> |#endif >>>>>>> |}; >>>>>>> | >>>>>>> |static void __init init_work(void *data) >>>>>>> |{ >>>>>>> | struct dyn_array *da = data; >>>>>>> | struct irq_desc *desc; >>>>>>> | int i; >>>>>>> | >>>>>>> | desc = *da->name; >>>>>> >>>>>> Where *da->name might be NULL... >>> >>> *da->name = __alloc_bootmem_nopanic(size, da->align, phys); >> >> Exactly. Now, look up the possible return values of >> __alloc_bootmem_nopanic and we are almost there... > > 04 fix that via allocating that all together No patch should introduce wrong behaviour but instead be an atomic switch to another working state. If 4 gets reverted for any reason whatsoever, you will be left with a buggy version. Hannes -- 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/