Received: by 2002:a05:7412:1e0b:b0:fc:a2b0:25d7 with SMTP id kr11csp1430406rdb; Fri, 16 Feb 2024 16:20:03 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVsl4FA6bmODtN9Ja58GYd37W3Wu8L1QjQKwoiPog8CFMSCZD9iR57vUjdpztjsr4Ubkyn/4yRYHvsTFAGG13R5m3xveNba3t375u3igg== X-Google-Smtp-Source: AGHT+IGFb5MJPdEZBPFOyAl2CL9u10XnN3GJeoc1gWXTl0Bv48CQ341Dw+cHVymIdUrvvsvHL36Z X-Received: by 2002:a05:6808:d50:b0:3c1:3d2f:a99b with SMTP id w16-20020a0568080d5000b003c13d2fa99bmr4579469oik.42.1708129203111; Fri, 16 Feb 2024 16:20:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708129203; cv=pass; d=google.com; s=arc-20160816; b=Yp2zxQQmeJCzVWgIrZUqRDoaGjVrGZgx7KLMZcGu0IbnbnKYpEyVt5fIE3pkqTv0fV qQjApXkLEGNr57xk0qHzQRzK9Vhi6NFWhYnw4uiMclBddVtNIZbpaiXjudI8yf1BKBgg e0qTZwAoEfc+vFOU02FUEqHDKSvL5HU9XUINKXWtc0KO4Jz3YyV1kGEU2ee/pEZuNK// LsVdoTf/ZRQmzyUAqrbKtjld/JK5XXTRK/V/4IWwxqcn509wcvBCtbAmFccqToYY4eRh /D2JJPYQB2JKtu5BQ8Lhku1SH7OedlxdXk4GdWUXe1+vWfU8upDnGl3IkyT9EkxjMAjz ngMg== 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=DU0HpYwDA8B4AUvQtRmGJGZdzZc3lnr+JG7/kIyiTiM=; fh=Dz/sGw+9lzNFrkoqVn+ZLx/Xi4dC8owgH35eQDavKgI=; b=QLB7BfV6XsMLgVFZ3265Bzil9SfXsvG9g+1BRHQ8WUnq45joOfU27q+OOZd4YzrZ7u JmFhEecbaE8YClyGu7dIKSVzqdmZuQ3VUrEETxE8LCUBvw6R+YkaA5Hsu1Rn+D7U+3p6 TAXsx/L4Q6Gt3pTlApgDh0RwjLVIQ9/w648mXbJBpXv5JCFfB/pFRa9QNVz6jwjaQmMN QlwDWl9I0dVu+TliHz3vUtN2POWe1IX2HiHtxbNPDBAw3Y0rrk2CUtYF1IkOBxlHmzY/ s+p3YU+k+wPZ4nAUuvtz1/v1ZEv9W4WTwCgFj8SmlEf4bV++oQUHnLTptlF/zLmI+jVZ iUHA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Nt5zHhiL; 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-69543-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69543-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id n12-20020a05622a11cc00b0042db2599576si1110304qtk.700.2024.02.16.16.20.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 16:20:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-69543-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Nt5zHhiL; 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-69543-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69543-linux.lists.archive=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id D68D81C2098C for ; Sat, 17 Feb 2024 00:20:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E074371B57; Sat, 17 Feb 2024 00:11:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="Nt5zHhiL" Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 648DF33981; Sat, 17 Feb 2024 00:10:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128658; cv=none; b=KdQ1nVXqD+so5Uu5n2iBw4hX6z873bXVCTCEMrXq2NnzrJRV3odlOIDLDPrdxEPiiBBwBKrCp35LO7n1LbmK45nFqYBpN0IrMunyiV+cgNjlOOsxAPziz7onuc4FtSoByqGUiBRzfgFEv88JdQm/5ehcYMhgu3YPPG50YkvXFDg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128658; c=relaxed/simple; bh=JK11qZ2KlbmEzZpE7Z7XLQGFiT4fwAOQs4H6trtGyQg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AQI/RJE33JOGLRz3QYgSyhjgAhPHhF2ZOfNiAgMC0nJaXTCzQaSOooG+1NfKk1DW7hW3DRjPs7xyRI5Uk0P9OSFx0pJHKPD7W6B1LLXaw/TK21kIzO/rqFe1AbLmUBSpJr/t2t04QsURbTw5o2rEeGj70/gLI3hvf3qjRPpKSUM= 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=Nt5zHhiL; arc=none smtp.client-ip=205.220.180.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 (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41GNMwSB008993; Sat, 17 Feb 2024 00:10:33 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=DU0HpYwDA8B4AUvQtRmG JGZdzZc3lnr+JG7/kIyiTiM=; b=Nt5zHhiL/BSLadIO1oo4qLRNBI5EQTHWGSNk 3W3qlTUjDBvHqaeKhxIO6NTLfX29sz2PVceTtBP9KvG8f6wuuZdURDG9C2GeGsV2 13j5Q5UGflvjIlhC0CxwfGqUfJDNVaPRF16WLx3kaWWDa5EWG5PXADh6INjAWsor zAQgvJ4H76uSh/ENtMjWA6n5VZfXtVTrfNHNDoragrHfmL2fqTNaK7Z/R0c9LJ1H u3LNKs/m5HAsajozkRaW/Y8lY+y3X0YAAO3kRAm93n6ZxrBNjO9uJNr9hWUSyaFr RorUiJG8yApcl2uIbKlKiMT/3o6tJXNCjm06M0NeR1ImNvBstg== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3wa3bh1ub2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:33 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41H0AWBf017199 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:32 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; Fri, 16 Feb 2024 16:10:31 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Mathias Nyman , Wesley Cheng Subject: [PATCH v17 08/51] xhci: Don't check if the event ring is valid before every event TRB Date: Fri, 16 Feb 2024 16:09:34 -0800 Message-ID: <20240217001017.29969-9-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240217001017.29969-1-quic_wcheng@quicinc.com> References: <20240217001017.29969-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 Content-Type: text/plain 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-GUID: rVyc_CWhwtgEEpXhx9qXDNOnf3nfGNky X-Proofpoint-ORIG-GUID: rVyc_CWhwtgEEpXhx9qXDNOnf3nfGNky 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_23,2024-02-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 mlxscore=0 bulkscore=0 clxscore=1015 adultscore=0 priorityscore=1501 malwarescore=0 mlxlogscore=593 phishscore=0 lowpriorityscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402160189 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. 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");