* [yiliu1765-iommufd:wip/iommufd_nesting_08042023-yi 12/57] drivers/iommu/iommufd/device.c:358 iommufd_must_remove_rr() error: we previously assumed 'new_hwpt' could be null (see line 341)
@ 2023-08-06 13:52 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2023-08-06 13:52 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Yi Liu <yi.l.liu@intel.com>
TO: Kevin Tian <kevin.tian@intel.com>
tree: https://github.com/yiliu1765/iommufd.git wip/iommufd_nesting_08042023-yi
head: 298b42007955fc150cad88c629de50dab7050f15
commit: cec938742db5c16708db0642a49e51085bee34f6 [12/57] iommufd: Handle IOMMU_RESV_SW_MSI complication with user-managed HWPTs
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-m021-20230806 (https://download.01.org/0day-ci/archive/20230806/202308062128.ASglP8pP-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230806/202308062128.ASglP8pP-lkp@intel.com/reproduce)
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 <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202308062128.ASglP8pP-lkp@intel.com/
New smatch warnings:
drivers/iommu/iommufd/device.c:358 iommufd_must_remove_rr() error: we previously assumed 'new_hwpt' could be null (see line 341)
drivers/iommu/iommufd/device.c:433 iommufd_must_enforce_rr() error: we previously assumed 'old_hwpt' could be null (see line 414)
Old smatch warnings:
drivers/iommu/iommufd/device.c:1265 iommufd_access_rw() error: uninitialized symbol 'rc'.
vim +/new_hwpt +358 drivers/iommu/iommufd/device.c
e8d57210035b637 Jason Gunthorpe 2022-11-29 329
588f26078f3dfd4 Nicolin Chen 2023-08-01 330 static bool iommufd_must_remove_rr(struct iommufd_hw_pagetable *old_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 331 struct iommufd_hw_pagetable *new_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 332 bool *keep_sw_msi)
588f26078f3dfd4 Nicolin Chen 2023-08-01 333 {
cec938742db5c16 Nicolin Chen 2023-08-02 334 struct iommufd_ioas *old_ioas, *new_ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 335
cec938742db5c16 Nicolin Chen 2023-08-02 336 if (old_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 337 old_ioas = old_hwpt->parent->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 338 else
cec938742db5c16 Nicolin Chen 2023-08-02 339 old_ioas = old_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 340
588f26078f3dfd4 Nicolin Chen 2023-08-01 @341 if (!new_hwpt)
588f26078f3dfd4 Nicolin Chen 2023-08-01 342 new_ioas = NULL;
cec938742db5c16 Nicolin Chen 2023-08-02 343 else if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 344 new_ioas = new_hwpt->parent->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 345 else
588f26078f3dfd4 Nicolin Chen 2023-08-01 346 new_ioas = new_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 347
588f26078f3dfd4 Nicolin Chen 2023-08-01 348 /* When switching IOAS, cleaning up the old IOAS is a must */
cec938742db5c16 Nicolin Chen 2023-08-02 349 if (old_ioas != new_ioas) {
cec938742db5c16 Nicolin Chen 2023-08-02 350 *keep_sw_msi = false;
cec938742db5c16 Nicolin Chen 2023-08-02 351 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 352 }
cec938742db5c16 Nicolin Chen 2023-08-02 353
cec938742db5c16 Nicolin Chen 2023-08-02 354 /*
cec938742db5c16 Nicolin Chen 2023-08-02 355 * Must keep IOMMU_RESV_SW_MSI when switching from a kernel-managed
cec938742db5c16 Nicolin Chen 2023-08-02 356 * hw_pagetable to its associated user-managed hw_pagetable.
cec938742db5c16 Nicolin Chen 2023-08-02 357 */
cec938742db5c16 Nicolin Chen 2023-08-02 @358 if (!old_hwpt->user_managed && new_hwpt->user_managed) {
cec938742db5c16 Nicolin Chen 2023-08-02 359 *keep_sw_msi = true;
588f26078f3dfd4 Nicolin Chen 2023-08-01 360 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 361 }
cec938742db5c16 Nicolin Chen 2023-08-02 362 /*
cec938742db5c16 Nicolin Chen 2023-08-02 363 * Do not remove in the remaining cases when IOAS isn't changed:
cec938742db5c16 Nicolin Chen 2023-08-02 364 * - switching from a kernel-managed hw_pagetable to another kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 365 * managed hw_pagetable associated to the same IOAS. All the existing
cec938742db5c16 Nicolin Chen 2023-08-02 366 * reserved regions remain in the IOAS in this case.
cec938742db5c16 Nicolin Chen 2023-08-02 367 * - switching from a user-managed hw_pagetable to an associated kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 368 * managed hw_pagetable. In this case, all reserved regions must have
cec938742db5c16 Nicolin Chen 2023-08-02 369 * been enforced in the IOAS, i.e. no removal after the enforcement.
cec938742db5c16 Nicolin Chen 2023-08-02 370 * - switching from a user-managed hw_pagetable to another user-managed
cec938742db5c16 Nicolin Chen 2023-08-02 371 * hw_pagetable associated to the same parent hw_pagetable (or IOAS).
cec938742db5c16 Nicolin Chen 2023-08-02 372 * In this case, the existing IOMMU_RESV_SW_MSI regions must be kept.
cec938742db5c16 Nicolin Chen 2023-08-02 373 */
588f26078f3dfd4 Nicolin Chen 2023-08-01 374 return false;
588f26078f3dfd4 Nicolin Chen 2023-08-01 375 }
588f26078f3dfd4 Nicolin Chen 2023-08-01 376
588f26078f3dfd4 Nicolin Chen 2023-08-01 377 /*
588f26078f3dfd4 Nicolin Chen 2023-08-01 378 * Remove device's reserved regions from the reserved list of an iopt
588f26078f3dfd4 Nicolin Chen 2023-08-01 379 * @idev: Device to remove its owned reserved regions
588f26078f3dfd4 Nicolin Chen 2023-08-01 380 * @hwpt: Detaching hw_pagetable
588f26078f3dfd4 Nicolin Chen 2023-08-01 381 * @new_hwpt: Optionally new hw_pagetable to replace with
588f26078f3dfd4 Nicolin Chen 2023-08-01 382 *
588f26078f3dfd4 Nicolin Chen 2023-08-01 383 * Call this function when an idev detaches or replaces an attached hwpt
588f26078f3dfd4 Nicolin Chen 2023-08-01 384 */
588f26078f3dfd4 Nicolin Chen 2023-08-01 385 static void iommufd_device_remove_rr(struct iommufd_device *idev,
588f26078f3dfd4 Nicolin Chen 2023-08-01 386 struct iommufd_hw_pagetable *hwpt,
588f26078f3dfd4 Nicolin Chen 2023-08-01 387 struct iommufd_hw_pagetable *new_hwpt)
588f26078f3dfd4 Nicolin Chen 2023-08-01 388 {
cec938742db5c16 Nicolin Chen 2023-08-02 389 struct iommufd_ioas *ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 390 bool keep_sw_msi;
cec938742db5c16 Nicolin Chen 2023-08-02 391
588f26078f3dfd4 Nicolin Chen 2023-08-01 392 if (WARN_ON(!hwpt))
588f26078f3dfd4 Nicolin Chen 2023-08-01 393 return;
cec938742db5c16 Nicolin Chen 2023-08-02 394 if (!iommufd_must_remove_rr(hwpt, new_hwpt, &keep_sw_msi))
588f26078f3dfd4 Nicolin Chen 2023-08-01 395 return;
cec938742db5c16 Nicolin Chen 2023-08-02 396 if (hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 397 ioas = hwpt->parent->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 398 else
cec938742db5c16 Nicolin Chen 2023-08-02 399 ioas = hwpt->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 400 iopt_remove_reserved_iova(&ioas->iopt, idev->dev, keep_sw_msi);
588f26078f3dfd4 Nicolin Chen 2023-08-01 401 }
588f26078f3dfd4 Nicolin Chen 2023-08-01 402
588f26078f3dfd4 Nicolin Chen 2023-08-01 403 static bool iommufd_must_enforce_rr(struct iommufd_hw_pagetable *old_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 404 struct iommufd_hw_pagetable *new_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 405 bool *sw_msi_only)
588f26078f3dfd4 Nicolin Chen 2023-08-01 406 {
cec938742db5c16 Nicolin Chen 2023-08-02 407 struct iommufd_ioas *old_ioas, *new_ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 408
cec938742db5c16 Nicolin Chen 2023-08-02 409 if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 410 new_ioas = new_hwpt->parent->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 411 else
cec938742db5c16 Nicolin Chen 2023-08-02 412 new_ioas = new_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 413
588f26078f3dfd4 Nicolin Chen 2023-08-01 @414 if (!old_hwpt)
588f26078f3dfd4 Nicolin Chen 2023-08-01 415 old_ioas = NULL;
cec938742db5c16 Nicolin Chen 2023-08-02 416 else if (old_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 417 old_ioas = old_hwpt->parent->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 418 else
588f26078f3dfd4 Nicolin Chen 2023-08-01 419 old_ioas = old_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 420
cec938742db5c16 Nicolin Chen 2023-08-02 421 if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 422 *sw_msi_only = true;
cec938742db5c16 Nicolin Chen 2023-08-02 423 else
cec938742db5c16 Nicolin Chen 2023-08-02 424 *sw_msi_only = false;
cec938742db5c16 Nicolin Chen 2023-08-02 425
588f26078f3dfd4 Nicolin Chen 2023-08-01 426 /* When switching IOAS, enforcing the new IOAS is a must */
cec938742db5c16 Nicolin Chen 2023-08-02 427 if (old_ioas != new_ioas)
cec938742db5c16 Nicolin Chen 2023-08-02 428 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 429 /*
cec938742db5c16 Nicolin Chen 2023-08-02 430 * Do not forget to enforce all regions when switching from a user-
cec938742db5c16 Nicolin Chen 2023-08-02 431 * managed hw_pagetable to its parent kernel-managed hw_pagetable.
cec938742db5c16 Nicolin Chen 2023-08-02 432 */
cec938742db5c16 Nicolin Chen 2023-08-02 @433 if (old_hwpt->user_managed && !new_hwpt->user_managed)
588f26078f3dfd4 Nicolin Chen 2023-08-01 434 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 435 /*
cec938742db5c16 Nicolin Chen 2023-08-02 436 * Do not enforce in the remaining cases when IOAS isn't changed:
cec938742db5c16 Nicolin Chen 2023-08-02 437 * - switching from a kernel-managed hw_pagetable to another kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 438 * managed hw_pagetable associated to the same IOAS. All the existing
cec938742db5c16 Nicolin Chen 2023-08-02 439 * reserved regions remain in the IOAS in this case.
cec938742db5c16 Nicolin Chen 2023-08-02 440 * - switching from a kernel-managed hw_pagetable to its associated
cec938742db5c16 Nicolin Chen 2023-08-02 441 * user-managed hw_pagetable. In this case, all the reserved regions
cec938742db5c16 Nicolin Chen 2023-08-02 442 * except IOMMU_RESV_SW_MSI will be removed from the reserved list.
cec938742db5c16 Nicolin Chen 2023-08-02 443 * - switching from a user-managed hw_pagetable to another user-managed
cec938742db5c16 Nicolin Chen 2023-08-02 444 * hw_pagetable associated to the same parent hw_pagetable (or IOAS).
cec938742db5c16 Nicolin Chen 2023-08-02 445 * In this case, IOMMU_RESV_SW_MSI is already enforced in the IOAS.
cec938742db5c16 Nicolin Chen 2023-08-02 446 */
588f26078f3dfd4 Nicolin Chen 2023-08-01 447 return false;
588f26078f3dfd4 Nicolin Chen 2023-08-01 448 }
588f26078f3dfd4 Nicolin Chen 2023-08-01 449
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* [yiliu1765-iommufd:wip/iommufd_nesting_08042023-yi 12/57] drivers/iommu/iommufd/device.c:358 iommufd_must_remove_rr() error: we previously assumed 'new_hwpt' could be null (see line 341)
@ 2023-08-07 5:41 Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2023-08-07 5:41 UTC (permalink / raw)
To: oe-kbuild, Yi Liu, Kevin Tian; +Cc: lkp, oe-kbuild-all
tree: https://github.com/yiliu1765/iommufd.git wip/iommufd_nesting_08042023-yi
head: 298b42007955fc150cad88c629de50dab7050f15
commit: cec938742db5c16708db0642a49e51085bee34f6 [12/57] iommufd: Handle IOMMU_RESV_SW_MSI complication with user-managed HWPTs
config: i386-randconfig-m021-20230806 (https://download.01.org/0day-ci/archive/20230806/202308062128.ASglP8pP-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230806/202308062128.ASglP8pP-lkp@intel.com/reproduce)
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 <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202308062128.ASglP8pP-lkp@intel.com/
New smatch warnings:
drivers/iommu/iommufd/device.c:358 iommufd_must_remove_rr() error: we previously assumed 'new_hwpt' could be null (see line 341)
drivers/iommu/iommufd/device.c:433 iommufd_must_enforce_rr() error: we previously assumed 'old_hwpt' could be null (see line 414)
vim +/new_hwpt +358 drivers/iommu/iommufd/device.c
588f26078f3dfd4 Nicolin Chen 2023-08-01 330 static bool iommufd_must_remove_rr(struct iommufd_hw_pagetable *old_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 331 struct iommufd_hw_pagetable *new_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 332 bool *keep_sw_msi)
588f26078f3dfd4 Nicolin Chen 2023-08-01 333 {
cec938742db5c16 Nicolin Chen 2023-08-02 334 struct iommufd_ioas *old_ioas, *new_ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 335
cec938742db5c16 Nicolin Chen 2023-08-02 336 if (old_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 337 old_ioas = old_hwpt->parent->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 338 else
cec938742db5c16 Nicolin Chen 2023-08-02 339 old_ioas = old_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 340
588f26078f3dfd4 Nicolin Chen 2023-08-01 @341 if (!new_hwpt)
588f26078f3dfd4 Nicolin Chen 2023-08-01 342 new_ioas = NULL;
This code assumes that new_hwpt can be NULL
cec938742db5c16 Nicolin Chen 2023-08-02 343 else if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 344 new_ioas = new_hwpt->parent->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 345 else
588f26078f3dfd4 Nicolin Chen 2023-08-01 346 new_ioas = new_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 347
588f26078f3dfd4 Nicolin Chen 2023-08-01 348 /* When switching IOAS, cleaning up the old IOAS is a must */
cec938742db5c16 Nicolin Chen 2023-08-02 349 if (old_ioas != new_ioas) {
cec938742db5c16 Nicolin Chen 2023-08-02 350 *keep_sw_msi = false;
cec938742db5c16 Nicolin Chen 2023-08-02 351 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 352 }
cec938742db5c16 Nicolin Chen 2023-08-02 353
cec938742db5c16 Nicolin Chen 2023-08-02 354 /*
cec938742db5c16 Nicolin Chen 2023-08-02 355 * Must keep IOMMU_RESV_SW_MSI when switching from a kernel-managed
cec938742db5c16 Nicolin Chen 2023-08-02 356 * hw_pagetable to its associated user-managed hw_pagetable.
cec938742db5c16 Nicolin Chen 2023-08-02 357 */
cec938742db5c16 Nicolin Chen 2023-08-02 @358 if (!old_hwpt->user_managed && new_hwpt->user_managed) {
^^^^^^^^^^^^^^^^^^^^^^
Unchecked dereference.
cec938742db5c16 Nicolin Chen 2023-08-02 359 *keep_sw_msi = true;
588f26078f3dfd4 Nicolin Chen 2023-08-01 360 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 361 }
cec938742db5c16 Nicolin Chen 2023-08-02 362 /*
cec938742db5c16 Nicolin Chen 2023-08-02 363 * Do not remove in the remaining cases when IOAS isn't changed:
cec938742db5c16 Nicolin Chen 2023-08-02 364 * - switching from a kernel-managed hw_pagetable to another kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 365 * managed hw_pagetable associated to the same IOAS. All the existing
cec938742db5c16 Nicolin Chen 2023-08-02 366 * reserved regions remain in the IOAS in this case.
cec938742db5c16 Nicolin Chen 2023-08-02 367 * - switching from a user-managed hw_pagetable to an associated kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 368 * managed hw_pagetable. In this case, all reserved regions must have
cec938742db5c16 Nicolin Chen 2023-08-02 369 * been enforced in the IOAS, i.e. no removal after the enforcement.
cec938742db5c16 Nicolin Chen 2023-08-02 370 * - switching from a user-managed hw_pagetable to another user-managed
cec938742db5c16 Nicolin Chen 2023-08-02 371 * hw_pagetable associated to the same parent hw_pagetable (or IOAS).
cec938742db5c16 Nicolin Chen 2023-08-02 372 * In this case, the existing IOMMU_RESV_SW_MSI regions must be kept.
cec938742db5c16 Nicolin Chen 2023-08-02 373 */
588f26078f3dfd4 Nicolin Chen 2023-08-01 374 return false;
588f26078f3dfd4 Nicolin Chen 2023-08-01 375 }
[ snip ]
588f26078f3dfd4 Nicolin Chen 2023-08-01 403 static bool iommufd_must_enforce_rr(struct iommufd_hw_pagetable *old_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 404 struct iommufd_hw_pagetable *new_hwpt,
cec938742db5c16 Nicolin Chen 2023-08-02 405 bool *sw_msi_only)
588f26078f3dfd4 Nicolin Chen 2023-08-01 406 {
cec938742db5c16 Nicolin Chen 2023-08-02 407 struct iommufd_ioas *old_ioas, *new_ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 408
cec938742db5c16 Nicolin Chen 2023-08-02 409 if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 410 new_ioas = new_hwpt->parent->ioas;
cec938742db5c16 Nicolin Chen 2023-08-02 411 else
cec938742db5c16 Nicolin Chen 2023-08-02 412 new_ioas = new_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 413
588f26078f3dfd4 Nicolin Chen 2023-08-01 @414 if (!old_hwpt)
^^^^^^^^
Same
588f26078f3dfd4 Nicolin Chen 2023-08-01 415 old_ioas = NULL;
cec938742db5c16 Nicolin Chen 2023-08-02 416 else if (old_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 417 old_ioas = old_hwpt->parent->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 418 else
588f26078f3dfd4 Nicolin Chen 2023-08-01 419 old_ioas = old_hwpt->ioas;
588f26078f3dfd4 Nicolin Chen 2023-08-01 420
cec938742db5c16 Nicolin Chen 2023-08-02 421 if (new_hwpt->user_managed)
cec938742db5c16 Nicolin Chen 2023-08-02 422 *sw_msi_only = true;
cec938742db5c16 Nicolin Chen 2023-08-02 423 else
cec938742db5c16 Nicolin Chen 2023-08-02 424 *sw_msi_only = false;
cec938742db5c16 Nicolin Chen 2023-08-02 425
588f26078f3dfd4 Nicolin Chen 2023-08-01 426 /* When switching IOAS, enforcing the new IOAS is a must */
cec938742db5c16 Nicolin Chen 2023-08-02 427 if (old_ioas != new_ioas)
cec938742db5c16 Nicolin Chen 2023-08-02 428 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 429 /*
cec938742db5c16 Nicolin Chen 2023-08-02 430 * Do not forget to enforce all regions when switching from a user-
cec938742db5c16 Nicolin Chen 2023-08-02 431 * managed hw_pagetable to its parent kernel-managed hw_pagetable.
cec938742db5c16 Nicolin Chen 2023-08-02 432 */
cec938742db5c16 Nicolin Chen 2023-08-02 @433 if (old_hwpt->user_managed && !new_hwpt->user_managed)
^^^^^^^^^^^^^^^^^^^^^^
Unchecked.
588f26078f3dfd4 Nicolin Chen 2023-08-01 434 return true;
cec938742db5c16 Nicolin Chen 2023-08-02 435 /*
cec938742db5c16 Nicolin Chen 2023-08-02 436 * Do not enforce in the remaining cases when IOAS isn't changed:
cec938742db5c16 Nicolin Chen 2023-08-02 437 * - switching from a kernel-managed hw_pagetable to another kernel-
cec938742db5c16 Nicolin Chen 2023-08-02 438 * managed hw_pagetable associated to the same IOAS. All the existing
cec938742db5c16 Nicolin Chen 2023-08-02 439 * reserved regions remain in the IOAS in this case.
cec938742db5c16 Nicolin Chen 2023-08-02 440 * - switching from a kernel-managed hw_pagetable to its associated
cec938742db5c16 Nicolin Chen 2023-08-02 441 * user-managed hw_pagetable. In this case, all the reserved regions
cec938742db5c16 Nicolin Chen 2023-08-02 442 * except IOMMU_RESV_SW_MSI will be removed from the reserved list.
cec938742db5c16 Nicolin Chen 2023-08-02 443 * - switching from a user-managed hw_pagetable to another user-managed
cec938742db5c16 Nicolin Chen 2023-08-02 444 * hw_pagetable associated to the same parent hw_pagetable (or IOAS).
cec938742db5c16 Nicolin Chen 2023-08-02 445 * In this case, IOMMU_RESV_SW_MSI is already enforced in the IOAS.
cec938742db5c16 Nicolin Chen 2023-08-02 446 */
588f26078f3dfd4 Nicolin Chen 2023-08-01 447 return false;
588f26078f3dfd4 Nicolin Chen 2023-08-01 448 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-08-07 5:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-06 13:52 [yiliu1765-iommufd:wip/iommufd_nesting_08042023-yi 12/57] drivers/iommu/iommufd/device.c:358 iommufd_must_remove_rr() error: we previously assumed 'new_hwpt' could be null (see line 341) kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2023-08-07 5:41 Dan Carpenter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.