Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp825131ybt; Fri, 19 Jun 2020 14:59:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxACMmoHPOJLsUOgHdEPo9N9wCOsBG7IHE62GJL63w9U9wwnrWyh/jc0PY5N/cVtLpvm86L X-Received: by 2002:a17:906:3e0c:: with SMTP id k12mr5357177eji.441.1592603997317; Fri, 19 Jun 2020 14:59:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592603997; cv=none; d=google.com; s=arc-20160816; b=HHLnDLVqSEkFp95sbPw4laSf2hyR4aO1K6uqZb8yJt7/+ElLU796FEZnmJyRdCVk1o DFwCZHSMl0Q9NHs0J01lEXo34jTw0/vlyblrEyUKx+m0a8Krkzn/31UpEa5xsS74LbrQ 2o2E1XV6Nc36dY0yz8KcRYPcdYg/OeWSmTdI/tmFBqZMshxdGD9+TES9bMYTW5fz3s/2 UIXEu0yem6xfp1PUxdkOwhwUyWzNOQmBmGxNqDmjlhnyAOaV4xpuOTs220s/vNY63GsL SaHoiDL1EZgqMQ06jQAqMw3k0fv01/DkQjq7d9wIbV5VpvU5+d6UUJZ3LZYaYwt8Zca/ ABTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=oX/P7lddg3BHOYoajXAuc7IK9XcKnArVL6QchHr+s0s=; b=Kd1C0xPDgcPw+R05eN+nsTjRFvql/gJ5F8BD4vpa2WzkYKzi1VBcVBSxL9E95Z+zU+ FuS5K9lgKsLjICCWNNLOJXq2AitrwznCo3Mh+X6SsRFCRIZXIsxdEDmZDjRvlJG3tQS6 xPnsJS0HS0uwZj7vbr83TYcumkAHXmkGTheF4Kb3RrPMoq9MyUO1NrXUMvFqabRd+w0K MF6QtBLDwodoWrScIfNgvPIUwQTGx0z9dWIp2pKaWMNAFu9Q3CR/BipuiOsFHhQe8pX0 oF7Ao8iVQ5DLZ4ee1790hu79wB2VzRckUM3nsy8JPSsbMXOYtV75fnorzWpNiAblIq0K 0NYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=daQX8+KF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l21si4479853eds.400.2020.06.19.14.59.35; Fri, 19 Jun 2020 14:59:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=daQX8+KF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392153AbgFSPVF (ORCPT + 99 others); Fri, 19 Jun 2020 11:21:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:47592 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404125AbgFSPQ6 (ORCPT ); Fri, 19 Jun 2020 11:16:58 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0BC802080C; Fri, 19 Jun 2020 15:16:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592579817; bh=EKcNGXPVsXSo798RYkf9ibs72j1OBs1xifDbNicZdtQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=daQX8+KFTrG2+FvhYAdOq+GOL4cHv0+a3RLvb9ilyUD1izoMVRh/dzRj56to38kr4 1npuQnjvtyDC28Byx5NfmS4AIt+EraSvoQEbTiZ6FkEHPqzTesCh1uGyoF41rEuG4Z UlNUzheYmBFGOSGV5AUyW9Fs86Yypqtm0EI711d0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bingbu Cao , Tomasz Figa , Sakari Ailus , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.7 005/376] media: staging: imgu: do not hold spinlock during freeing mmu page table Date: Fri, 19 Jun 2020 16:28:43 +0200 Message-Id: <20200619141710.613792826@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141710.350494719@linuxfoundation.org> References: <20200619141710.350494719@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bingbu Cao [ Upstream commit e1ebe9f9c88e5a78fcc4670a9063c9b3cd87dda4 ] ImgU need set the mmu page table in memory as uncached, and set back to write-back when free the page table by set_memory_wb(), set_memory_wb() can not do flushing without interrupt, so the spinlock should not be hold during ImgU page alloc and free, the interrupt should be enabled during memory cache flush. This patch release spinlock before freeing pages table. Signed-off-by: Bingbu Cao Reviewed-by: Tomasz Figa Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/staging/media/ipu3/ipu3-mmu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/ipu3/ipu3-mmu.c b/drivers/staging/media/ipu3/ipu3-mmu.c index 5f3ff964f3e7..cb9bf5fb29a5 100644 --- a/drivers/staging/media/ipu3/ipu3-mmu.c +++ b/drivers/staging/media/ipu3/ipu3-mmu.c @@ -174,8 +174,10 @@ static u32 *imgu_mmu_get_l2pt(struct imgu_mmu *mmu, u32 l1pt_idx) spin_lock_irqsave(&mmu->lock, flags); l2pt = mmu->l2pts[l1pt_idx]; - if (l2pt) - goto done; + if (l2pt) { + spin_unlock_irqrestore(&mmu->lock, flags); + return l2pt; + } spin_unlock_irqrestore(&mmu->lock, flags); @@ -190,8 +192,9 @@ static u32 *imgu_mmu_get_l2pt(struct imgu_mmu *mmu, u32 l1pt_idx) l2pt = mmu->l2pts[l1pt_idx]; if (l2pt) { + spin_unlock_irqrestore(&mmu->lock, flags); imgu_mmu_free_page_table(new_l2pt); - goto done; + return l2pt; } l2pt = new_l2pt; @@ -200,7 +203,6 @@ static u32 *imgu_mmu_get_l2pt(struct imgu_mmu *mmu, u32 l1pt_idx) pteval = IPU3_ADDR2PTE(virt_to_phys(new_l2pt)); mmu->l1pt[l1pt_idx] = pteval; -done: spin_unlock_irqrestore(&mmu->lock, flags); return l2pt; } -- 2.25.1