/kernel/linux/linux-5.10/kernel/livepatch/ |
H A D | shadow.c | 3 * shadow.c - Shadow Variables 13 * The shadow variable API provides a simple relationship between an 15 * caller to provide any mutual exclusion required of the shadow data. 17 * Once a shadow variable is attached to its parent object via the 19 * call to klp_shadow_get() may then return the shadow variable's data 20 * pointer. Callers of klp_shadow_*alloc() should prepare shadow data 23 * The klp_shadow_*alloc() API calls may allocate memory for new shadow 42 * the shadow variables it references. 47 * struct klp_shadow - shadow variable structure 63 * klp_shadow_match() - verify a shadow variabl 70 klp_shadow_match(struct klp_shadow *shadow, void *obj, unsigned long id) klp_shadow_match() argument 85 struct klp_shadow *shadow; klp_shadow_get() local 234 klp_shadow_free_struct(struct klp_shadow *shadow, klp_shadow_dtor_t dtor) klp_shadow_free_struct() argument 255 struct klp_shadow *shadow; klp_shadow_free() local 285 struct klp_shadow *shadow; klp_shadow_free_all() local [all...] |
/kernel/linux/linux-6.6/kernel/livepatch/ |
H A D | shadow.c | 3 * shadow.c - Shadow Variables 13 * The shadow variable API provides a simple relationship between an 15 * caller to provide any mutual exclusion required of the shadow data. 17 * Once a shadow variable is attached to its parent object via the 19 * call to klp_shadow_get() may then return the shadow variable's data 20 * pointer. Callers of klp_shadow_*alloc() should prepare shadow data 23 * The klp_shadow_*alloc() API calls may allocate memory for new shadow 42 * the shadow variables it references. 47 * struct klp_shadow - shadow variable structure 63 * klp_shadow_match() - verify a shadow variabl 70 klp_shadow_match(struct klp_shadow *shadow, void *obj, unsigned long id) klp_shadow_match() argument 85 struct klp_shadow *shadow; klp_shadow_get() local 234 klp_shadow_free_struct(struct klp_shadow *shadow, klp_shadow_dtor_t dtor) klp_shadow_free_struct() argument 255 struct klp_shadow *shadow; klp_shadow_free() local 285 struct klp_shadow *shadow; klp_shadow_free_all() local [all...] |
/kernel/linux/linux-6.6/drivers/scsi/ |
H A D | xen-scsifront.c | 121 struct vscsifrnt_shadow *shadow[VSCSIIF_MAX_REQS]; member 163 info->shadow[id] = NULL; in _scsifront_put_rqid() 182 struct vscsifrnt_shadow *shadow) in scsifront_do_request() 186 struct scsi_cmnd *sc = shadow->sc; in scsifront_do_request() 197 info->shadow[id] = shadow; in scsifront_do_request() 198 shadow->rqid = id; in scsifront_do_request() 204 ring_req->act = shadow->act; in scsifront_do_request() 205 ring_req->ref_rqid = shadow->ref_rqid; in scsifront_do_request() 206 ring_req->nr_segments = shadow in scsifront_do_request() 181 scsifront_do_request(struct vscsifrnt_info *info, struct vscsifrnt_shadow *shadow) scsifront_do_request() argument 239 scsifront_gnttab_done(struct vscsifrnt_info *info, struct vscsifrnt_shadow *shadow) scsifront_gnttab_done() argument 302 struct vscsifrnt_shadow *shadow; scsifront_cdb_cmd_done() local 336 struct vscsifrnt_shadow *shadow = info->shadow[id]; scsifront_sync_cmd_done() local 367 struct vscsifrnt_shadow *shadow; scsifront_do_response() local 470 map_data_for_request(struct vscsifrnt_info *info, struct scsi_cmnd *sc, struct vscsifrnt_shadow *shadow) map_data_for_request() argument 610 struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc); scsifront_queuecommand() local 666 struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc); scsifront_action_handler() local [all...] |
/kernel/linux/linux-5.10/drivers/scsi/ |
H A D | xen-scsifront.c | 118 struct vscsifrnt_shadow *shadow[VSCSIIF_MAX_REQS]; member 160 info->shadow[id] = NULL; in _scsifront_put_rqid() 179 struct vscsifrnt_shadow *shadow) in scsifront_do_request() 183 struct scsi_cmnd *sc = shadow->sc; in scsifront_do_request() 194 info->shadow[id] = shadow; in scsifront_do_request() 195 shadow->rqid = id; in scsifront_do_request() 201 ring_req->act = shadow->act; in scsifront_do_request() 202 ring_req->ref_rqid = shadow->ref_rqid; in scsifront_do_request() 203 ring_req->nr_segments = shadow in scsifront_do_request() 178 scsifront_do_request(struct vscsifrnt_info *info, struct vscsifrnt_shadow *shadow) scsifront_do_request() argument 227 scsifront_gnttab_done(struct vscsifrnt_info *info, struct vscsifrnt_shadow *shadow) scsifront_gnttab_done() argument 249 struct vscsifrnt_shadow *shadow; scsifront_cdb_cmd_done() local 280 struct vscsifrnt_shadow *shadow = info->shadow[id]; scsifront_sync_cmd_done() local 391 map_data_for_request(struct vscsifrnt_info *info, struct scsi_cmnd *sc, struct vscsifrnt_shadow *shadow) map_data_for_request() argument 531 struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc); scsifront_queuecommand() local 584 struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc); scsifront_action_handler() local [all...] |
/kernel/linux/linux-6.6/mm/kmsan/ |
H A D | init.c | 67 * Initialize the shadow for existing mappings during kernel initialization. 83 /* Allocate shadow for .data */ in kmsan_init_shadow() 97 struct page *shadow, *origin; member 106 * time with a certain order, it is reserved as a shadow block, for the second 108 * shadow and origin ranges from the previously saved shadow and origin blocks, 116 struct page *shadow, *origin; in kmsan_memblock_free_pages() local 118 if (!held_back[order].shadow) { in kmsan_memblock_free_pages() 119 held_back[order].shadow = page; in kmsan_memblock_free_pages() 126 shadow in kmsan_memblock_free_pages() 168 struct page *page, *shadow, *origin; do_collection() local [all...] |
H A D | shadow.c | 3 * KMSAN shadow implementation. 85 void *shadow; in kmsan_get_shadow_origin_ptr() local 97 shadow = kmsan_get_metadata(address, KMSAN_META_SHADOW); in kmsan_get_shadow_origin_ptr() 98 if (!shadow) in kmsan_get_shadow_origin_ptr() 101 ret.shadow = shadow; in kmsan_get_shadow_origin_ptr() 108 ret.shadow = dummy_store_page; in kmsan_get_shadow_origin_ptr() 112 ret.shadow = dummy_load_page; in kmsan_get_shadow_origin_ptr() 119 * Obtain the shadow or origin pointer for the given address, or NULL if there's 175 struct page *shadow, *origi in kmsan_alloc_page() local 280 void *shadow, *origin; kmsan_init_alloc_meta_for_range() local 299 kmsan_setup_meta(struct page *page, struct page *shadow, struct page *origin, int order) kmsan_setup_meta() argument [all...] |
H A D | instrumentation.c | 47 /* Get shadow and origin pointers for a memory load with non-standard size. */ 57 /* Get shadow and origin pointers for a memory store with non-standard size. */ 68 * Declare functions that obtain shadow/origin pointers for loads and stores 134 * get_param0_metadata() and set_retval_metadata() to store the shadow/origin 138 static inline void get_param0_metadata(u64 *shadow, in get_param0_metadata() argument 143 *shadow = *(u64 *)(ctx->cstate.param_tls); in get_param0_metadata() 147 static inline void set_retval_metadata(u64 shadow, depot_stack_handle_t origin) in set_retval_metadata() argument 151 *(u64 *)(ctx->cstate.retval_tls) = shadow; in set_retval_metadata() 161 u64 shadow; in __msan_memmove() local 163 get_param0_metadata(&shadow, in __msan_memmove() 186 u64 shadow; __msan_memcpy() local 213 u64 shadow; __msan_memset() local [all...] |
H A D | core.c | 90 u32 *align_shadow_src, shadow; in kmsan_internal_memmove_metadata() local 101 * @src is untracked: zero out destination shadow, ignore the in kmsan_internal_memmove_metadata() 132 shadow = align_shadow_src[i]; in kmsan_internal_memmove_metadata() 137 * of the first shadow slot. in kmsan_internal_memmove_metadata() 140 shadow = (shadow >> skip_bits) << skip_bits; in kmsan_internal_memmove_metadata() 147 * last shadow slot. in kmsan_internal_memmove_metadata() 150 shadow = (shadow << skip_bits) >> skip_bits; in kmsan_internal_memmove_metadata() 154 * shadow i in kmsan_internal_memmove_metadata() 318 unsigned char *shadow = NULL; kmsan_internal_check_memory() local [all...] |
H A D | hooks.c | 147 * This function creates new shadow/origin pages for the physical pages mapped 148 * into the virtual memory. If those physical pages already had shadow/origin, 156 struct page *shadow, *origin; in kmsan_ioremap_page_range() local 166 shadow = alloc_pages(gfp_mask, 1); in kmsan_ioremap_page_range() 168 if (!shadow || !origin) { in kmsan_ioremap_page_range() 174 vmalloc_shadow(start + off + PAGE_SIZE), prot, &shadow, in kmsan_ioremap_page_range() 180 shadow = NULL; in kmsan_ioremap_page_range() 200 * Something went wrong. Clean up shadow/origin pages allocated in kmsan_ioremap_page_range() 204 if (shadow) in kmsan_ioremap_page_range() 205 __free_pages(shadow, in kmsan_ioremap_page_range() 224 struct page *shadow, *origin; kmsan_iounmap_page_range() local [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | scx200_gpio.h | 13 #define __SCx200_GPIO_SHADOW unsigned long *shadow = scx200_gpio_shadow+bank 16 #define __SCx200_GPIO_OUT __asm__ __volatile__("outsl":"=mS" (shadow):"d" (ioaddr), "0" (shadow)) 46 set_bit(index, shadow); /* __set_bit()? */ in scx200_gpio_set_high() 57 clear_bit(index, shadow); /* __clear_bit()? */ in scx200_gpio_set_low() 69 set_bit(index, shadow); in scx200_gpio_set() 71 clear_bit(index, shadow); in scx200_gpio_set() 81 change_bit(index, shadow); in scx200_gpio_change()
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | scx200_gpio.h | 13 #define __SCx200_GPIO_SHADOW unsigned long *shadow = scx200_gpio_shadow+bank 16 #define __SCx200_GPIO_OUT __asm__ __volatile__("outsl":"=mS" (shadow):"d" (ioaddr), "0" (shadow)) 46 set_bit(index, shadow); /* __set_bit()? */ in scx200_gpio_set_high() 57 clear_bit(index, shadow); /* __clear_bit()? */ in scx200_gpio_set_low() 69 set_bit(index, shadow); in scx200_gpio_set() 71 clear_bit(index, shadow); in scx200_gpio_set() 81 change_bit(index, shadow); in scx200_gpio_change()
|
/kernel/linux/linux-5.10/fs/nilfs2/ |
H A D | mdt.c | 472 struct nilfs_shadow_map *shadow = mdi->mi_shadow; in nilfs_mdt_clear() local 477 if (shadow) { in nilfs_mdt_clear() 478 struct inode *s_inode = shadow->inode; in nilfs_mdt_clear() 480 shadow->inode = NULL; in nilfs_mdt_clear() 509 * nilfs_mdt_setup_shadow_map - setup shadow map and bind it to metadata file 511 * @shadow: shadow mapping 514 struct nilfs_shadow_map *shadow) in nilfs_mdt_setup_shadow_map() 519 INIT_LIST_HEAD(&shadow->frozen_buffers); in nilfs_mdt_setup_shadow_map() 525 shadow in nilfs_mdt_setup_shadow_map() 513 nilfs_mdt_setup_shadow_map(struct inode *inode, struct nilfs_shadow_map *shadow) nilfs_mdt_setup_shadow_map() argument 538 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_save_to_shadow_map() local 558 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; nilfs_mdt_freeze_buffer() local 590 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; nilfs_mdt_get_frozen_buffer() local 607 nilfs_release_frozen_buffers(struct nilfs_shadow_map *shadow) nilfs_release_frozen_buffers() argument 628 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_restore_from_shadow_map() local 654 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_clear_shadow_map() local [all...] |
/kernel/linux/linux-6.6/fs/nilfs2/ |
H A D | mdt.c | 475 struct nilfs_shadow_map *shadow = mdi->mi_shadow; in nilfs_mdt_clear() local 480 if (shadow) { in nilfs_mdt_clear() 481 struct inode *s_inode = shadow->inode; in nilfs_mdt_clear() 483 shadow->inode = NULL; in nilfs_mdt_clear() 512 * nilfs_mdt_setup_shadow_map - setup shadow map and bind it to metadata file 514 * @shadow: shadow mapping 517 struct nilfs_shadow_map *shadow) in nilfs_mdt_setup_shadow_map() 522 INIT_LIST_HEAD(&shadow->frozen_buffers); in nilfs_mdt_setup_shadow_map() 528 shadow in nilfs_mdt_setup_shadow_map() 516 nilfs_mdt_setup_shadow_map(struct inode *inode, struct nilfs_shadow_map *shadow) nilfs_mdt_setup_shadow_map() argument 541 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_save_to_shadow_map() local 561 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; nilfs_mdt_freeze_buffer() local 593 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; nilfs_mdt_get_frozen_buffer() local 610 nilfs_release_frozen_buffers(struct nilfs_shadow_map *shadow) nilfs_release_frozen_buffers() argument 631 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_restore_from_shadow_map() local 657 struct nilfs_shadow_map *shadow = mi->mi_shadow; nilfs_mdt_clear_shadow_map() local [all...] |
/kernel/linux/linux-5.10/drivers/gpio/ |
H A D | gpio-janz-ttl.c | 60 u8 *shadow; in ttl_get_value() local 64 shadow = &mod->porta_shadow; in ttl_get_value() 66 shadow = &mod->portb_shadow; in ttl_get_value() 69 shadow = &mod->portc_shadow; in ttl_get_value() 74 ret = *shadow & BIT(offset); in ttl_get_value() 83 u8 *shadow; in ttl_set_value() local 87 shadow = &mod->porta_shadow; in ttl_set_value() 90 shadow = &mod->portb_shadow; in ttl_set_value() 94 shadow = &mod->portc_shadow; in ttl_set_value() 100 *shadow | in ttl_set_value() [all...] |
H A D | gpio-mm-lantiq.c | 31 u16 shadow; /* shadow the latches state */ member 35 * ltq_mm_apply() - write the shadow value to the ebu address. 38 * Write the shadow value to the EBU to set the gpios. We need to set the 47 __raw_writew(chip->shadow, chip->mmchip.regs); in ltq_mm_apply() 58 * Set the shadow value and call ltq_mm_apply. 65 chip->shadow |= (1 << offset); in ltq_mm_set() 67 chip->shadow &= ~(1 << offset); in ltq_mm_set() 104 u32 shadow; in ltq_mm_probe() local 117 /* store the shadow valu in ltq_mm_probe() [all...] |
/kernel/linux/linux-6.6/drivers/gpio/ |
H A D | gpio-janz-ttl.c | 60 u8 *shadow; in ttl_get_value() local 64 shadow = &mod->porta_shadow; in ttl_get_value() 66 shadow = &mod->portb_shadow; in ttl_get_value() 69 shadow = &mod->portc_shadow; in ttl_get_value() 74 ret = *shadow & BIT(offset); in ttl_get_value() 83 u8 *shadow; in ttl_set_value() local 87 shadow = &mod->porta_shadow; in ttl_set_value() 90 shadow = &mod->portb_shadow; in ttl_set_value() 94 shadow = &mod->portc_shadow; in ttl_set_value() 100 *shadow | in ttl_set_value() [all...] |
H A D | gpio-mm-lantiq.c | 31 u16 shadow; /* shadow the latches state */ member 35 * ltq_mm_apply() - write the shadow value to the ebu address. 38 * Write the shadow value to the EBU to set the gpios. We need to set the 47 __raw_writew(chip->shadow, chip->mmchip.regs); in ltq_mm_apply() 58 * Set the shadow value and call ltq_mm_apply. 65 chip->shadow |= (1 << offset); in ltq_mm_set() 67 chip->shadow &= ~(1 << offset); in ltq_mm_set() 104 u32 shadow; in ltq_mm_probe() local 117 /* store the shadow valu in ltq_mm_probe() [all...] |
/kernel/linux/linux-5.10/drivers/block/ |
H A D | xen-blkfront.c | 189 struct blk_shadow shadow[]; member 291 rinfo->shadow_free = rinfo->shadow[free].req.u.rw.id; in get_id_from_freelist() 292 rinfo->shadow[free].req.u.rw.id = 0x0fffffee; /* debug */ in get_id_from_freelist() 299 if (rinfo->shadow[id].req.u.rw.id != id) in add_id_to_freelist() 301 if (rinfo->shadow[id].request == NULL) in add_id_to_freelist() 303 rinfo->shadow[id].req.u.rw.id = rinfo->shadow_free; in add_id_to_freelist() 304 rinfo->shadow[id].request = NULL; in add_id_to_freelist() 555 rinfo->shadow[id].request = req; in blkif_ring_get_request() 556 rinfo->shadow[id].status = REQ_PROCESSING; in blkif_ring_get_request() 557 rinfo->shadow[i in blkif_ring_get_request() 623 struct blk_shadow *shadow = &rinfo->shadow[setup->id]; blkif_setup_rw_req_grant() local 2173 struct blk_shadow *shadow = rinfo->shadow; blkfront_resume() local [all...] |
/kernel/linux/linux-6.6/drivers/block/ |
H A D | xen-blkfront.c | 190 struct blk_shadow shadow[]; member 291 rinfo->shadow_free = rinfo->shadow[free].req.u.rw.id; in get_id_from_freelist() 292 rinfo->shadow[free].req.u.rw.id = 0x0fffffee; /* debug */ in get_id_from_freelist() 299 if (rinfo->shadow[id].req.u.rw.id != id) in add_id_to_freelist() 301 if (rinfo->shadow[id].request == NULL) in add_id_to_freelist() 303 rinfo->shadow[id].req.u.rw.id = rinfo->shadow_free; in add_id_to_freelist() 304 rinfo->shadow[id].request = NULL; in add_id_to_freelist() 543 rinfo->shadow[id].request = req; in blkif_ring_get_request() 544 rinfo->shadow[id].status = REQ_PROCESSING; in blkif_ring_get_request() 545 rinfo->shadow[i in blkif_ring_get_request() 611 struct blk_shadow *shadow = &rinfo->shadow[setup->id]; blkif_setup_rw_req_grant() local 2073 struct blk_shadow *shadow = rinfo->shadow; blkfront_resume() local [all...] |
/kernel/linux/linux-5.10/kernel/ |
H A D | cfi.c | 44 /* Page index for the beginning of the shadow */ 46 /* An array of __cfi_check locations (as indices to the shadow) */ 47 shadow_t shadow[1]; member 51 * The shadow covers ~128M from the beginning of the module region. If 61 /* The actual size of the shadow array, minus metadata */ 62 #define SHADOW_ARR_SIZE (SHADOW_SIZE - offsetof(struct cfi_shadow, shadow)) 68 /* Returns the index in the shadow for the given address */ 80 return -1; /* Cannot be addressed with shadow */ in ptr_to_shadow() 85 /* Returns the page address for an index in the shadow */ 95 /* Returns the __cfi_check function address for the given shadow locatio [all...] |
/kernel/linux/linux-6.6/mm/kasan/ |
H A D | report_sw_tags.c | 51 u8 *shadow; in kasan_get_alloc_size() local 62 shadow = (u8 *)kasan_mem_to_shadow(object); in kasan_get_alloc_size() 64 if (*shadow != KASAN_TAG_INVALID) in kasan_get_alloc_size() 68 shadow++; in kasan_get_alloc_size() 81 u8 *shadow = (u8 *)kasan_mem_to_shadow(addr); in kasan_print_tags() local 83 pr_err("Pointer tag: [%02x], memory tag: [%02x]\n", addr_tag, *shadow); in kasan_print_tags()
|
H A D | sw_tags.c | 77 u8 *shadow_first, *shadow_last, *shadow; in kasan_check_range() local 113 for (shadow = shadow_first; shadow <= shadow_last; shadow++) { in kasan_check_range() 114 if (*shadow != tag) { in kasan_check_range()
|
/kernel/linux/linux-6.6/mm/ |
H A D | workingset.c | 176 * slot of the evicted page. This is called a shadow entry. 178 * On cache misses for which there are shadow entries, an eligible 209 static void unpack_shadow(void *shadow, int *memcgidp, pg_data_t **pgdat, in unpack_shadow() argument 212 unsigned long entry = xa_to_value(shadow); in unpack_shadow() 259 * Tests if the shadow entry is for a folio that was recently evicted. 260 * Fills in @lruvec, @token, @workingset with the values unpacked from shadow. 262 static bool lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, in lru_gen_test_recent() argument 270 unpack_shadow(shadow, &memcg_id, &pgdat, token, workingset); in lru_gen_test_recent() 279 static void lru_gen_refault(struct folio *folio, void *shadow) in lru_gen_refault() argument 292 recent = lru_gen_test_recent(shadow, typ in lru_gen_refault() 333 lru_gen_test_recent(void *shadow, bool file, struct lruvec **lruvec, unsigned long *token, bool *workingset) lru_gen_test_recent() argument 339 lru_gen_refault(struct folio *folio, void *shadow) lru_gen_refault() argument 426 workingset_test_recent(void *shadow, bool file, bool *workingset) workingset_test_recent() argument 536 workingset_refault(struct folio *folio, void *shadow) workingset_refault() argument [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_vm_sdma.c | 44 if (table->shadow) in amdgpu_vm_sdma_map_table() 45 r = amdgpu_ttm_alloc_gart(&table->shadow->tbo); in amdgpu_vm_sdma_map_table() 241 if (bo->shadow) in amdgpu_vm_sdma_update() 242 amdgpu_vm_sdma_set_ptes(p, bo->shadow, pe, addr, in amdgpu_vm_sdma_update() 251 (bo->shadow ? 2 : 1); in amdgpu_vm_sdma_update() 266 if (bo->shadow) in amdgpu_vm_sdma_update() 267 amdgpu_vm_sdma_copy_ptes(p, bo->shadow, pe, nptes); in amdgpu_vm_sdma_update()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_vm_sdma.c | 44 if (table->shadow) in amdgpu_vm_sdma_map_table() 45 r = amdgpu_ttm_alloc_gart(&table->shadow->tbo); in amdgpu_vm_sdma_map_table() 267 if (vmbo->shadow) in amdgpu_vm_sdma_update() 268 amdgpu_vm_sdma_set_ptes(p, vmbo->shadow, pe, addr, in amdgpu_vm_sdma_update() 277 (vmbo->shadow ? 2 : 1); in amdgpu_vm_sdma_update() 292 if (vmbo->shadow) in amdgpu_vm_sdma_update() 293 amdgpu_vm_sdma_copy_ptes(p, vmbo->shadow, pe, nptes); in amdgpu_vm_sdma_update()
|