From mboxrd@z Thu Jan 1 00:00:00 1970 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 1990F3DD874 for ; Mon, 27 Jul 2026 07:26:38 +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=1785137201; cv=none; b=Mu+NXxWzJCAyLTx/xjNQWoZR2sqIhyVsrKIpMEJW6tfpO0385icXFfHGvvHLLVLPKh+XOiV+KWI9A/t5JhAlPyL+DKWvKpZ0MDbg473Mo9m9XFU0jxG7L6WeXRUmKx8+wbHcPeSw+8jYYpnwT2Q3m700KK2pLFnYB/zfWWmYaNM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785137201; c=relaxed/simple; bh=nPYM4G08xx9B+wxqYdlxN3W6h6owFj9A6+Jp8XQ/hzc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=XFIV3xpCvjy0JWTRWKP9cLNeOlqREiXnEQp1WasrSnwy9zGH00BhLzOBj10RIZuboLKUa/5OsL3VZk+XIzxE3EdavRvHhz1b2m4i8tgiZfvVNNetR5T/YHYn1B5EBAHkZN8dVOeY+0ZZ4tqBA+NTv72/klpDAQ1QHSAUi16WKqc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=biAXVulA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Nj+qcrUZ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="biAXVulA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Nj+qcrUZ" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66R3HM2r3604489 for ; Mon, 27 Jul 2026 07:26:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=qcppdkim1; bh=R/cpPPDkMi4x5SQoHxbHCb12AP510lOhLC2 bI2PQq+0=; b=biAXVulAft9KI7k7Pt6Rx+vmVPJu3QcuTMSnfW5ce19NPXlO19J UIfaJKEdX+eIi/RUsdpVAnZPqtI4mZqOzNfLRO9D7SrB0pBRwqXNB0jNDw02GHSF Fn62fU4z+ab8n3Nh750dgWKc5cx1lrncZsetc56dOFq3YsnLRHQ2up5HZiDEsPYc uUEd93zh3AcmPvXQ19bI0WDb+8dfzPy4mPSHGn4WnJbeqag+eufrUZk/XOd/Rx6f NsIgdDP5uNxp86YQBR8mQqHt7e1Fr9UO556lqGc6E8/00l5hs4sFQat9VA45aWlc ierr2np/D0yhSE3+SSCYwEygg4Id0Xs2jhw== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fny9wgpw4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Jul 2026 07:26:38 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-84a350b9f17so344457b3a.2 for ; Mon, 27 Jul 2026 00:26:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785137197; x=1785741997; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=R/cpPPDkMi4x5SQoHxbHCb12AP510lOhLC2bI2PQq+0=; b=Nj+qcrUZFQrAg4btX9knBLoMw0zG+mkxRnGs1W2PWA8WsjngHHqQ5c/WrnFrJUCdPP bLKsCwNFUQpQ7CUkfrswgyyYJaigdJxyqvj5olJZ9RTv6bTQuC21AFJlJo2vz5qf16Yy vYtekj3Qpc9HPTSHK+OCAfydijZdDjCB/ndehPYTna6y/msumHKyl7ZrpZrr1+Ezr1/7 kqQgtb5eWZonaabV6ZFJ/jau1zsvq2RGWEhsFRpbBhhU3YFraja3sKeppN2VQ3BVAFGY JsBUejhj2OEDmXMWJa3M0NAU9sgEkvxkXM0pUXKvVAXS9+PhFlmdKrtOJW/QV2CpGuFM B2jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785137197; x=1785741997; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=R/cpPPDkMi4x5SQoHxbHCb12AP510lOhLC2bI2PQq+0=; b=a/F2l859MSiZ0iCWn3R7p3rwQQsqwJ+rVVQxKx1OGnZ0abnw+zY85JKUH3wMsbumlS xLOIBsZRd40MXqY0Y7REliK+lyOSJoNfsVTRYpXwQACNhjGyyQqsaHpK19wZ+M3Q0abf LyEOzPJFq2FeaEYZ+6+v2nMl+PcB3ld2/mFgLcwFHbCZSLscxi37SVpLx6iKmhYHphBv 7+B23M3jZInLdk9LAb/Uy2kfNlFg5icc+LiyCBtM3mKAEAX3KQ+YmyI9p8c4IntvcBf8 saONybKGWjOWvmiCbLCHBtJkDBloFkn6g2LsEYkJusK9bpAApwoyN42Ny8r+7mN+Il63 jXQg== X-Forwarded-Encrypted: i=1; AHgh+RqstJzBJtZgFSU/yIypCzxpPUqP3U/L1fkaufKf2ozWOma15Aj9ObOIOdPBe04zRTQGwBvaDinT/dQi8sI=@vger.kernel.org X-Gm-Message-State: AOJu0YzkUpfH3ls4cIGISLNHlskouaO7rVor0+8HGEQ/h2nDbHVEGWfI +dCFQy4iFqcQu/LajX8nA+Za7Grkq5U9CTq9OX/x0NRH7Bj8nZoqZRgsZlx4uc18sZ615nyVraK 5ouIi+NmpLP8kJ51sIjtN1v4tdy2sSFcJShSnDyqa9M88dIiD8Dw3ockgqL0+TuremhU= X-Gm-Gg: AR+sD10UXiWUyjacenyrZ8mg1jUSpWv19WPnVNIuBOE2BMNoS9bPajaD/EnK2pmcie0 m65xUKReMspnZCGU7RlzzRGWNlUo7k17VQKeJXMgEdCW5z1iLG4QXIeIBrHc35mov4y5V8GFwEI 96kchMnVm0gHpf+0U1zRbl7Yq0P26QgOX0jMq8hRVAHEiOzcTXS0rczUbtWgyj8GdfaypFEd1+h LZQIuBzrjOW+Xqi/kkCVcIx0Z3xocCjII18zu2kR4o0b7YE0ekMZ1nzvUSlm0T1/c6TPwuvgqY7 UdolGQUlTrKfKN2o4eibOJ1rhHPUN+Y9L4lcFI9I5uhP2B/w1rQfohdvc3Tmj76yIL2itARURRW DLJ9DiGq6m2xW0w2jZ4s09vx1bA== X-Received: by 2002:a05:6a00:4009:b0:848:7e85:f210 with SMTP id d2e1a72fcca58-84e59573605mr7416058b3a.4.1785137197346; Mon, 27 Jul 2026 00:26:37 -0700 (PDT) X-Received: by 2002:a05:6a00:4009:b0:848:7e85:f210 with SMTP id d2e1a72fcca58-84e59573605mr7416026b3a.4.1785137196820; Mon, 27 Jul 2026 00:26:36 -0700 (PDT) Received: from hu-lingwu-sha.qualcomm.com ([114.94.8.21]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84e533ce1f7sm2603424b3a.34.2026.07.27.00.26.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 00:26:36 -0700 (PDT) From: Linghui Wu To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, jjohnson@kernel.org, linux-kernel@vger.kernel.org, Linghui Wu Subject: [PATCH ath-next] wifi: ath10k: snoc: use memcpy_fromio() for MSA ramdump Date: Mon, 27 Jul 2026 12:56:29 +0530 Message-ID: <20260727072629.2297208-1-linghui.wu@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI3MDA3MiBTYWx0ZWRfX2VkaaOGjbDwW SYtgyk56xNCat47BgWd2qhFDPbrYF6SLj6xy6Es9wJukN+A8QsJSFQwFLwssTeabTotZFcE2Y5e Uucda/UDEflvIrK/+XfQIiMH/gRwo8vzUsnAKEuuugSWdvc7Emp2oz0HdApJ2ueVnxGWoJLL4uv jVTBJZZn42xII73xRSF2hxVb7qao3VrO7wXHBf31DKX7Z+8EAl/hRjQW/pfL0rh/rA4bdQW0U6Y zMu7OgL9XFAFPPaU4FtHJPZqwJk/QlYgq/UKRja5hcUmlSfUDzNu4hFQzPP0LFFl5/EhVee/4BJ LWM/1ROu7EIpTArlRMlteiNP9ZL1N3zLEVmHbl/g+3NCfC0UqTyP+vUtu4jvJkHh8WoUJLXov8K /kqIRMoIUwLV9JDJHYwh4L7DOgZR0UNZv/yN/nU9t5CUlJ1EoE+CWBQug6BPPWC6xxdTsyMYjiY Auh/H3vJOWVD3uZO4Eg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI3MDA3MiBTYWx0ZWRfX/wQisl5TKu5W 7prHRYvY2GPPBJUY/gy36+eV1fbt6RbSBgDj3Wxa3DfuM7zXcYlETDw6eWz80a/I7nUc/5hIrMn 8ZzhdSZkJLQ6maL47MsMEc0eGoCMPwI= X-Proofpoint-ORIG-GUID: xEtlnjjOeDJIYe3y_33aNcq_C2HtP6ns X-Authority-Analysis: v=2.4 cv=E4b9Y6dl c=1 sm=1 tr=0 ts=6a67082e cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=Uz3yg00KUFJ2y2WijEJ4bw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=WRuc8sxw1qBzrRBfCfEA:9 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-GUID: xEtlnjjOeDJIYe3y_33aNcq_C2HtP6ns X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-27_01,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1011 priorityscore=1501 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607270072 On WCN3990/SNOC the MSA region is mapped with devm_memremap(MEMREMAP_WT). On arm64 such a mapping is not Normal-cacheable, so unaligned accesses to it are not permitted. ath10k_msa_dump_memory() copies the region with a plain memcpy(), whose optimized __pi_memcpy_generic implementation issues wide/unaligned loads. This triggers an alignment fault (FSC=0x21) Oops in ath10k_snoc_fw_crashed_dump() while collecting the devcoredump: Unable to handle kernel paging request ... FSC=0x21: alignment fault pc : __pi_memcpy_generic lr : ath10k_snoc_fw_crashed_dump [ath10k_snoc] The Oops both leaves the firmware RAM dump buffer zeroed (no dump is captured) and crashes the kernel, which in turn breaks modem SSR recovery. Use memcpy_fromio(), which only performs accesses that are valid for such a device-memory mapping. The generic memcpy_fromio() implementation aligns the source before issuing word-sized reads and stores the destination with put_unaligned(), so it is also safe for the coherent DMA allocation used on the non-reserved-memory path. ath11k and ath12k use the same pattern when copying target memory into crash dumps, so call it unconditionally here too. The MEMREMAP_WT pointer is a plain void *, so an explicit __iomem cast is needed; use __force to keep sparse happy. Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.3.7.c5-00107-QCAHLSWMTPL-1 Fixes: 3f14b73c3843 ("ath10k: Enable MSA region dump support for WCN3990") Signed-off-by: Linghui Wu --- drivers/net/wireless/ath/ath10k/snoc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index 310650227..695473eb0 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include #include @@ -1475,11 +1476,15 @@ static void ath10k_msa_dump_memory(struct ath10k *ar, hdr->length = cpu_to_le32(ar->msa.mem_size); if (current_region->len < ar->msa.mem_size) { - memcpy(buf, ar->msa.vaddr, current_region->len); + memcpy_fromio(buf, + (const void __iomem __force *)ar->msa.vaddr, + current_region->len); ath10k_warn(ar, "msa dump length is less than msa size %x, %x\n", current_region->len, ar->msa.mem_size); } else { - memcpy(buf, ar->msa.vaddr, ar->msa.mem_size); + memcpy_fromio(buf, + (const void __iomem __force *)ar->msa.vaddr, + ar->msa.mem_size); } } base-commit: 913998f903fb1432c0046c33003db38a9e8bedb1 -- 2.43.0