Home
last modified time | relevance | path

Searched refs:shadow (Results 1 – 25 of 141) sorted by relevance

123456

/linux/kernel/livepatch/
H A Dshadow.c70 static inline bool klp_shadow_match(struct klp_shadow *shadow, void *obj, in klp_shadow_match() argument
73 return shadow->obj == obj && shadow->id == id; in klp_shadow_match()
85 struct klp_shadow *shadow; in klp_shadow_get() local
89 hash_for_each_possible_rcu(klp_shadow_hash, shadow, node, in klp_shadow_get()
92 if (klp_shadow_match(shadow, obj, id)) { in klp_shadow_get()
94 return shadow->data; in klp_shadow_get()
234 static void klp_shadow_free_struct(struct klp_shadow *shadow, in klp_shadow_free_struct() argument
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()
[all …]
/linux/drivers/scsi/
H A Dxen-scsifront.c121 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() argument
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->nr_segments; in scsifront_do_request()
220 for (i = 0; i < (shadow->nr_segments & ~VSCSIIF_SG_GRANT); i++) in scsifront_do_request()
[all …]
/linux/Documentation/livepatch/
H A Dshadow-vars.rst6 additional "shadow" data with existing data structures. Shadow data is
8 unmodified. The shadow variable API described in this document is used
9 to allocate/add and remove/free shadow variables to/from their parents.
13 shadow data. The numeric identifier is a simple enumeration that may be
14 used to describe shadow variable version, class or type, etc. More
16 numeric id subsequently filters hashtable queries. Multiple shadow
24 (See the full API usage docbook notes in livepatch/shadow.c.)
26 A hashtable references all shadow variables. These references are
30 meta-data and shadow-data:
37 - data[] - storage for shadow data
[all …]
/linux/Documentation/arch/x86/
H A Dshstk.rst14 CET introduces shadow stack and indirect branch tracking (IBT). A shadow stack
17 return address to both the normal stack and the shadow stack. Upon
18 function return, the processor pops the shadow stack copy and compares it
23 shadow stack and kernel IBT are supported.
28 To use userspace shadow stack you need HW that supports it, a kernel
31 The kernel Kconfig option is X86_USER_SHADOW_STACK. When compiled in, shadow
34 To build a user shadow stack enabled kernel, Binutils v2.29 or LLVM v6 or later
38 CET. "user_shstk" means that userspace shadow stack is supported on the current
101 Currently shadow stack and WRSS are supported via this interface. WRSS
102 can only be enabled with shadow stack, and is automatically disabled
[all …]
/linux/mm/kmsan/
H A Dshadow.c3 * 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
173 struct page *shadow, *origi in kmsan_alloc_page() local
277 void *shadow, *origin; kmsan_init_alloc_meta_for_range() local
301 kmsan_setup_meta(struct page * page,struct page * shadow,struct page * origin,int order) kmsan_setup_meta() argument
[all...]
H A Dinit.c100 struct page *shadow, *origin; member
119 struct page *shadow, *origin; in kmsan_memblock_free_pages() local
121 if (!held_back[order].shadow) { in kmsan_memblock_free_pages()
122 held_back[order].shadow = page; in kmsan_memblock_free_pages()
129 shadow = held_back[order].shadow; in kmsan_memblock_free_pages()
131 kmsan_setup_meta(page, shadow, origin, order); in kmsan_memblock_free_pages()
133 held_back[order].shadow = NULL; in kmsan_memblock_free_pages()
171 struct page *page, *shadow, *origin; in do_collection() local
175 shadow = smallstack_pop(&collect); in do_collection()
177 kmsan_setup_meta(page, shadow, origin, collect.order); in do_collection()
[all …]
H A Dinstrumentation.c139 static inline void get_param0_metadata(u64 *shadow, in get_param0_metadata() argument
144 *shadow = *(u64 *)(ctx->cstate.param_tls); in get_param0_metadata()
148 static inline void set_retval_metadata(u64 shadow, depot_stack_handle_t origin) in set_retval_metadata() argument
152 *(u64 *)(ctx->cstate.retval_tls) = shadow; in set_retval_metadata()
162 u64 shadow; in __msan_memmove() local
164 get_param0_metadata(&shadow, &origin); in __msan_memmove()
176 set_retval_metadata(shadow, origin); in __msan_memmove()
187 u64 shadow; in __msan_memcpy() local
189 get_param0_metadata(&shadow, &origin); in __msan_memcpy()
203 set_retval_metadata(shadow, origin); in __msan_memcpy()
[all …]
H A Dhooks.c154 struct page *shadow, *origin; in kmsan_ioremap_page_range() local
164 shadow = alloc_pages(gfp_mask, 1); in kmsan_ioremap_page_range()
166 if (!shadow || !origin) { in kmsan_ioremap_page_range()
172 vmalloc_shadow(start + off + PAGE_SIZE), prot, &shadow, in kmsan_ioremap_page_range()
178 shadow = NULL; in kmsan_ioremap_page_range()
202 if (shadow) in kmsan_ioremap_page_range()
203 __free_pages(shadow, 1); in kmsan_ioremap_page_range()
222 struct page *shadow, *origin; in kmsan_iounmap_page_range() local
234 shadow = kmsan_vmalloc_to_page_or_null((void *)v_shadow); in kmsan_iounmap_page_range()
238 if (shadow) in kmsan_iounmap_page_range()
[all …]
/linux/include/linux/
H A Dscx200_gpio.h13 #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 Dgpio-janz-ttl.c60 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 |= BIT(offset); in ttl_set_value()
[all …]
H A Dgpio-stp-xway.c84 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 Dgpio-latch.c58 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/mm/kasan/
H A Dreport_sw_tags.c51 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 Dsw_tags.c78 u8 *shadow_first, *shadow_last, *shadow; in kasan_check_range()
114 for (shadow = shadow_first; shadow <= shadow_last; shadow++) { in kasan_check_range()
115 if (*shadow != tag) { in kasan_check_range()
77 u8 *shadow_first, *shadow_last, *shadow; kasan_check_range() local
H A Dreport_generic.c49 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/Documentation/virt/kvm/x86/
H A Dmmu.rst4 The x86 kvm shadow mmu
55 spte shadow pte (referring to pfns)
87 direct mode; otherwise it operates in shadow mode (see below).
121 The principal data structure is the shadow page, 'struct kvm_mmu_page'. A
122 shadow page contains 512 sptes, which can be either leaf or nonleaf sptes. A
123 shadow page may contain a mix of leaf and nonleaf sptes.
126 is not related to a translation directly. It points to other shadow pages.
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.
167 For first-level shadow pages, role.quadrant can be 0 or 1 and denotes the
[all …]
/linux/drivers/usb/host/
H A Dxen-hcd.c84 struct usb_shadow shadow[XENUSB_URB_RING_SIZE]; member
565 info->shadow_free = info->shadow[free].req.id; in xenhcd_get_id_from_freelist()
566 info->shadow[free].req.id = 0x0fff; /* debug */ in xenhcd_get_id_from_freelist()
573 info->shadow[id].req.id = info->shadow_free; in xenhcd_add_id_to_freelist()
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()
728 nr_segs = shadow->req.nr_buffer_segs; in xenhcd_gnttab_done()
730 if (xenusb_pipeisoc(shadow->req.pipe)) in xenhcd_gnttab_done()
[all …]
/linux/samples/livepatch/
H A DMakefile3 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/arch/powerpc/platforms/ps3/
H A Dspu.c112 struct spe_shadow __iomem *shadow; member
124 unsigned long problem, unsigned long ls, unsigned long shadow, in _dump_areas() argument
131 pr_debug("%s:%d: shadow: %lxh\n", func, line, shadow); in _dump_areas()
180 iounmap(spu_pdata(spu)->shadow); in spu_unmap()
195 spu_pdata(spu)->shadow = ioremap_prot(spu_pdata(spu)->shadow_addr, in setup_areas()
197 if (!spu_pdata(spu)->shadow) { in setup_areas()
231 (unsigned long)spu_pdata(spu)->shadow); in setup_areas()
368 while (in_be64(&spu_pdata(spu)->shadow->spe_execution_status) in ps3_create_spu()
514 return in_be64(&spu_pdata(spu)->shadow->mfc_dar_RW); in mfc_dar_get()
524 return in_be64(&spu_pdata(spu)->shadow->mfc_dsisr_RW); in mfc_dsisr_get()
/linux/arch/s390/kvm/
H A Dtrace-s390.h340 TP_PROTO(unsigned long start, unsigned long end, unsigned int shadow),
341 TP_ARGS(start, end, shadow),
346 __field(unsigned int, shadow)
352 __entry->shadow = shadow;
356 __entry->start, __entry->end, __entry->shadow)
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/bios/
H A Dshadow.c30 struct shadow { struct
39 shadow_fetch(struct nvkm_bios *bios, struct shadow *mthd, u32 upto) in shadow_fetch() argument
52 shadow_image(struct nvkm_bios *bios, int idx, u32 offset, struct shadow *mthd) in shadow_image()
110 shadow_method(struct nvkm_bios *bios, struct shadow *mthd, const char *name) in shadow_method()
177 struct shadow mthds[] = { in nvbios_shadow()
/linux/drivers/gpu/drm/qxl/
H A Dqxl_display.c424 is_primary = qobj->shadow ? qobj->shadow->is_primary : qobj->is_primary; in qxl_framebuffer_surface_dirty()
655 primary = bo->shadow ? bo->shadow : bo; in qxl_primary_atomic_update()
682 if (bo->shadow) in qxl_primary_atomic_disable()
683 bo = bo->shadow; in qxl_primary_atomic_disable()
817 if (user_bo->shadow != qdev->dumb_shadow_bo) { in qxl_prepare_shadow()
818 if (user_bo->shadow) { in qxl_prepare_shadow()
819 qxl_bo_unpin(user_bo->shadow); in qxl_prepare_shadow()
821 (&user_bo->shadow->tbo.base); in qxl_prepare_shadow()
822 user_bo->shadow = NULL; in qxl_prepare_shadow()
825 user_bo->shadow = qdev->dumb_shadow_bo; in qxl_prepare_shadow()
[all …]
/linux/drivers/media/i2c/
H A Dtvaudio.c126 audiocmd shadow; member
163 chip->shadow.bytes[1] = val; in chip_write()
173 if (subaddr + 1 >= ARRAY_SIZE(chip->shadow.bytes)) { in chip_write()
182 chip->shadow.bytes[subaddr+1] = val; in chip_write()
204 val = (chip->shadow.bytes[1] & ~mask) | (val & mask); in chip_write_masked()
206 if (subaddr + 1 >= ARRAY_SIZE(chip->shadow.bytes)) { in chip_write_masked()
213 val = (chip->shadow.bytes[subaddr+1] & ~mask) | (val & mask); in chip_write_masked()
281 if (cmd->count + cmd->bytes[0] - 1 >= ARRAY_SIZE(chip->shadow.bytes)) { in chip_cmd()
296 chip->shadow.bytes[i+cmd->bytes[0]] = cmd->bytes[i]; in chip_cmd()
441 int t = chip->shadow.bytes[TDA9840_SW + 1] & ~0x7e; in tda9840_setaudmode()
[all …]
/linux/drivers/media/pci/cx88/
H A Dcx88.h346 u32 shadow[SHADOW_MAX]; member
597 #define cx_sread(sreg) (core->shadow[sreg])
599 (core->shadow[sreg] = value, \
600 writel(core->shadow[sreg], core->lmmio + ((reg) >> 2)))
602 (core->shadow[sreg] = (core->shadow[sreg] & ~(mask)) | \
604 writel(core->shadow[sreg], \
/linux/drivers/media/dvb-frontends/
H A Ditd1000.c77 itd1000_write_regs(state, (reg - 1) & 0xff, &state->shadow[(reg - 1) & 0xff], 1); in itd1000_read_reg()
90 state->shadow[r] = tmp; in itd1000_write_reg()
382 memset(state->shadow, 0xff, sizeof(state->shadow)); in itd1000_attach()
384 state->shadow[i] = itd1000_read_reg(state, i); in itd1000_attach()

123456