From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) (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 B488A1D7E41 for ; Mon, 2 Feb 2026 02:49:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770000565; cv=none; b=qdmu7CBA3wp8AgkfuTZanF6pG6tiAJJbVMJEBx3nfSjz1ZJnn4yyq8DTiD7/MBeg7nhduvBAES13gweaWPCnU9RzPB4RMWjCBI4n9L1K4Xet762fviWp0J2D5OUvJhNhgAzDodkpPtw05Y716XYHdnixEK6fKp2/4rvU1TFeVRU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770000565; c=relaxed/simple; bh=tjC+S0xZXXkoACIPSnSYuEgj6QsqRiwamcS+Ge/8CRM=; h=Date:From:To:Cc:Subject:Message-ID; b=UPw+VvoznS7fR6beGlkzWFgwtnHjd6doMuz+rXysEkjtA7M1f8/E5e1HXhHxtBn7c5BIKvjPVnyRCER+Ya2znaVzF7boPj4aAWLZNPm54gGHsBB0rRzJbBewj9HV5kFUBbyh6BEjHgFrZvORGl10FyQzkbY+bl8ece5AiQ91RpE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=UKKJnw2S; arc=none smtp.client-ip=192.198.163.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="UKKJnw2S" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770000563; x=1801536563; h=date:from:to:cc:subject:message-id; bh=tjC+S0xZXXkoACIPSnSYuEgj6QsqRiwamcS+Ge/8CRM=; b=UKKJnw2SE6741vBBJwPvOPFXLEok3rmgjNpdres0QIA8+jHwauB1hua0 e0LtwbE7VW6Z0Cdg3BxbZc2ILVUiY0eKUHkPIxDUEpPHF3J1g4qfu4FYa kCHKrD+SP2XU1/+OTdKM3zEcXObX+iFpZy84eQLCIRNblCjxBWLlpImyw YCJnNmPRF9fsETcyOMZH2sv9NuaoNYWxnIzngCcfQiJ0GaUm2GbckhWi1 JkVvTjYLPNU9dyeKFHjsAzJldTl587Z2w4jR1Hg5gFbMlJyhLXG00j70h jP6mGq7T8BMAmy12K1V1k9ATNVBzEAARihXWtsp5qzlAxzFfLaBZKmphD A==; X-CSE-ConnectionGUID: d8qniHrnRqSj0/bFWEDp+A== X-CSE-MsgGUID: YbK2bNCvRAG42NvfGD8MHw== X-IronPort-AV: E=McAfee;i="6800,10657,11689"; a="70358601" X-IronPort-AV: E=Sophos;i="6.21,267,1763452800"; d="scan'208";a="70358601" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Feb 2026 18:49:23 -0800 X-CSE-ConnectionGUID: KzOUkwmDShO+WfKjz6kjzA== X-CSE-MsgGUID: VJxRzyH8T6yWPisaAjKSwA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,267,1763452800"; d="scan'208";a="214234810" Received: from lkp-server01.sh.intel.com (HELO 765f4a05e27f) ([10.239.97.150]) by fmviesa004.fm.intel.com with ESMTP; 01 Feb 2026 18:49:21 -0800 Received: from kbuild by 765f4a05e27f with local (Exim 4.98.2) (envelope-from ) id 1vmk07-00000000fC6-15hw; Mon, 02 Feb 2026 02:49:19 +0000 Date: Mon, 02 Feb 2026 10:48:50 +0800 From: kernel test robot To: Alexey Kardashevskiy Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Dan Williams Subject: drivers/crypto/ccp/sev-dev.c:1496:2-13: opportunity for str_enabled_disabled(data . tio_en) Message-ID: <202602021053.UNIk3vsU-lkp@intel.com> User-Agent: s-nail v14.9.25 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 18f7fcd5e69a04df57b563360b88be72471d6b62 commit: 4be423572da1f4c11f45168e3fafda870ddac9f8 crypto/ccp: Implement SEV-TIO PCIe IDE (phase1) date: 9 weeks ago config: x86_64-randconfig-103-20260202 (https://download.01.org/0day-ci/archive/20260202/202602021053.UNIk3vsU-lkp@intel.com/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202602021053.UNIk3vsU-lkp@intel.com/ cocci warnings: (new ones prefixed by >>) >> drivers/crypto/ccp/sev-dev.c:1496:2-13: opportunity for str_enabled_disabled(data . tio_en) vim +1496 drivers/crypto/ccp/sev-dev.c 1368 1369 static int __sev_snp_init_locked(int *error, unsigned int max_snp_asid) 1370 { 1371 struct psp_device *psp = psp_master; 1372 struct sev_data_snp_init_ex data; 1373 struct sev_device *sev; 1374 void *arg = &data; 1375 int cmd, rc = 0; 1376 1377 if (!cc_platform_has(CC_ATTR_HOST_SEV_SNP)) 1378 return -ENODEV; 1379 1380 sev = psp->sev_data; 1381 1382 if (sev->snp_initialized) 1383 return 0; 1384 1385 if (!sev_version_greater_or_equal(SNP_MIN_API_MAJOR, SNP_MIN_API_MINOR)) { 1386 dev_dbg(sev->dev, "SEV-SNP support requires firmware version >= %d:%d\n", 1387 SNP_MIN_API_MAJOR, SNP_MIN_API_MINOR); 1388 return -EOPNOTSUPP; 1389 } 1390 1391 /* SNP_INIT requires MSR_VM_HSAVE_PA to be cleared on all CPUs. */ 1392 on_each_cpu(snp_set_hsave_pa, NULL, 1); 1393 1394 /* 1395 * Starting in SNP firmware v1.52, the SNP_INIT_EX command takes a list 1396 * of system physical address ranges to convert into HV-fixed page 1397 * states during the RMP initialization. For instance, the memory that 1398 * UEFI reserves should be included in the that list. This allows system 1399 * components that occasionally write to memory (e.g. logging to UEFI 1400 * reserved regions) to not fail due to RMP initialization and SNP 1401 * enablement. 1402 * 1403 */ 1404 if (sev_version_greater_or_equal(SNP_MIN_API_MAJOR, 52)) { 1405 bool tio_supp = !!(sev->snp_feat_info_0.ebx & SNP_SEV_TIO_SUPPORTED); 1406 1407 /* 1408 * Firmware checks that the pages containing the ranges enumerated 1409 * in the RANGES structure are either in the default page state or in the 1410 * firmware page state. 1411 */ 1412 snp_range_list = kzalloc(PAGE_SIZE, GFP_KERNEL); 1413 if (!snp_range_list) { 1414 dev_err(sev->dev, 1415 "SEV: SNP_INIT_EX range list memory allocation failed\n"); 1416 return -ENOMEM; 1417 } 1418 1419 /* 1420 * Retrieve all reserved memory regions from the e820 memory map 1421 * to be setup as HV-fixed pages. 1422 */ 1423 rc = walk_iomem_res_desc(IORES_DESC_NONE, IORESOURCE_MEM, 0, ~0, 1424 snp_range_list, snp_filter_reserved_mem_regions); 1425 if (rc) { 1426 dev_err(sev->dev, 1427 "SEV: SNP_INIT_EX walk_iomem_res_desc failed rc = %d\n", rc); 1428 return rc; 1429 } 1430 1431 /* 1432 * Add HV_Fixed pages from other PSP sub-devices, such as SFS to the 1433 * HV_Fixed page list. 1434 */ 1435 snp_add_hv_fixed_pages(sev, snp_range_list); 1436 1437 memset(&data, 0, sizeof(data)); 1438 1439 if (max_snp_asid) { 1440 data.ciphertext_hiding_en = 1; 1441 data.max_snp_asid = max_snp_asid; 1442 } 1443 1444 data.init_rmp = 1; 1445 data.list_paddr_en = 1; 1446 data.list_paddr = __psp_pa(snp_range_list); 1447 1448 data.tio_en = tio_supp && sev_tio_enabled && amd_iommu_sev_tio_supported(); 1449 1450 /* 1451 * When psp_init_on_probe is disabled, the userspace calling 1452 * SEV ioctl can inadvertently shut down SNP and SEV-TIO causing 1453 * unexpected state loss. 1454 */ 1455 if (data.tio_en && !psp_init_on_probe) 1456 dev_warn(sev->dev, "SEV-TIO as incompatible with psp_init_on_probe=0\n"); 1457 1458 cmd = SEV_CMD_SNP_INIT_EX; 1459 } else { 1460 cmd = SEV_CMD_SNP_INIT; 1461 arg = NULL; 1462 } 1463 1464 /* 1465 * The following sequence must be issued before launching the first SNP 1466 * guest to ensure all dirty cache lines are flushed, including from 1467 * updates to the RMP table itself via the RMPUPDATE instruction: 1468 * 1469 * - WBINVD on all running CPUs 1470 * - SEV_CMD_SNP_INIT[_EX] firmware command 1471 * - WBINVD on all running CPUs 1472 * - SEV_CMD_SNP_DF_FLUSH firmware command 1473 */ 1474 wbinvd_on_all_cpus(); 1475 1476 rc = __sev_do_cmd_locked(cmd, arg, error); 1477 if (rc) { 1478 dev_err(sev->dev, "SEV-SNP: %s failed rc %d, error %#x\n", 1479 cmd == SEV_CMD_SNP_INIT_EX ? "SNP_INIT_EX" : "SNP_INIT", 1480 rc, *error); 1481 return rc; 1482 } 1483 1484 /* Prepare for first SNP guest launch after INIT. */ 1485 wbinvd_on_all_cpus(); 1486 rc = __sev_do_cmd_locked(SEV_CMD_SNP_DF_FLUSH, NULL, error); 1487 if (rc) { 1488 dev_err(sev->dev, "SEV-SNP: SNP_DF_FLUSH failed rc %d, error %#x\n", 1489 rc, *error); 1490 return rc; 1491 } 1492 1493 snp_hv_fixed_pages_state_update(sev, HV_FIXED); 1494 sev->snp_initialized = true; 1495 dev_dbg(sev->dev, "SEV-SNP firmware initialized, SEV-TIO is %s\n", > 1496 data.tio_en ? "enabled" : "disabled"); 1497 1498 dev_info(sev->dev, "SEV-SNP API:%d.%d build:%d\n", sev->api_major, 1499 sev->api_minor, sev->build); 1500 1501 atomic_notifier_chain_register(&panic_notifier_list, 1502 &snp_panic_notifier); 1503 1504 if (data.tio_en) { 1505 /* 1506 * This executes with the sev_cmd_mutex held so down the stack 1507 * snp_reclaim_pages(locked=false) might be needed (which is extremely 1508 * unlikely) but will cause a deadlock. 1509 * Instead of exporting __snp_alloc_firmware_pages(), allocate a page 1510 * for this one call here. 1511 */ 1512 void *tio_status = page_address(__snp_alloc_firmware_pages( 1513 GFP_KERNEL_ACCOUNT | __GFP_ZERO, 0, true)); 1514 1515 if (tio_status) { 1516 sev_tsm_init_locked(sev, tio_status); 1517 __snp_free_firmware_pages(virt_to_page(tio_status), 0, true); 1518 } 1519 } 1520 1521 sev_es_tmr_size = SNP_TMR_SIZE; 1522 1523 return 0; 1524 } 1525 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki