From patchwork Tue Feb 20 04:44:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 10229371 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7E80660392 for ; Tue, 20 Feb 2018 04:48:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 702BC2832D for ; Tue, 20 Feb 2018 04:48:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 64ED328382; Tue, 20 Feb 2018 04:48:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E1B4D2832D for ; Tue, 20 Feb 2018 04:48:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751385AbeBTEpI (ORCPT ); Mon, 19 Feb 2018 23:45:08 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:44034 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751345AbeBTEpF (ORCPT ); Mon, 19 Feb 2018 23:45:05 -0500 Received: by mail-pf0-f194.google.com with SMTP id 17so3017431pfw.11 for ; Mon, 19 Feb 2018 20:45:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=raGbaN7PHAAc79P/s2A8IITT9gRBZeALp4LyZnTBeTc=; b=jfdyGAlTZ8s1RiKz2GAufY1YVyWLIeBWJxB0COTkDPFCX4pGrGgk3ovdhYaoL89w7d 3EVZJ+QWWvajn1TT4fMA9YbhxouBXGghLo+dBjhPBFv4YIcClB/QrVNeqsc47mBO7GFe fhMozueDXNrnh9oM0cJKsGE3vbCKQwXpGc0rA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=raGbaN7PHAAc79P/s2A8IITT9gRBZeALp4LyZnTBeTc=; b=S7d31FMhBt0dUEu4awhR7hf6X/hZFE4kHG/nHo2K47Y+rXi/W8WKECd3fx0Uuv95nh 8TSWxKXTclikP/qFb/1x+SHtnbdZG83MKsLQQwNiPiGVuWRu3yBLCIm0DxvPAzVesaJM np5nQWLncoWo7OxhBaOT/KTsFjYX4D8ijt9XgYGlyRd7dnzQ2LLn5Hfu1QTQkGFeR2lL ZCtLCbVmwlzWUfX5I1qb6EEnAuzUNy8bmwxNzLdJfUkzyRHF42IStTq7W9vDbxUynoTN mPsSFXrDLvBMu9cW+ELiiYBKaNBqoHEeWshue9B7Q/9TssloCpqrBBwjHY4Kf3BpT+gK o2LQ== X-Gm-Message-State: APf1xPC2XvtGfS7NzuDaTtAtqKSHlaMPQE3+23bj0jqX9kcCspVGJQUQ J4V91FjKFYUcmBLclssCb0QNPw== X-Google-Smtp-Source: AH8x227pCYs3/uEZieT11TL1q+Uk9EeiHirpHHFUqFd8ID4F9GtbU6hWSj/dIze11rLNZ20cp0LOcQ== X-Received: by 10.99.124.7 with SMTP id x7mr3023266pgc.356.1519101904834; Mon, 19 Feb 2018 20:45:04 -0800 (PST) Received: from acourbot.tok.corp.google.com ([2401:fa00:4:1002:a6cd:a898:e07b:a331]) by smtp.gmail.com with ESMTPSA id q9sm783397pgs.28.2018.02.19.20.45.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Feb 2018 20:45:04 -0800 (PST) From: Alexandre Courbot To: Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Pawel Osciak , Marek Szyprowski , Tomasz Figa , Sakari Ailus Cc: Gustavo Padovan , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [RFCv4 08/21] [WAR] v4l2-ctrls: do not clone non-standard controls Date: Tue, 20 Feb 2018 13:44:12 +0900 Message-Id: <20180220044425.169493-9-acourbot@chromium.org> X-Mailer: git-send-email 2.16.1.291.g4437f3f132-goog In-Reply-To: <20180220044425.169493-1-acourbot@chromium.org> References: <20180220044425.169493-1-acourbot@chromium.org> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Only standard controls can be successfully cloned: handler_new_ref, used by v4l2_ctrl_request_clone(), forcibly calls v4l2_ctrl_new_std() which fails to find custom controls names, and we eventually hit the condition that name == NULL in v4l2_ctrl_new(). This prevents us from using non-standard controls with requests, but that is enough for testing purposes. Signed-off-by: Alexandre Courbot --- drivers/media/v4l2-core/v4l2-ctrls.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index 166647817efb..7a81aa5959c3 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -2772,6 +2772,11 @@ int v4l2_ctrl_request_clone(struct v4l2_ctrl_handler *hdl, if (filter && !filter(ctrl)) continue; err = handler_new_ref(hdl, ctrl, &new_ref, false); + if (err) { + printk("%s: handler_new_ref on control %x (%s) returned %d\n", __func__, ctrl->id, ctrl->name, err); + err = 0; + continue; + } if (err) break; if (from->is_request)