Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp1397378rdb; Wed, 20 Sep 2023 08:05:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHaB0lp9j2I/JNzWZwOo65hKpsqTtE4WAjoj183V9pZPW95NCAF/GzzDKjcGUT96U3+lOdr X-Received: by 2002:a17:90b:2388:b0:269:55a2:952c with SMTP id mr8-20020a17090b238800b0026955a2952cmr2595566pjb.40.1695222339715; Wed, 20 Sep 2023 08:05:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695222339; cv=none; d=google.com; s=arc-20160816; b=BIICXCZ8Vf0S3Ir3Qew1gx/Twc6cZfFxo9QWAixt6sFf/ukTaSYSeikeSN72EmhUQm PpisWzw7aLmW6lipKB/Mg1opCSTNVlrVQHLaLF35vyTa4NEROHcS/tFqHkG9c1tTPxTj kc8NxVmaD7J24Xb91jrYCSipgTYMhmSctfN4zJbFPLsaY7fRTTCfNm9jIvgkCLgnkBAi +owDnqch8aoxewTFTtcl2Ms0P6eavb8mHgaOVzRDvOd2PvAROxvq4voKBp++iR8cYYRW QoNSlfkiU6+gw3qWHcoU3DsCIsXLq16S8y317oK6vYkC6+MXFRxgwyhhIUmN2T9k92Oi RkGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=K04NXoJ7Y9q3wftpmynpfOQNlwxqB3uOMfQ/7UMdNAg=; fh=rvfjkWKWQ7H3dxwU/Mrzlf1SBsZ3Tuo/EBElQFetDNM=; b=0gdgSU0/KvrWPYWXXUCCy06GWYJ9eKGq/yN+ElpHxyHqr2TXunaZa7KEFknWoDsTEy yIvtv1oqD01SQY9Ltsq/ZcriDmVl9K3Nq10bN7Gu3akJ0HJiDoFT62CgKHkOCsWo1Y7O rQnNHGPUHwBcdNUb/ktoMhWzSuJ2qif1PGgBIym+pYZn6bI7O0+v9ah4DFg4xLbVEd9d rvaIzjk7ehkj3UQ3GSxtuyCjhoVpF6ABU+n90yZ4MD8VOGfSXpxSPJHRtbOWQe01prji 552rMZJGttJKt4qvK3zPnOTlRaRsIzMQ8ZXv4OBp2Vx2ehkKwG/I5tju4SfiM1hhevhb evCg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id fw3-20020a17090b128300b0026f75d932a8si1640419pjb.185.2023.09.20.08.05.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Sep 2023 08:05:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 427AD818597E; Wed, 20 Sep 2023 07:57:04 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235266AbjITO4k (ORCPT + 99 others); Wed, 20 Sep 2023 10:56:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235096AbjITO4i (ORCPT ); Wed, 20 Sep 2023 10:56:38 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10A10A9; Wed, 20 Sep 2023 07:56:33 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3E83CC433C9; Wed, 20 Sep 2023 14:56:29 +0000 (UTC) Message-ID: <470682b4-c14b-4237-bc46-fddfdd085026@xs4all.nl> Date: Wed, 20 Sep 2023 16:56:27 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 45/49] media: core: Add bitmap manage bufs array entries Content-Language: en-US, nl To: Benjamin Gaignard , mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com, ming.qian@nxp.com, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, nicolas.dufresne@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, kernel@collabora.com References: <20230914133323.198857-1-benjamin.gaignard@collabora.com> <20230914133323.198857-46-benjamin.gaignard@collabora.com> <1142bbb4-b8f1-44ec-962e-9347a231782f@xs4all.nl> <20b6b93e-eef8-3d7b-a3c2-795f220059d4@collabora.com> From: Hans Verkuil In-Reply-To: <20b6b93e-eef8-3d7b-a3c2-795f220059d4@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Wed, 20 Sep 2023 07:57:04 -0700 (PDT) On 20/09/2023 16:30, Benjamin Gaignard wrote: > >>>       num_buffers = min_t(unsigned int, num_buffers, >>>                   q->max_allowed_buffers - vb2_get_num_buffers(q)); >>>   -    first_index = vb2_get_num_buffers(q); >>> +    first_index = bitmap_find_next_zero_area(q->bufs_map, q->max_allowed_buffers, >>> +                         0, num_buffers, 0); >>>         if (first_index >= q->max_allowed_buffers) >>>           return 0; >>> @@ -675,7 +678,13 @@ static void __vb2_queue_free(struct vb2_queue *q, unsigned int buffers) >>>     struct vb2_buffer *vb2_get_buffer(struct vb2_queue *q, unsigned int index) >>>   { >>> -    if (index < q->num_buffers) >>> +    if (!q->bufs_map || !q->bufs) >>> +        return NULL; >> I don't think this can ever happen. > > I got kernel crash without them. > I will keep them. What is the backtrace? How can this happen? It feels wrong that this can be called with a vb2_queue that apparently is not properly initialized. >>> + >>> +    return (bitmap_weight(q->bufs_map, q->max_allowed_buffers) > 0); >> How about: >> >>     return vb2_get_num_buffers(q) > 0; > > vb2_get_num_buffers is defined in videobuf2-core.c, I'm not sure that > an inline function could depend of a module function. Not a problem. E.g. v4l2-ctrls.h is full of such static inlines. Regards, Hans