/linux/drivers/misc/ |
H A D | sram-exec.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * SRAM protect-exec region helper functions 5 * Copyright (C) 2017 Texas Instruments Incorporated - https://www.ti.com/ 25 unsigned long base = (unsigned long)part->base; in sram_check_protect_exec() 26 unsigned long end = base + block->size; in sram_check_protect_exec() 29 dev_err(sram->dev, in sram_check_protect_exec() 30 "SRAM pool marked with 'protect-exec' is not page aligned and will not be created.\n"); in sram_check_protect_exec() 31 return -ENOMEM; in sram_check_protect_exec() 40 list_add_tail(&part->list, &exec_pool_list); in sram_add_protect_exec() 47 * sram_exec_copy - copy data to a protected executable region of sram [all …]
|
H A D | sram.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Generic on-chip SRAM allocation driver 19 #include <soc/at91/atmel-secumod.h> 33 mutex_lock(&part->lock); in sram_read() 34 memcpy_fromio(buf, part->base + pos, count); in sram_read() 35 mutex_unlock(&part->lock); in sram_read() 48 mutex_lock(&part->lock); in sram_write() 49 memcpy_toio(part->base + pos, buf, count); in sram_write() 50 mutex_unlock(&part->lock); in sram_write() 60 part->pool = devm_gen_pool_create(sram->dev, ilog2(SRAM_GRANULARITY), in sram_add_pool() [all …]
|
/linux/drivers/gpu/drm/xe/ |
H A D | xe_hw_engine_group_types.h | 1 /* SPDX-License-Identifier: MIT */ 14 * enum xe_hw_engine_group_execution_mode - possible execution modes of a hw 17 * @EXEC_MODE_LR: execution in long-running mode 26 * struct xe_hw_engine_group - Hardware engine group 33 * @exec_queue_list: list of exec queues attached to this 37 /** @resume_work: worker to resume faulting LR exec queues */ 39 /** @resume_wq: workqueue to resume faulting LR exec queues */ 42 * @mode_sem: used to protect this group's hardware resources and ensure
|
H A D | xe_exec_queue.c | 1 // SPDX-License-Identifier: MIT 40 if (q->vm) in __xe_exec_queue_free() 41 xe_vm_put(q->vm); in __xe_exec_queue_free() 43 if (q->xef) in __xe_exec_queue_free() 44 xe_file_put(q->xef); in __xe_exec_queue_free() 56 struct xe_gt *gt = hwe->gt; in __xe_exec_queue_alloc() 64 return ERR_PTR(-ENOMEM); in __xe_exec_queue_alloc() 66 kref_init(&q->refcount); in __xe_exec_queue_alloc() 67 q->flags = flags; in __xe_exec_queue_alloc() 68 q->hwe = hwe; in __xe_exec_queue_alloc() [all …]
|
H A D | xe_device_types.h | 1 /* SPDX-License-Identifier: MIT */ 3 * Copyright © 2022-2023 Intel Corporation 40 #define GRAPHICS_VER(xe) ((xe)->info.graphics_verx100 / 100) 41 #define MEDIA_VER(xe) ((xe)->info.media_verx100 / 100) 42 #define GRAPHICS_VERx100(xe) ((xe)->info.graphics_verx100) 43 #define MEDIA_VERx100(xe) ((xe)->info.media_verx100) 44 #define IS_DGFX(xe) ((xe)->info.is_dgfx) 45 #define HAS_HECI_GSCFI(xe) ((xe)->info.has_heci_gscfi) 46 #define HAS_HECI_CSCFI(xe) ((xe)->info.has_heci_cscfi) 57 ((_xe)->info.platform == (_platform) && \ [all …]
|
/linux/Documentation/gpu/ |
H A D | drm-vm-bind-locking.rst | 1 .. SPDX-License-Identifier: (GPL-2.0+ OR MIT) 30 meta-data. Typically one per client (DRM file-private), or one per 33 associated meta-data. The backing storage of a gpu_vma can either be 34 a GEM object or anonymous or page-cache pages mapped also into the CPU 40 is anonymous or page-cache pages as described above. 43 page-table entries point to that backing store. 47 the :doc:`dma-buf doc </driver-api/dma-buf>`. 53 allows deadlock-safe locking of multiple dma_resvs in arbitrary 55 :doc:`dma-buf doc </driver-api/dma-buf>`. 56 * ``exec function``: An exec function is a function that revalidates all [all …]
|
/linux/drivers/gpu/drm/ |
H A D | drm_gpuvm.c | 1 // SPDX-License-Identifier: GPL-2.0-only OR MIT 47 * The GPU VA manager internally uses a rb-tree to manage the 62 * entries from within dma-fence signalling critical sections it is enough to 63 * pre-allocate the &drm_gpuva structures. 88 * lists are maintained in order to accelerate locking of dma-resv locks and 112 * implement Vulkan 'Sparse Memory Bindings' - drivers UAPIs often refer to this 150 * created such that those mappings are split up and re-mapped partically. 161 * dma-fence signalling critical path. 172 * by drm_gpuvm_sm_map() - it doesn't cover any arbitrary combinations of these. 180 * old: |-----------| (bo_offset=n) [all …]
|
/linux/Documentation/devicetree/bindings/arm/omap/ |
H A D | mpu.txt | 1 * TI - MPU (Main Processor Unit) subsystem 8 - compatible : Should be "ti,omap3-mpu" for OMAP3 9 Should be "ti,omap4-mpu" for OMAP4 10 Should be "ti,omap5-mpu" for OMAP5 11 - ti,hwmods: "mpu" 14 - sram: Phandle to the ocmcram node 17 - pm-sram: Phandles to ocmcram nodes to be used for power management. 18 First should be type 'protect-exec' for the driver to use to copy 25 - For an OMAP5 SMP system: 28 compatible = "ti,omap5-mpu"; [all …]
|
/linux/tools/testing/selftests/powerpc/mm/ |
H A D | pkey_siginfo.c | 1 // SPDX-License-Identifier: GPL-2.0 44 if (sinfo->si_code != SEGV_PKUERR) { in segv_handler() 50 if (sinfo->si_addr != (void *) fault_addr) { in segv_handler() 68 pgstart = (void *) ((unsigned long) fault_addr & ~(pgsize - 1)); in segv_handler() 72 * reassociate the page with the exec-only pkey since execute in segv_handler() 77 * read-write rights, change the AMR permission bits for the in segv_handler() 97 static void *protect(void *p) in protect() function 105 base = ((struct region *) p)->base; in protect() 106 size = ((struct region *) p)->size; in protect() 119 * Repeatedly try to protect the common region with a permissive in protect() [all …]
|
/linux/Documentation/devicetree/bindings/memory-controllers/ti/ |
H A D | emif.txt | 3 EMIF - External Memory Interface - is an SDRAM controller used in 11 - compatible : Should be of the form "ti,emif-<ip-rev>" where <ip-rev> 14 "ti,emif-am3352" 15 "ti,emif-am4372" 16 "ti,emif-dra7xx" 17 "ti,emif-keystone" 19 - phy-type : <u32> indicating the DDR phy type. Following are the 24 - device-handle : phandle to a "lpddr2" node representing the memory part 26 - ti,hwmods : For TI hwmods processing and omap device creation 29 - interrupts : interrupt used by the controller [all …]
|
/linux/include/drm/ |
H A D | drm_gpuvm.h | 1 /* SPDX-License-Identifier: GPL-2.0-only OR MIT */ 28 #include <linux/dma-resv.h> 42 * enum drm_gpuva_flags - flags for struct drm_gpuva 66 * struct drm_gpuva - structure to track a GPU VA mapping 126 * @rb: structure containing data to store &drm_gpuvas in a rb-tree 130 * @rb.node: the rb-tree node 138 * through the rb-tree while doing modifications on the rb-tree 144 * @rb.__subtree_last: needed by the interval tree, holding last-in-subtree 166 va->va.addr = addr; in drm_gpuva_init() 167 va->va.range = range; in drm_gpuva_init() [all …]
|
/linux/Documentation/arch/x86/ |
H A D | shstk.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Control-flow Enforcement Technology (CET) Shadow Stack 10 Control-flow Enforcement Technology (CET) covers several related x86 processor 12 can protect both applications and the kernel. 20 control-protection fault. IBT verifies indirect CALL/JMP targets are intended 22 Stack and Indirect Branch Tracking. Today in the 64-bit kernel, only userspace 45 from readelf/llvm-readelf output:: 47 readelf -n <application> | grep -a SHSTK 60 on a per-thread basis. The enablement status is inherited on clone, so if the 90 -EPERM if any of the passed feature are locked. [all …]
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_gem.c | 32 #include <linux/dma-buf.h> 48 struct ttm_buffer_object *bo = vmf->vma->vm_private_data; in amdgpu_gem_fault() 49 struct drm_device *ddev = bo->base.dev; in amdgpu_gem_fault() 64 ret = ttm_bo_vm_fault_reserved(vmf, vmf->vma->vm_page_prot, in amdgpu_gem_fault() 69 ret = ttm_bo_vm_dummy_page(vmf, vmf->vma->vm_page_prot); in amdgpu_gem_fault() 71 if (ret == VM_FAULT_RETRY && !(vmf->flags & FAULT_FLAG_RETRY_NOWAIT)) in amdgpu_gem_fault() 75 dma_resv_unlock(bo->base.resv); in amdgpu_gem_fault() 92 ttm_bo_put(&aobj->tbo); in amdgpu_gem_object_free() 125 bo = &ubo->bo; in amdgpu_gem_object_create() 126 *obj = &bo->tbo.base; in amdgpu_gem_object_create() [all …]
|
H A D | amdgpu_amdkfd_gpuvm.c | 1 // SPDX-License-Identifier: MIT 3 * Copyright 2014-2018 Advanced Micro Devices, Inc. 23 #include <linux/dma-buf.h> 73 #define domain_string(domain) domain_bit_to_string[ffs(domain)-1] 82 list_for_each_entry(entry, &mem->attachments, list) in kfd_mem_is_attached() 83 if (entry->bo_va->base.vm == avm) in kfd_mem_is_attached() 90 * reuse_dmamap() - Check whether adev can share the original 104 return (adev->ram_is_direct_mapped && bo_adev->ram_is_direct_mapped) || in reuse_dmamap() 105 (adev->dev->iommu_group == bo_adev->dev->iommu_group); in reuse_dmamap() 109 * System (TTM + userptr) memory - 15/16th System RAM [all …]
|
/linux/drivers/gpu/drm/panthor/ |
H A D | panthor_mmu.c | 1 // SPDX-License-Identifier: GPL-2.0 or MIT 16 #include <linux/dma-mapping.h> 20 #include <linux/io-pgtable.h> 42 * struct panthor_as_slot - Address space slot 50 * struct panthor_mmu - MMU related data 59 * us to re-assign them to re-assign slots on-demand. 105 * struct panthor_vm_pool - VM pool object 113 * struct panthor_vma - GPU mapping object 133 * struct panthor_vm_op_ctx - VM operation context 135 * With VM operations potentially taking place in a dma-signaling path, we [all …]
|
/linux/Documentation/userspace-api/ |
H A D | mseal.rst | 1 .. SPDX-License-Identifier: GPL-2.0 17 such an attacker primitive can break control-flow integrity guarantees 18 since read-only memory that is supposed to be trusted can become writable 29 ----------------------- 34 - The start address must be in an allocated VMA. 35 - The start address must be page aligned. 36 - The end address (**addr** + **len**) must be in an allocated VMA. 37 - no gap (unallocated memory) between start and end address. 44 - **0**: Success. 45 - **-EINVAL**: [all …]
|
/linux/include/uapi/linux/ |
H A D | taskstats.h | 1 /* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */ 2 /* taskstats.h - exporting per-task statistics 22 /* Format for per-task data returned to userland when 23 * - a task exits 24 * - listener requests stats for a task 33 * c) add new fields after version comment; maintain 64-bit alignment 76 /* Following four fields atomically updated using task->delays->lock */ 88 /* cpu "wall-clock" running time 127 /* Accumulated RSS usage in duration of a task, in MBytes-usecs. 133 __u64 coremem; /* accumulated RSS usage in MB-usec */ [all …]
|
/linux/Documentation/driver-api/ |
H A D | dma-buf.rst | 1 Buffer Sharing and Synchronization (dma-buf) 4 The dma-buf subsystem provides the framework for sharing buffers for 14 interact with the three main primitives offered by dma-buf: 16 - dma-buf, representing a sg_table and exposed to userspace as a file 19 - dma-fence, providing a mechanism to signal when an asynchronous 21 - dma-resv, which manages a set of dma-fences for a particular dma-buf 22 allowing implicit (kernel-ordered) synchronization of work to 27 -------------------------------- 29 For more details on how to design your subsystem's API for dma-buf use, please 30 see Documentation/userspace-api/dma-buf-alloc-exchange.rst. [all …]
|
/linux/Documentation/filesystems/ |
H A D | affs.rst | 1 .. SPDX-License-Identifier: GPL-2.0 19 in file names are case-insensitive, as they ought to be. 44 protect 107 Amiga -> Linux: 111 - R maps to r for user, group and others. On directories, R implies x. 113 - W maps to w. 115 - E maps to x. 117 - D is ignored. 119 - H, S and P are always retained and ignored under Linux. 121 - A is cleared when a file is written to. [all …]
|
/linux/include/linux/sched/ |
H A D | signal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 13 #include <linux/posix-timers.h> 18 * Types defining task->signal and task->sighand and APIs using them: 29 * Per-process accounting stats: 61 * struct thread_group_cputimer - thread group interval timer counts 103 /* current thread group signal load-balancing target: */ 126 * manager, to re-parent orphan (double-forking) child processes 211 * getrlimit/setrlimit use task_lock(current->group_leader) to 212 * protect this instead of the siglock, because they really 218 struct pacct_struct pacct; /* per-process accounting information */ [all …]
|
H A D | mm.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 19 * mmgrab() - Pin a &struct mm_struct. 32 * See also <Documentation/mm/active_mm.rst> for an in-depth explanation 37 atomic_inc(&mm->mm_count); in mmgrab() 52 * user-space, after storing to rq->curr. in mmdrop() 54 if (unlikely(atomic_dec_and_test(&mm->mm_count))) in mmdrop() 77 if (atomic_dec_and_test(&mm->mm_count)) in mmdrop_sched() 78 call_rcu(&mm->delayed_drop, __mmdrop_delayed); in mmdrop_sched() 116 * mmget() - Pin the address space associated with a &struct mm_struct. 120 * go away. This does not protect against parts of the address space being [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
H A D | crypto.c | 1 // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 7 #define MLX5_CRYPTO_DEK_POOLS_NUM (MLX5_ACCEL_OBJ_TYPE_KEY_NUM - 1) 8 #define type2idx(type) ((type) - 1) 17 _a->num_deks - _a->avail_deks - _a->in_use_deks; }) 24 _bulk->avail_deks == _bulk->num_deks; }) 36 struct mutex lock; /* protect the following lists, and the bulks */ 41 /* No in-used keys, and all need to be synced. 50 spinlock_t destroy_lock; /* protect destroy_list */ 87 return dek->obj_id; in mlx5_crypto_dek_get_id() 105 return -EINVAL; in mlx5_crypto_dek_get_key_sz() [all …]
|
/linux/kernel/time/ |
H A D | posix-cpu-timers.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <linux/posix-timers.h> 20 #include "posix-timers.h" 28 pct->bases[CPUCLOCK_PROF].nextevt = cpu_limit * NSEC_PER_SEC; in posix_cputimers_group_init() 29 pct->timers_active = true; in posix_cputimers_group_init() 35 * tsk->signal->posix_cputimers.bases[clock].nextevt expiration cache if 39 * Returns 0 on success, -ESRCH on failure. Can fail if the task is exiting and 48 return -ESRCH; in update_rlimit_cpu() 102 ret = pid_for_clock(clock, false) ? 0 : -EINVAL; in validate_clock_permissions() 115 return pid_task(timer->it.cpu.pid, clock_pid_type(timer->it_clock)); in cpu_timer_task_rcu() [all …]
|
/linux/include/linux/ |
H A D | perf_event.h | 4 * Copyright (C) 2008-2009, Thomas Gleixner <tglx@linutronix.de> 5 * Copyright (C) 2008-2011, Red Hat, Inc., Ingo Molnar 6 * Copyright (C) 2008-2011, Red Hat, Inc., Peter Zijlstra 12 * For licencing details see kernel-base/COPYING 21 * Kernel-internal data types and definitions: 39 #include <linux/rhashtable-types.h> 100 return frag->pad < sizeof(u64); in perf_raw_frag_last() 108 * -1ULL means invalid/unknown. 118 * The hw_idx index is between -1 (unknown) and max depth, 138 int idx; /* index in shared_regs->regs[] */ [all …]
|
/linux/fs/nfs/ |
H A D | internal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 25 if (!nfs_fsid_equal(&NFS_SB(parent)->fsid, &fattr->fsid)) in nfs_attr_check_mountpoint() 26 fattr->valid |= NFS_ATTR_FATTR_MOUNTPOINT; in nfs_attr_check_mountpoint() 31 if (((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) == 0) || in nfs_attr_use_mounted_on_fileid() 32 (((fattr->valid & NFS_ATTR_FATTR_MOUNTPOINT) == 0) && in nfs_attr_use_mounted_on_fileid() 33 ((fattr->valid & NFS_ATTR_FATTR_V4_REFERRAL) == 0))) in nfs_attr_use_mounted_on_fileid() 40 if (!(NFS_SB(dentry->d_sb)->flags & NFS_MOUNT_SOFTREVAL)) in nfs_lookup_is_soft_revalidate() 42 if (!d_is_positive(dentry) || !NFS_FH(d_inode(dentry))->size) in nfs_lookup_is_soft_revalidate() 66 #define NFS_UNSPEC_PORT (-1) 92 * In-kernel mount arguments [all …]
|