From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com [113.46.200.219]) (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 6043B8635D for ; Fri, 8 May 2026 03:47:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=113.46.200.219 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778212038; cv=none; b=NK9huWh9B5IojlZM52XoxiGQpYhLCje9hjwkAoXifJc+OE+FN0oJVGv4fWNoOIB69kBVaAabwex2a6ssgYYSsdC+Mu0wDMJwrhsRVNtb9leMqH/8DEVJdvlSeVjrkDikF+BONE3+nyR6Wl11GHmvX99FFS9YsQUckhGHLfQSx94= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778212038; c=relaxed/simple; bh=IUewwx+9o79hN0BtuXnYZpeXvL1InWac0V/sXYccmUY=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=dE1Tj7g4cSTErcsXDus0Jl+r8i0ByOJ/a5/k7SQunLnJkYLGGJ2W5LwYEohLF7OM7DyCD+1IxQ0FsyxhTuDUhpLUQjJ5hHt4qZEh8E4rtF1DXhPkVJLrvhSORMI6dtpqXWHQh1B7hsC2/1FPUXw84E16XFHTgxN54njqsG8QHKM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=huawei.com; spf=pass smtp.mailfrom=h-partners.com; dkim=pass (1024-bit key) header.d=h-partners.com header.i=@h-partners.com header.b=dvGJ0ZOI; arc=none smtp.client-ip=113.46.200.219 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=h-partners.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=h-partners.com header.i=@h-partners.com header.b="dvGJ0ZOI" dkim-signature: v=1; a=rsa-sha256; d=h-partners.com; s=dkim; c=relaxed/relaxed; q=dns/txt; h=From; bh=dWDrmbH/nh19OGeB9tG1Hw5e09VKA/1IueRnzMbUVdY=; b=dvGJ0ZOI0N9DSIHNxe6TWK7gwCgGOOKOh3/7HUQDHJnVwvFaGC7Ao2zZDS8VUTJl0y9kZqzvI JJKNBenjboI+jvU2J8M5yS5UkZ7oYowojHnfXBOFAeH/DDS0BSVvt1RK4VhsgRLHIZ1wOiv3qE5 8Kipn9AiShXWrA1OdYD/6RM= Received: from mail.maildlp.com (unknown [172.19.162.144]) by canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4gBZcS1zh5z1prkv; Fri, 8 May 2026 11:39:36 +0800 (CST) Received: from kwepemf100008.china.huawei.com (unknown [7.202.181.222]) by mail.maildlp.com (Postfix) with ESMTPS id AED394056E; Fri, 8 May 2026 11:47:12 +0800 (CST) Received: from [10.174.179.37] (10.174.179.37) by kwepemf100008.china.huawei.com (7.202.181.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.36; Fri, 8 May 2026 11:47:08 +0800 Message-ID: Date: Fri, 8 May 2026 11:47:08 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v2 2/2] arm_mpam: Update architecture version check for MPAM MSC Content-Language: en-US From: Zeng Heng To: James Morse , , , , , , , , , , , , , , , , , , , , , , , , CC: , , References: <20260203095406.6437-1-zengheng4@huawei.com> <20260203095406.6437-3-zengheng4@huawei.com> <01ef61ca-7ba7-b282-7ec6-b1df5c301aa5@huawei.com> In-Reply-To: <01ef61ca-7ba7-b282-7ec6-b1df5c301aa5@huawei.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To kwepemf100008.china.huawei.com (7.202.181.222) Hi James, On 2026/5/8 10:26, Zeng Heng wrote: >> I think its simpler to rule out the unsupported combinations, >> something like: >> | static bool mpam_msc_check_aidr(struct mpam_msc *msc) >> | { >> |     u32 rev; >> | >> |     rev = __mpam_read_reg(msc, MPAMF_AIDR) & MPAMF_AIDR_ARCH_REV; >> | >> |      /* >> |      * v0.0 and >v2.x aren't supported, but anything else should be >> backward >> |     * compatible to v0.1 or v1.0. >> |     */ >> |     if (!rev) >> |         return false; >> |     if (rev & MPAMF_AIDR_ARCH_MAJOR_REV > MPAM_ARCHITECTURE_V1) >> |         return false; >> | Oops, after more complete version number testing, I found there's an operator precedence issue here. The correct fix is: if ((rev & MPAMF_AIDR_ARCH_MAJOR_REV) > MPAM_ARCHITECTURE_V1) return false; Note that '>' has higher precedence than '&'. With this fix included: Tested-by: Zeng Heng >> |     return true; >> | } >> >>> +    if (!mpam_msc_check_aidr(msc)) { >>> +        dev_err_once(dev, "MSC does not match MPAM architecture\n"); >>>           return -EIO; >>>       } >> >> I'd like to keep the 'v1.x' in this message - this should help folk >> with old stable >> kernels running on new hardware work out why the feature isn't available. >> (assuming they have some documentation that says v2.0 in it!) >> >> I've rebased this with the above changes, which I'll post shortly for >> fixes. >> >> > > Agreed. Keep the backward compatibility extension for versions > (compatible with v0.x(x>0) and 1.x), and remove the redundant > MPAM_ARCHITECTURE_Vx_x macro definitions. > > I've verified locally that everything works fine. >