From nobody Fri Dec 19 12:45:23 2025 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 654A62BD5A2 for ; Sat, 6 Dec 2025 17:58:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765043916; cv=none; b=rPAyAqPiN+PazCPZ0xDV+vCVzFLeiu8UsYdBC+395oZtKbFLDs/AyO90sgF5QuOy+0dNSpAw09Fd1l50v+Nx8JVVsRDbCOexqNpenet/x8JCpFAnOkqmqsfLvBDv+9nS8L/eNJ2bKoV6k7JcBRQ0xESi+V/8MKb5hiaXQgmH/vQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765043916; c=relaxed/simple; bh=oTH1lLnt4ePEcC+na2p8OocmrnPuPlc+msmUsBywGM0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qLbwuowLnLiZqF9n/SpNj0lOizksKSlcdaVO/JY5XMPop+z320Jr7kcY7Vuxq7JCqbZwvpZJHIxLfPvo1Dqjm32FtP+zsUmJL906ywun55DPJISFDcirDSWfZihoDTvyjGgip9eM6zSiVBw8fdssGu73EALe/eN7KziKTkn8IdQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Mb/kOMn1; arc=none smtp.client-ip=209.85.210.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Mb/kOMn1" Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-7c765f41346so1797880a34.3 for ; Sat, 06 Dec 2025 09:58:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765043913; x=1765648713; 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; bh=ndXm3Qn/OsGO81rziqfjrS+2oqoVZi3ZmGOqkEVkigA=; b=Mb/kOMn1Skfu2d8M3SaojMO/PHLQGjsH3xCaxP4/mEwNMnQixR5AG2DD5jg5qfdazI tRr+bunZhuS+zl44sX9GFbGJRstENyz1KDlcAv3/TtN1uYpIfqWKMuO9NLSPP6rIdLBQ qBIPl7xPh2K8T0aV6Zm8YhRSZ8hpFBrjxS4UjRNyE11qNLGUQEg8cdyWE07+DsqzP1kt n00I20/MzhPBYYY1FANaKYYcfpwWUF1DXdHhV3MB0NVwHJgLfOroqa7sYn1It8B3w4VR QIDVdzWu0EMvgMfrUV3Y1fyOh4HwRyF7xitL0u8YHdrWRpwmxdki4R8RJUnL1ZRem36g jzgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765043913; x=1765648713; 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; bh=ndXm3Qn/OsGO81rziqfjrS+2oqoVZi3ZmGOqkEVkigA=; b=imG80oUrH/wY8o1LAygy1bydJOuu64RyXvcX+NvJjUv1VNEBWRzGRn/cGOndPFIm5x n6hvh/GMtsDopSe7BihyhhxSR/XBuMMHnMWQnjowaZ/NU6bbOJZiLbdE5vgOR8v6xKNR +yJ5dm8lH4hmqYaDUK4ZG/XonGQ0wNDKRtqtYNeN4RksQpInUvBlz/uekdE+4eYIEIvo Mo4gLtCMIDqpfybJm2PoI0Mz4E4pVpSGlpR3Tqxc6tQ3k6WW/R54AHHKdq2zWrGy5UQr 5rl+yoE52rFZcf+LblHq00vCbMceCqIY5ai7xDDXF0i1BKvUiU+I8aAHtAmWP49gG7OJ qBoQ== X-Forwarded-Encrypted: i=1; AJvYcCU6rgKdRzHDjBGtpXHSjxVWpU1x76I/uRlDkyexEKKn63AumxKWMIQXYhpKsc/mJYFyinX/Cf6wfsmxyS8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6pUbpkma0DgW4FySQJQGKFcnDLD2FGiHA+fqVZok5b9eFGc6T GOV+/W0mGZqEsSSBZHhUAtdE45O9x5pf6Pn8yMl3x18Ou0WJ5U9Y7ola X-Gm-Gg: ASbGncvq+5LVzIxtS/nbqEs07UxtZSghieIlaZ8BEIUpziO++d9S+6tpQgs6xRVCY5F A2yaNBpCh+IbaoU4jxVxJrUX04fL2aBWFF/wD4IFX3Y1BlC2ZnNDFoOIXQ6DQNHGiyVvWW3rpEP G3kDhI4oBvVla94nhCBIsDzw32CEAWh3OFhjzUWUqj30N4igIDu0bRk5viiu+hwm7588IY8h03r 09118nepWakgcXa2CsN3xkTFhanaVGUo3HlF0WlzZ6+O3ezrVCZ29+F/xBq1aJ3tEORhPlzmaXe cRgABEHdnUuwkMrF8ZPrXUKyM9XTkur/sq0F0Aqr0BiSY3Vs/Le3FwDSs7xkgC5F5fNlm+ni9it SR9u7tjLj3Ds/6ul0YUMoaD+gaJxoPXvQ2D/IbsQIHqWuCQiyUCVr5iN03dD5BHNfKYRpO0xPCZ 7jzGzmvrgAk1bXhMv7sM0Gvgorwmm1z0jJ2rRYBReuJgYKjlfSOb8eUHEjcUu/57lDBqGXmCp+u kEdhUqc3GkoBmzsWz63xwGuT/senFkeahecUtc= X-Google-Smtp-Source: AGHT+IFIWED3uQzX/seC5IXNBJh7DeKjOKVTT2ma7XA8fASm3D5ShSB8BPB71NDBWxDFvLk9L8iynQ== X-Received: by 2002:a05:6830:442b:b0:7c7:6bb4:1197 with SMTP id 46e09a7af769-7c9708124b4mr1575504a34.24.1765043912850; Sat, 06 Dec 2025 09:58:32 -0800 (PST) Received: from nukework.lan (c-98-57-15-22.hsd1.tx.comcast.net. [98.57.15.22]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7c95acadb16sm6372782a34.21.2025.12.06.09.58.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Dec 2025 09:58:32 -0800 (PST) From: Alexandru Gagniuc To: jjohnson@kernel.org, ath11k@lists.infradead.org, "Rob Herring (Arm)" , Vasanthakumar Thiagarajan Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandru Gagniuc , stable@vger.kernel.org, Jeff Johnson Subject: [PATCH] wifi: ath11k: fix qmi memory allocation logic for CALDB region Date: Sat, 6 Dec 2025 11:58:29 -0600 Message-ID: <20251206175829.2573256-1-mr.nuke.me@gmail.com> X-Mailer: git-send-email 2.45.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Memory region assignment in ath11k_qmi_assign_target_mem_chunk() assumes that: 1. firmware will make a HOST_DDR_REGION_TYPE request, and 2. this request is processed before CALDB_MEM_REGION_TYPE In this case CALDB_MEM_REGION_TYPE, can safely be assigned immediately after the host region. However, if the HOST_DDR_REGION_TYPE request is not made, or the reserved-memory node is not present, then res.start and res.end are 0, and host_ddr_sz remains uninitialized. The physical address should fall back to ATH11K_QMI_CALDB_ADDRESS. That doesn't happen: resource_size(&res) returns 1 for an empty resource, and thus the if clause never takes the fallback path. ab->qmi.target_mem[idx].paddr is assigned the uninitialized value of host_ddr_sz + 0 (res.start). Use "if (res.end > res.start)" for the predicate, which correctly falls back to ATH11K_QMI_CALDB_ADDRESS. Fixes: 900730dc4705 ("wifi: ath: Use of_reserved_mem_region_to_resource() f= or "memory-region"") Cc: stable@vger.kernel.org # v6.18 Signed-off-by: Alexandru Gagniuc Reviewed-by: Vasanthakumar Thiagarajan --- drivers/net/wireless/ath/ath11k/qmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/a= th/ath11k/qmi.c index aea56c38bf8f3..6cc26d1c1e2a4 100644 --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c @@ -2054,7 +2054,7 @@ static int ath11k_qmi_assign_target_mem_chunk(struct = ath11k_base *ab) return ret; } =20 - if (res.end - res.start + 1 < ab->qmi.target_mem[i].size) { + if (resource_size(&res) < ab->qmi.target_mem[i].size) { ath11k_dbg(ab, ATH11K_DBG_QMI, "fail to assign memory of sz\n"); return -EINVAL; @@ -2086,7 +2086,7 @@ static int ath11k_qmi_assign_target_mem_chunk(struct = ath11k_base *ab) } =20 if (ath11k_core_coldboot_cal_support(ab)) { - if (resource_size(&res)) { + if (res.end > res.start) { ab->qmi.target_mem[idx].paddr =3D res.start + host_ddr_sz; ab->qmi.target_mem[idx].iaddr =3D --=20 2.45.1