From patchwork Fri Feb 16 03:58:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 201892 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp287219dyb; Thu, 15 Feb 2024 20:12:55 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWugNb7ScjaDwPjYMBk8LV7Fr7X9PsWKuuRxuDfFhHEpBjd9tf4uF9tOuRWxYCoJ3tJHt6p2adcdBljkoM3xrDjBsQPMw== X-Google-Smtp-Source: AGHT+IELcVZF1aOahkn6wWODveXNBLZDKYhqFXfJa9DdeMmR2GZocXAffrSYWZ7in/wJorib8aU+ X-Received: by 2002:a17:90a:f305:b0:299:2baa:154c with SMTP id ca5-20020a17090af30500b002992baa154cmr1844347pjb.48.1708056775573; Thu, 15 Feb 2024 20:12:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708056775; cv=pass; d=google.com; s=arc-20160816; b=Ra5M9nmp+q08nmape1zj7ErXrGDIqmVPQvEIGM6nh1Y7EBqtwaIUEZQ2PhFv+QYPVd P8w4FsMS2Dzx06Tzz8cZmR0bHr0hxA0PfhbNOifd6y8T7E/kSBYsIjdzlNCCo4+s1Cdh Yy1/DKPWkz5rWpjYU6NK81rjkafKSsnazkFKY759dsQvbkX+qAKJCDOieNrm/JRKtOHs 7ifkrOOdVlPPmSVduFfL1YlRdPytVfb9P9D4nh5ac21Hl+aJpM/69xnv9KQBaOX21ZF/ Ey/Hj01QNlVYmBZKEuGu4yYD5lvtghswEtaf3OBp6zrRL0vVmKGhztpJjRnaQ4ohRNu4 Ghjw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gOumzVryGSn+JBsbAAqM1ovhyepgE+54jIVWFr3RhWk=; fh=Dz/sGw+9lzNFrkoqVn+ZLx/Xi4dC8owgH35eQDavKgI=; b=P7Lj/yuWQvWIL4TrTOOsOYOw7BNP31BV+3rQ4r6DEIJS+L5Egev/AWoQw7ZEYr/KoJ Bngsy7LWZHkwAqfcSMBFBD2Ygtfo79yCgRpbc0ER6/f0MPFiuFebFyjjBkgsTD7c5VdV omliGIuUZbhMS6/0K50WqUo2C5JqHoii6xfXHl8RaCP7aS7m3zsXhkbbhbwzDeZ3Loq0 FMsfaeFYjS3Xef0kYwleEu1V7GlrPcAkzwtDqj9ozL2AiyWAkp7Ehszk9lYUcD4uyxSh AmKPGM5rycR9Eb9tDq5KE6zVlnWFRjnGsZ6HfAxhBNlY2b42156z/X9cLZzEVFIrmq5L q4Pw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Oyh3l+g9; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-68002-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-68002-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id fh5-20020a17090b034500b0029897e0c0d2si4147377pjb.82.2024.02.15.20.12.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 20:12:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-68002-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Oyh3l+g9; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-68002-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-68002-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id B8804B2498A for ; Fri, 16 Feb 2024 04:09:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4635F3F9D0; Fri, 16 Feb 2024 04:00:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="Oyh3l+g9" Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A01EFC1E; Fri, 16 Feb 2024 03:59:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708056000; cv=none; b=piF/k/r5TlKkJe+m9gYgqRBsRY0AH8elQpi3SQ6bl7e/sdRkoCx1+HvrHNfeROtHn/CYoNCzfKkjtdgUu1LTJ3ZpHTBSLHCGlAxDquwnBsHs4VypncLXF1ihpIfC3T6wYGtbO+lOb1kDn8L/H1atfxAjuv2vHfikXnzjnNf4l2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708056000; c=relaxed/simple; bh=LcVz6qd+Idjv2wGMwnW1slgW+i6hdlqPLiS5asyjK3k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nCTNu9q+RZOiUi5xfESyV3faP2yVmVtTvakr7dhdibuh3cT9hPh3SbWPZ/wvmqhB9YwlUjohYa9X3lwCkX+Fu/hpawyo9SRiY7nFIE19gajfEeP/6/DzjoXfAmrNKvl32IwTDyB46NW3il0aHZhi6dTELH7xTuf+ZJuUSdUjtmY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=Oyh3l+g9; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41G3dvKb005273; Fri, 16 Feb 2024 03:59:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=qcppdkim1; bh=gOumzVryGSn+JBsbAAqM 1ovhyepgE+54jIVWFr3RhWk=; b=Oyh3l+g9mR1wLF7+meLoHLeOKxwKUUqv04Ky dyfMZXOmfl/EuJdLeD40oQGVoSZZteUEhF0Y1Dg7Zcjoj9wzX00N7uFbIh0xfVRt YvO4tAyX4BbQJtcvfprj76jRGH4f1DxXJ2A6cr+ImWsoo0q0gj82u3JFUKsliXTX 8eOKj4xMrL/nPEX5Xrfn+WOfcwMQHzgP6cQTdUE6R0z7wDzkzIQtM7ApAx6vjdnI 1L56TRiXpq9O0ZI/RhWoBP5DCmx6+7ys45PK3EtvGbYUNiI70Xjk1yBY/4PnLcUE gQRzmrwmFWxIa2Y1Ra8VfkanJLuHekY9LfJ0NBe5CxS8dDew6w== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w9xv9g3vw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 16 Feb 2024 03:59:36 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41G3xZd3032230 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 16 Feb 2024 03:59:35 GMT Received: from hu-wcheng-lv.qualcomm.com (10.49.16.6) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 15 Feb 2024 19:59:34 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Mathias Nyman , Wesley Cheng Subject: [PATCH v16 08/50] xhci: Don't check if the event ring is valid before every event TRB Date: Thu, 15 Feb 2024 19:58:41 -0800 Message-ID: <20240216035923.23392-9-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240216035923.23392-1-quic_wcheng@quicinc.com> References: <20240216035923.23392-1-quic_wcheng@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: nalasex01a.na.qualcomm.com (10.47.209.196) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: 8Rp48fcOtsqzvQa4TeZaenQWjvZFC8y8 X-Proofpoint-GUID: 8Rp48fcOtsqzvQa4TeZaenQWjvZFC8y8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-16_03,2024-02-14_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 bulkscore=0 adultscore=0 mlxscore=0 priorityscore=1501 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=570 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402160031 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791027341511036750 X-GMAIL-MSGID: 1791027341511036750 From: Mathias Nyman Check if the event ring exists and is valid once when the event handler is called, not before every individual event TRB. At this point the interrupter is valid, so no need to check that. Change-Id: I2d69fc39c194d8fa93afd0a1cf3e209b929cee43 Signed-off-by: Mathias Nyman Signed-off-by: Wesley Cheng --- drivers/usb/host/xhci-ring.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 275164dc449d..d31599d46b92 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -2972,12 +2972,6 @@ static int xhci_handle_event(struct xhci_hcd *xhci, struct xhci_interrupter *ir) union xhci_trb *event; u32 trb_type; - /* Event ring hasn't been allocated yet. */ - if (!ir || !ir->event_ring || !ir->event_ring->dequeue) { - xhci_err(xhci, "ERROR interrupter not ready\n"); - return -ENOMEM; - } - event = ir->event_ring->dequeue; if (!unhandled_event_trb(ir->event_ring)) @@ -3081,6 +3075,12 @@ static int xhci_handle_events(struct xhci_hcd *xhci, struct xhci_interrupter *ir xhci_clear_interrupt_pending(xhci, ir); + /* Event ring hasn't been allocated yet. */ + if (!ir->event_ring || !ir->event_ring->dequeue) { + xhci_err(xhci, "ERROR interrupter event ring not ready\n"); + return -ENOMEM; + } + if (xhci->xhc_state & XHCI_STATE_DYING || xhci->xhc_state & XHCI_STATE_HALTED) { xhci_dbg(xhci, "xHCI dying, ignoring interrupt. Shouldn't IRQs be disabled?\n");