/linux/kernel/livepatch/ |
H A D | shadow.c | 73 return shadow->obj == obj && shadow->id == id; in klp_shadow_match() 85 struct klp_shadow *shadow; in klp_shadow_get() local 92 if (klp_shadow_match(shadow, obj, id)) { in klp_shadow_get() 94 return shadow->data; in klp_shadow_get() 237 hash_del_rcu(&shadow->node); in klp_shadow_free_struct() 239 dtor(shadow->obj, shadow->data); in klp_shadow_free_struct() 240 kfree_rcu(shadow, rcu_head); in klp_shadow_free_struct() 255 struct klp_shadow *shadow; in klp_shadow_free() local 265 klp_shadow_free_struct(shadow, dtor); in klp_shadow_free() 285 struct klp_shadow *shadow; in klp_shadow_free_all() local [all …]
|
/linux/drivers/scsi/ |
H A D | xen-scsifront.c | 197 info->shadow[id] = shadow; in scsifront_do_request() 308 shadow = info->shadow[id]; in scsifront_cdb_cmd_done() 309 sc = shadow->sc; in scsifront_cdb_cmd_done() 336 struct vscsifrnt_shadow *shadow = info->shadow[id]; in scsifront_sync_cmd_done() local 351 kfree(shadow); in scsifront_sync_cmd_done() 374 shadow = info->shadow[ring_rsp->rqid]; in scsifront_do_response() 502 seg = shadow->sg ? : shadow->seg; in map_data_for_request() 672 shadow = kzalloc(sizeof(*shadow), GFP_NOIO); in scsifront_action_handler() 673 if (!shadow) in scsifront_action_handler() 708 kfree(shadow); in scsifront_action_handler() [all …]
|
/linux/Documentation/livepatch/ |
H A D | shadow-vars.rst | 24 (See the full API usage docbook notes in livepatch/shadow.c.) 30 meta-data and shadow-data: 37 - data[] - storage for shadow data 48 * klp_shadow_get() - retrieve a shadow variable data pointer 51 * klp_shadow_alloc() - allocate and add a new shadow variable 60 - allocate a new shadow variable 69 - return existing shadow variable 73 - allocate a new shadow variable 83 - free shadow variable 91 - free shadow variable [all …]
|
/linux/Documentation/arch/x86/ |
H A D | shstk.rst | 14 CET introduces shadow stack and indirect branch tracking (IBT). A shadow stack 23 shadow stack and kernel IBT are supported. 103 if shadow stack is disabled. 130 the shadow stack stores only return addresses, a large shadow stack covers 135 shadow stack is enabled, the shadow stack specific state is pushed onto the 136 shadow stack. Today this is only the old SSP (shadow stack pointer), pushed 139 restorer address to the shadow stack to help userspace avoid a shadow stack 142 So the shadow stack signal frame format is as follows:: 150 32 bit execution while shadow stack is enabled by the allocating shadow stacks 162 shadow access triggers a page fault with the shadow stack access bit set [all …]
|
/linux/mm/kmsan/ |
H A D | init.c | 97 struct page *shadow, *origin; member 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 = held_back[order].shadow; in kmsan_memblock_free_pages() 128 kmsan_setup_meta(page, shadow, origin, order); in kmsan_memblock_free_pages() 130 held_back[order].shadow = NULL; in kmsan_memblock_free_pages() 168 struct page *page, *shadow, *origin; in do_collection() local 172 shadow = smallstack_pop(&collect); in do_collection() 216 if (held_back[i].shadow) in kmsan_memblock_discard() [all …]
|
H A D | shadow.c | 85 void *shadow; in kmsan_get_shadow_origin_ptr() local 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() 175 struct page *shadow, *origin; in kmsan_alloc_page() local 182 shadow = shadow_page_for(page); in kmsan_alloc_page() 280 void *shadow, *origin; in kmsan_init_alloc_meta_for_range() local 289 if (!shadow || !origin) in kmsan_init_alloc_meta_for_range() 308 set_no_shadow_origin_page(&shadow[i]); in kmsan_setup_meta() [all …]
|
H A D | instrumentation.c | 143 *shadow = *(u64 *)(ctx->cstate.param_tls); in get_param0_metadata() 151 *(u64 *)(ctx->cstate.retval_tls) = shadow; in set_retval_metadata() 161 u64 shadow; in __msan_memmove() local 163 get_param0_metadata(&shadow, &origin); in __msan_memmove() 175 set_retval_metadata(shadow, origin); in __msan_memmove() 186 u64 shadow; in __msan_memcpy() local 188 get_param0_metadata(&shadow, &origin); in __msan_memcpy() 202 set_retval_metadata(shadow, origin); in __msan_memcpy() 213 u64 shadow; in __msan_memset() local 215 get_param0_metadata(&shadow, &origin); in __msan_memset() [all …]
|
H A D | hooks.c | 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() 204 if (shadow) in kmsan_ioremap_page_range() 205 __free_pages(shadow, 1); in kmsan_ioremap_page_range() 224 struct page *shadow, *origin; in kmsan_iounmap_page_range() local 236 shadow = kmsan_vmalloc_to_page_or_null((void *)v_shadow); in kmsan_iounmap_page_range() 240 if (shadow) in kmsan_iounmap_page_range() [all …]
|
/linux/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()
|
/linux/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() 100 *shadow |= BIT(offset); in ttl_set_value() 102 *shadow &= ~BIT(offset); in ttl_set_value() [all …]
|
H A D | gpio-mm-lantiq.c | 31 u16 shadow; /* shadow the latches state */ member 47 __raw_writew(chip->shadow, chip->mmchip.regs); in 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 118 if (!of_property_read_u32(pdev->dev.of_node, "lantiq,shadow", &shadow)) in ltq_mm_probe() 119 chip->shadow = shadow; in ltq_mm_probe()
|
H A D | gpio-stp-xway.c | 84 u32 shadow; /* shadow the shift registers state */ member 121 chip->shadow |= BIT(gpio); in xway_stp_set() 123 chip->shadow &= ~BIT(gpio); in xway_stp_set() 124 xway_stp_w32(chip->virt, chip->shadow, XWAY_STP_CPU0); in xway_stp_set() 235 u32 shadow, groups, dsl, phy; in xway_stp_probe() local 258 if (!of_property_read_u32(pdev->dev.of_node, "lantiq,shadow", &shadow)) in xway_stp_probe() 259 chip->shadow = shadow; in xway_stp_probe()
|
H A D | gpio-latch.c | 58 unsigned long *shadow; member 81 assign_bit(offset, priv->shadow, val); in gpio_latch_set_unlocked() 85 test_bit(latch * priv->n_latched_gpios + i, priv->shadow)); in gpio_latch_set_unlocked() 160 priv->shadow = devm_bitmap_zalloc(&pdev->dev, n_latches * priv->n_latched_gpios, in gpio_latch_probe() 162 if (!priv->shadow) in gpio_latch_probe()
|
/linux/fs/nilfs2/ |
H A D | mdt.c | 479 if (shadow) { in nilfs_mdt_clear() 480 struct inode *s_inode = shadow->inode; in nilfs_mdt_clear() 482 shadow->inode = NULL; in nilfs_mdt_clear() 516 struct nilfs_shadow_map *shadow) in nilfs_mdt_setup_shadow_map() argument 521 INIT_LIST_HEAD(&shadow->frozen_buffers); in nilfs_mdt_setup_shadow_map() 527 shadow->inode = s_inode; in nilfs_mdt_setup_shadow_map() 528 mi->mi_shadow = shadow; in nilfs_mdt_setup_shadow_map() 540 struct nilfs_shadow_map *shadow = mi->mi_shadow; in nilfs_mdt_save_to_shadow_map() local 541 struct inode *s_inode = shadow->inode; in nilfs_mdt_save_to_shadow_map() 580 &shadow->frozen_buffers); in nilfs_mdt_freeze_buffer() [all …]
|
/linux/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()
|
H A D | report_generic.c | 49 u8 *shadow; in kasan_get_alloc_size() local 60 shadow = (u8 *)kasan_mem_to_shadow(object); in kasan_get_alloc_size() 62 if (*shadow == 0) in kasan_get_alloc_size() 64 else if (*shadow >= 1 && *shadow <= KASAN_GRANULE_SIZE - 1) in kasan_get_alloc_size() 65 return size + *shadow; in kasan_get_alloc_size() 68 shadow++; in kasan_get_alloc_size()
|
/linux/drivers/block/ |
H A D | xen-blkfront.c | 190 struct blk_shadow shadow[]; member 304 rinfo->shadow[id].request = NULL; in add_id_to_freelist() 543 rinfo->shadow[id].request = req; in blkif_ring_get_request() 611 struct blk_shadow *shadow = &rinfo->shadow[setup->id]; in blkif_setup_rw_req_grant() local 1247 if (!rinfo->shadow[i].request) in blkif_free_ring() 1280 kvfree(rinfo->shadow[i].sg); in blkif_free_ring() 1281 rinfo->shadow[i].sg = NULL; in blkif_free_ring() 2074 struct blk_shadow *shadow = rinfo->shadow; in blkfront_resume() local 2078 if (!shadow[j].request) in blkfront_resume() 2236 kvfree(rinfo->shadow[i].sg); in blkfront_setup_indirect() [all …]
|
/linux/mm/ |
H A D | workingset.c | 210 static void unpack_shadow(void *shadow, int *memcgidp, pg_data_t **pgdat, in unpack_shadow() argument 213 unsigned long entry = xa_to_value(shadow); in unpack_shadow() 271 unpack_shadow(shadow, &memcg_id, &pgdat, token, workingset); in lru_gen_test_recent() 280 static void lru_gen_refault(struct folio *folio, void *shadow) in lru_gen_refault() argument 340 static void lru_gen_refault(struct folio *folio, void *shadow) in lru_gen_refault() argument 418 bool workingset_test_recent(void *shadow, bool file, bool *workingset) in workingset_test_recent() argument 432 bool recent = lru_gen_test_recent(shadow, file, in workingset_test_recent() 440 unpack_shadow(shadow, &memcgid, &pgdat, &eviction, workingset); in workingset_test_recent() 530 void workingset_refault(struct folio *folio, void *shadow) in workingset_refault() argument 540 lru_gen_refault(folio, shadow); in workingset_refault() [all …]
|
/linux/Documentation/dev-tools/ |
H A D | kmsan.rst | 125 KMSAN shadow memory 131 setting its shadow bytes to ``0xff``) is called poisoning, marking it 132 initialized (setting the shadow bytes to ``0x00``) is called unpoisoning. 141 ``mm/kmsan/`` to persist shadow values. 145 When a value is read from memory, its shadow memory is also obtained and 148 shadow of the result depending on those values and their shadows. 156 In this case the shadow of ``a`` is ``0``, shadow of ``b`` is ``0xffffffff``, 233 void *shadow, *origin; 309 For each use of a value the compiler emits a shadow check that calls 377 struct page *shadow, *origin; [all …]
|
/linux/drivers/ps3/ |
H A D | ps3-lpm.c | 128 struct ps3_lpm_shadow_regs shadow; member 394 return lpm_priv->shadow.pm_control; in ps3_read_pm() 398 return lpm_priv->shadow.pm_start_stop; in ps3_read_pm() 409 return lpm_priv->shadow.group_control; in ps3_read_pm() 411 return lpm_priv->shadow.debug_bus_control; in ps3_read_pm() 451 lpm_priv->shadow.group_control = val; in ps3_write_pm() 459 lpm_priv->shadow.debug_bus_control = val; in ps3_write_pm() 465 if (val != lpm_priv->shadow.pm_control) in ps3_write_pm() 471 lpm_priv->shadow.pm_control = val; in ps3_write_pm() 483 lpm_priv->shadow.pm_start_stop = val; in ps3_write_pm() [all …]
|
/linux/samples/livepatch/ |
H A D | Makefile | 3 obj-$(CONFIG_SAMPLE_LIVEPATCH) += livepatch-shadow-mod.o 4 obj-$(CONFIG_SAMPLE_LIVEPATCH) += livepatch-shadow-fix1.o 5 obj-$(CONFIG_SAMPLE_LIVEPATCH) += livepatch-shadow-fix2.o
|
/linux/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() 271 if (vmbo->shadow) in amdgpu_vm_sdma_update() 272 amdgpu_vm_sdma_set_ptes(p, vmbo->shadow, pe, addr, in amdgpu_vm_sdma_update() 281 (vmbo->shadow ? 2 : 1); in amdgpu_vm_sdma_update() 296 if (vmbo->shadow) in amdgpu_vm_sdma_update() 297 amdgpu_vm_sdma_copy_ptes(p, vmbo->shadow, pe, nptes); in amdgpu_vm_sdma_update()
|
/linux/drivers/usb/host/ |
H A D | xen-hcd.c | 574 info->shadow[id].urb = NULL; in xenhcd_add_id_to_freelist() 718 struct usb_shadow *shadow = info->shadow + id; in xenhcd_gnttab_done() local 722 if (!shadow->in_flight) { in xenhcd_gnttab_done() 726 shadow->in_flight = false; in xenhcd_gnttab_done() 738 shadow->req.nr_buffer_segs = 0; in xenhcd_gnttab_done() 789 req = &info->shadow[id].req; in xenhcd_do_request() 807 *req = info->shadow[id].req; in xenhcd_do_request() 810 info->shadow[id].urb = urb; in xenhcd_do_request() 862 info->shadow[req_id].urb = NULL; in xenhcd_cancel_all_enqueued_urbs() 1490 info->shadow[i].req.id = i + 1; in xenhcd_create_hcd() [all …]
|
/linux/Documentation/virt/kvm/x86/ |
H A D | mmu.rst | 4 The x86 kvm shadow mmu 55 spte shadow pte (referring to pfns) 152 The level in the shadow paging hierarchy that this shadow page belongs to. 166 so multiple shadow pages are needed to shadow one guest page. 228 at the shadow page structure. 340 - walk shadow page table 386 - look up new shadow roots 387 - synchronize newly reachable shadow pages 392 - look up new shadow roots 393 - synchronize newly reachable shadow pages [all …]
|