| /linux/drivers/bus/ |
| H A D | sunxi-rsb.c | 3 * RSB (Reduced Serial Bus) driver. 7 * The RSB controller looks like an SMBus controller which only supports 24 * RSB section of Allwinner's A80 user manual, which can be found at 49 #include <linux/sunxi-rsb.h> 52 /* RSB registers */ 61 #define RSB_CMD 0x2c /* RSB Command */ 112 #define RSB_CTRL_NAME "sunxi-rsb" 196 * sunxi_rsb_device_create() - allocate and add an RSB device 197 * @rsb: RSB controller 198 * @node: RSB slave device node [all …]
|
| /linux/Documentation/admin-guide/hw-vuln/ |
| H A D | rsb.rst | 4 RSB-related mitigations 13 Buffer (RSB) (sometimes referred to as the Return Address Stack (RAS) or 20 once place and clarify the reasoning behind the current RSB-related 22 the current kernel mitigations: what are the RSB-related attack vectors 25 It's *not* meant to describe how the RSB mechanism operates or how the 34 At a high level, there are two classes of RSB attacks: RSB poisoning 35 (Intel and AMD) and RSB underflow (Intel only). They must each be 41 RSB poisoning (Intel and AMD) 47 RSB poisoning is a technique used by SpectreRSB [#spectre-rsb]_ where 48 an attacker poisons an RSB entry to cause a victim's return instruction [all …]
|
| H A D | indirect-target-selection.rst | 80 thunks. This is because RETs get their prediction from RSB mostly that does not 81 depend on source address. RETs that underflow RSB may benefit from dynamic 90 safe thunks. Unless user requested the RSB-stuffing mitigation. 92 RSB Stuffing 94 RSB-stuffing via Call Depth Tracking is a mitigation for Retbleed RSB-underflow 128 stuff Deploy RSB-fill mitigation when retpoline is also deployed. 130 is enabled, RSB-stuffing via Call-Depth-Tracking also mitigates 159 * - Mitigation: Retpolines, Stuffing RSB 160 - The mitigation is enabled using retpoline and RSB stuffing.
|
| H A D | index.rst | 22 cross-thread-rsb 26 rsb
|
| H A D | cross-thread-rsb.rst | 69 context switch fills the RAP entries (referred to as the RSB in Linux) with safe 80 Use existing Spectre v2 mitigations that will fill the RSB on context switch.
|
| /linux/include/linux/ |
| H A D | sunxi-rsb.h | 22 * struct sunxi_rsb_device - Basic representation of an RSB device 24 * @ctrl: RSB controller managing the bus hosting this device. 30 struct sunxi_rsb *rsb; member 53 * struct sunxi_rsb_driver - RSB slave device driver 54 * @driver: RSB device drivers should initialize name and owner field of 56 * @probe: binds this driver to a RSB device. 57 * @remove: unbinds this driver from the RSB device. 73 * sunxi_rsb_driver_unregister() - unregister an RSB client driver
|
| /linux/fs/dlm/ |
| H A D | lock.c | 39 Stage 2, xxxx_lock(), just finds and locks the relevant rsb which is 46 given rsb and lkb and queues callbacks. 173 printk(KERN_ERR "rsb: nodeid %d master %d dir %d flags %lx first %x " in dlm_print_rsb() 186 printk(KERN_ERR "rsb: root_list empty %d recover_list empty %d\n", in dlm_dump_rsb() 188 printk(KERN_ERR "rsb lookup list\n"); in dlm_dump_rsb() 191 printk(KERN_ERR "rsb grant queue:\n"); in dlm_dump_rsb() 194 printk(KERN_ERR "rsb convert queue:\n"); in dlm_dump_rsb() 197 printk(KERN_ERR "rsb wait queue:\n"); in dlm_dump_rsb() 320 * Basic operations on rsb's and lkb's 329 a valid reference to the rsb, so there's no need for locking. */ [all …]
|
| H A D | recover.c | 229 * The recover_list contains all the rsb's for which we've requested the new 231 * rsb's are removed from the list. When the list is empty we're done. 233 * The recover_list is later similarly used for all rsb's for which we've sent 236 * We use the address of the rsb struct as a simple local identifier for the 237 * rsb so we can match an rcom reply with the rsb it was sent for. 384 /* Master recovery: find new master node for rsb's that were 400 * If we are the new master of the rsb, we may have received new 426 * The NEW_MASTER flag tells dlm_recover_locks() which rsb's to consider. 428 * rsb's to consider. 439 * We do async lookups on rsb's that need new masters. The rsb's [all …]
|
| H A D | debug_fs.c | 266 seq_printf(s, "rsb %p %d %x %lx %d %d %u %d ", in print_format3() 342 seq_printf(s, "rsb %p %d %d %d %d %lu %lx %d ", in print_format4() 383 struct dlm_rsb *rsb = list_entry(iter_ptr, struct dlm_rsb, res_slow_list); in table_seq_show() local 386 print_format1(rsb, seq); in table_seq_show() 388 print_format2(rsb, seq); in table_seq_show() 390 print_format3(rsb, seq); in table_seq_show() 392 print_format4(rsb, seq); in table_seq_show() 406 …seq_puts(seq, "rsb ptr nodeid first_lkid flags !root_list_empty !recover_list_empty recover_locks_… in table_seq_start() 408 …seq_puts(seq, "rsb ptr nodeid master_nodeid dir_nodeid our_nodeid toss_time flags len str|hex name… in table_seq_start()
|
| H A D | dir.c | 26 * Low bits are used for distribution of rsb's among hash buckets on each node. 293 /* Find the rsb where we left off (or start again), then send rsb names 294 for rsb's we're master of and whose directory node matches the requesting 295 node. inbuf is the rsb name last sent, inlen is the name's length */
|
| H A D | memory.c | 49 goto rsb; in dlm_memory_init() 61 rsb: in dlm_memory_init()
|
| /linux/fs/xfs/libxfs/ |
| H A D | xfs_rtgroup.c | 617 struct xfs_rtsb *rsb = bp->b_addr; in xfs_rtsb_verify_common() local 619 if (!xfs_verify_magic(bp, rsb->rsb_magicnum)) in xfs_rtsb_verify_common() 621 if (rsb->rsb_pad) in xfs_rtsb_verify_common() 625 if (memchr_inv(rsb + 1, 0, BBTOB(bp->b_length) - sizeof(*rsb))) in xfs_rtsb_verify_common() 636 struct xfs_rtsb *rsb = bp->b_addr; in xfs_rtsb_verify_all() local 644 if (memcmp(&rsb->rsb_fname, &mp->m_sb.sb_fname, XFSLABEL_MAX)) in xfs_rtsb_verify_all() 646 if (!uuid_equal(&rsb->rsb_uuid, &mp->m_sb.sb_uuid)) in xfs_rtsb_verify_all() 648 if (!uuid_equal(&rsb->rsb_meta_uuid, &mp->m_sb.sb_meta_uuid)) in xfs_rtsb_verify_all() 700 struct xfs_rtsb *rsb = rtsb_bp->b_addr; in xfs_update_rtsb() local 703 rsb->rsb_magicnum = cpu_to_be32(XFS_RTSB_MAGIC); in xfs_update_rtsb() [all …]
|
| /linux/drivers/md/ |
| H A D | dm-verity-fec.c | 40 static u8 *fec_read_parity(struct dm_verity *v, u64 rsb, int index, in fec_read_parity() argument 51 position = (index + rsb) * v->fec->roots; in fec_read_parity() 58 v->data_dev->name, (unsigned long long)rsb, in fec_read_parity() 100 struct dm_verity_fec_io *fio, u64 rsb, int byte_index, in fec_decode_bufs() argument 110 par = fec_read_parity(v, rsb, block_offset, &offset, in fec_decode_bufs() 152 par = fec_read_parity(v, rsb, block_offset, &offset, in fec_decode_bufs() 165 v->data_dev->name, (unsigned long long)rsb, r); in fec_decode_bufs() 168 v->data_dev->name, (unsigned long long)rsb, r); in fec_decode_bufs() 193 u64 rsb, u64 target, unsigned int block_offset, in fec_read_bufs() argument 218 ileaved = fec_interleave(v, rsb * v->fec->rsn + i); in fec_read_bufs() [all …]
|
| /linux/drivers/mfd/ |
| H A D | axp20x-rsb.c | 3 * RSB driver for the X-Powers' Power Management ICs 9 * This driver supports the RSB variants. 23 #include <linux/sunxi-rsb.h> 72 .name = "axp20x-rsb", 80 MODULE_DESCRIPTION("PMIC MFD sunXi RSB driver for AXP20X");
|
| /linux/fs/romfs/ |
| H A D | super.c | 452 struct romfs_super_block *rsb; in romfs_fill_super() local 484 rsb = kmalloc(512, GFP_KERNEL); in romfs_fill_super() 485 if (!rsb) in romfs_fill_super() 489 ret = romfs_dev_read(sb, 0, rsb, 512); in romfs_fill_super() 493 img_size = be32_to_cpu(rsb->size); in romfs_fill_super() 500 if (rsb->word0 != ROMSB_WORD0 || rsb->word1 != ROMSB_WORD1 || in romfs_fill_super() 508 if (romfs_checksum(rsb, min_t(size_t, img_size, 512))) { in romfs_fill_super() 515 len = strnlen(rsb->name, ROMFS_MAXFN); in romfs_fill_super() 518 (unsigned) len, (unsigned) len, rsb->name, storage); in romfs_fill_super() 520 kfree(rsb); in romfs_fill_super() [all …]
|
| /linux/arch/x86/kvm/vmx/ |
| H A D | vmenter.S | 114 * IMPORTANT: To avoid RSB underflow attacks and any other nastiness, 275 * IMPORTANT: RSB filling and SPEC_CTRL handling must be done before 278 * For retpoline or IBRS, RSB filling is needed to prevent poisoned RSB 279 * entries and (in some cases) RSB underflow. 281 * eIBRS has its own protection against poisoned RSB, so it doesn't 282 * need the RSB filling sequence. But it does need to be enabled, and a
|
| /linux/arch/x86/include/asm/ |
| H A D | nospec-branch.h | 17 * Call depth tracking for Intel SKL CPUs to address the RSB underflow 48 * but there is still a cushion vs. the RSB depth. The algorithm does not 107 * Each entry in the RSB, if used for a speculative 'ret', contains an 112 * eliminate potentially bogus entries from the RSB, and sometimes 134 * Stuff the entire RSB. 166 * Stuff a single RSB slot. 168 * To mitigate Post-Barrier RSB speculation, one CALL instruction must be
|
| /linux/arch/arm/lib/ |
| H A D | copy_template.S | 90 CALGN( rsb r3, ip, #32 ) 113 rsb ip, ip, #32 163 9: rsb ip, ip, #4 189 CALGN( rsb ip, ip, #32 )
|
| H A D | findbit.S | 113 rsb r0, r3, #0 116 rsb r3, r3, #31 @ offset of first set bit
|
| H A D | div64.S | 153 rsb ip, ip, #31 179 rsb ip, ip, #32
|
| H A D | memmove.S | 60 CALGN( rsb ip, ip, #32 ) 79 rsb ip, ip, #32
|
| H A D | lshrdi3.S | 44 rsb ip, r2, #32
|
| H A D | ashldi3.S | 44 rsb ip, r2, #32
|
| /linux/arch/x86/kvm/svm/ |
| H A D | vmenter.S | 51 * IMPORTANT: To avoid RSB underflow attacks and any other nastiness, 237 /* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */ 376 /* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */
|
| /linux/drivers/pinctrl/sunxi/ |
| H A D | pinctrl-suniv-f1c100s.c | 121 SUNXI_FUNCTION(0x4, "rsb"), /* SDA */ 194 SUNXI_FUNCTION(0x4, "rsb"), /* SCK */ 282 SUNXI_FUNCTION(0x5, "rsb"), /* SCK */ 290 SUNXI_FUNCTION(0x5, "rsb"), /* SDA */
|