Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp958521pxb; Wed, 6 Apr 2022 05:19:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIwRNKB5HoE3TLpfXynHBEHwo/sTrYJm3ffYNr5TDozXg0DQUjVlCyK2N8hMDGwyFYo73Z X-Received: by 2002:a17:902:a9c2:b0:156:1859:2d05 with SMTP id b2-20020a170902a9c200b0015618592d05mr8454464plr.86.1649247570811; Wed, 06 Apr 2022 05:19:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649247570; cv=none; d=google.com; s=arc-20160816; b=lc20dEbSM5uX5EutLMDv83C5WOi381ScmIMYD06AXZPRTymBBILJ8A22vedMy3hACU a837ZkfE9guPRhTyqgphbhhoFMkCsqbwV9eU028d9rA86G3OEzBm6n/RXZquFrC/Q8g8 EEhuKLI30pRzXdM/3Mft34xdQNBrFwgxk1S4fA00x2nMoemj3fYXcFptgH41TuWHPqD0 XW12kqH/fIsmdnTHYzJ4UQkATzTqk9N3+mYOtdh+UhA/INnmZYev1bCldKWTxQ6WrfAx Db4PwhTAFFKF5Vm0H5eXgBPoder/RSwC2GQOFwz3nLW9kcRFFzeVKHVKKSMXS7guDHTp +nuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zaf7Niefzi99Tc6xl6Rn7LHJl+JipyJAZ5bC6t9GCoo=; b=YeXaF52XDXtpyFAXEmM0t8oEiqAtj+JU8hsSaxYWyE42w0l3dEQmmGYsEUvv9lFXc2 m7vx3O6PkKeX3HF/u7E/wKonsLf/8NeKKYfxYMP83PdxfCoQ1W8KK3BX4+FWJIr764CK yxmBdNv8mJGJktJCJD+DX+f+FWkDRpTStW9oEvodfXgthzb3tXBqk4Yu2TO1+zYIyjxK D0fkbVupTUfH0TpN3PEjC32K8pOeALzAk7EKfngPsq1dFvBVPTOnUiFhUUMgutFEsWIM T2KV9ISoQXZ6QxqUyeBF7aRx5dyPh7JXz4quDmrba05O8fQUXDzxJheDuBRAAOPR2mi6 WJOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ywnkCbhp; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id l21-20020a056a00141500b004fa7853d5dasi16919367pfu.107.2022.04.06.05.19.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:19:30 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ywnkCbhp; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BBD8952E57A; Wed, 6 Apr 2022 04:04:52 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244685AbiDEVBb (ORCPT + 99 others); Tue, 5 Apr 2022 17:01:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352485AbiDEKEi (ORCPT ); Tue, 5 Apr 2022 06:04:38 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4047EBABAF; Tue, 5 Apr 2022 02:53:20 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id DAEFEB81B13; Tue, 5 Apr 2022 09:53:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A61DC385A3; Tue, 5 Apr 2022 09:53:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649152397; bh=zUUeeZnaMW+gV0tRTgNtHUinIBWwkI9x7zikir/8Uio=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ywnkCbhpP2iTKCgpduU2MsIOb1HuXH2JZ49rdnswWT4KZkSjY4y93QTRN2em6NrH2 XqRYMYI7A5uuBziuAnOeQBPLW7Y4bL5rSoF4mYdBNqq295jUG9IpoFk7giDspcChZS 9XoYO39Xqm88sQGOyYGzDc+ZWz50OpHZ1Y+NmIRM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Paul Kocialkowski , Hans de Goede , Sakari Ailus , Sasha Levin Subject: [PATCH 5.15 762/913] media: i2c: ov5648: Fix lockdep error Date: Tue, 5 Apr 2022 09:30:24 +0200 Message-Id: <20220405070402.673138606@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070339.801210740@linuxfoundation.org> References: <20220405070339.801210740@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hans de Goede [ Upstream commit d4cb5d3c4cee28aa89b02bc33d930a6cf75e7f79 ] ov5648_state_init() calls ov5648_state_mipi_configure() which uses __v4l2_ctrl_s_ctrl[_int64](). This means that sensor->mutex (which is also sensor->ctrls.handler.lock) must be locked before calling ov5648_state_init(). ov5648_state_mipi_configure() is also used in other places where the lock is already held so it cannot be changed itself. Note this is based on an identical (tested) fix for the ov8865 driver, this has only been compile-tested. Cc: Paul Kocialkowski Reviewed-by: Paul Kocialkowski Signed-off-by: Hans de Goede Signed-off-by: Sakari Ailus Signed-off-by: Sasha Levin --- drivers/media/i2c/ov5648.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/ov5648.c b/drivers/media/i2c/ov5648.c index 78040f0ac02f..ef8b52dc9401 100644 --- a/drivers/media/i2c/ov5648.c +++ b/drivers/media/i2c/ov5648.c @@ -1778,8 +1778,14 @@ static int ov5648_state_configure(struct ov5648_sensor *sensor, static int ov5648_state_init(struct ov5648_sensor *sensor) { - return ov5648_state_configure(sensor, &ov5648_modes[0], - ov5648_mbus_codes[0]); + int ret; + + mutex_lock(&sensor->mutex); + ret = ov5648_state_configure(sensor, &ov5648_modes[0], + ov5648_mbus_codes[0]); + mutex_unlock(&sensor->mutex); + + return ret; } /* Sensor Base */ -- 2.34.1