/linux/kernel/locking/ |
H A D | rwbase_rt.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * RT-specific reader/writer semaphores and reader/writer locks 14 * 2) Set the reader BIAS, so readers can use the fast path again 36 * for one reader after the other. We can't use multi-reader inheritance 41 * The risk of writer starvation is there, but the pathological use cases 44 * Fast-path orderings: 58 * Increment reader count, if sem->readers < 0, i.e. READER_BIAS is in rwbase_read_trylock() 61 for (r = atomic_read(&rwb->readers); r < 0;) { in rwbase_read_trylock() 62 if (likely(atomic_try_cmpxchg_acquire(&rwb->readers, &r, r + 1))) in rwbase_read_trylock() 71 struct rt_mutex_base *rtm = &rwb->rtmutex; in __rwbase_read_lock() local [all …]
|
H A D | rtmutex.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * RT-Mutexes: simple blocking mutual exclusion locks with PI support 7 * Copyright (C) 2004-2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> 8 * Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com> 17 * See Documentation/locking/rt-mutex-design.rst for details. 33 # define ww_container_of(rtm) NULL argument 61 # define ww_container_of(rtm) container_of(rtm, struct ww_mutex, base) argument 66 * lock->owner state tracking: 68 * lock->owner holds the task_struct pointer of the owner. Bit 0 79 * possible when bit 0 of lock->owner is 0. [all …]
|
H A D | rwsem.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Derived from asm-i386/semaphore.h 7 * Writer lock-stealing by Alex Shi <alex.shi@intel.com> 13 * Rwsem count bit fields re-definition and rwsem rearchitecture by 38 * - Bit 0: RWSEM_READER_OWNED - rwsem may be owned by readers (just a hint) 39 * - Bit 1: RWSEM_NONSPINNABLE - Cannot spin on a reader-owned lock 41 * When the rwsem is reader-owned and a spinning writer has timed out, 50 * for a free or reader-owned rwsem, the owner value may contain 60 * - rwsem is not currently writer owned 61 * - the handoff isn't set. [all …]
|
/linux/arch/x86/kernel/cpu/ |
H A D | tsx.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2019-2021 Intel Corporation 49 /* Enable the RTM feature in the cpu */ in tsx_enable() 55 * can enumerate and use the TSX feature. in tsx_enable() 83 * - X86_FEATURE_RTM_ALWAYS_ABORT 84 * - X86_FEATURE_TSX_FORCE_ABORT 86 * 2. The second method is for CPUs which do not have the above-mentioned 87 * MSR: those use a different MSR - MSR_IA32_TSX_CTRL and disable TSX 93 * clears the respective RTM and HLE feature flags. 100 * cause for the supported CPUID feature bits to get re-detected and, if [all …]
|
/linux/Documentation/devicetree/bindings/spi/ |
H A D | socionext,synquacer-spi.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/spi/socionext,synquacer-spi.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Socionext SynQuacer HS-SPI Controller 10 - Masahisa Kojima <masahisa.kojima@linaro.org> 11 - Jassi Brar <jaswinder.singh@linaro.org> 14 - $ref: spi-controller.yaml# 18 const: socionext,synquacer-spi 26 - description: core clock [all …]
|
/linux/net/mpls/ |
H A D | af_mpls.c | 1 // SPDX-License-Identifier: GPL-2.0-only 31 /* max memory we will use for mpls_route */ 41 static int label_limit = (1 << 20) - 1; 82 if (index < net->mpls.platform_labels) { in mpls_route_input_rcu() 84 rcu_dereference(net->mpls.platform_label); in mpls_route_input_rcu() 92 return dev && (dev->flags & IFF_UP) && netif_carrier_ok(dev); in mpls_output_possible() 98 return (u8 *)nh + rt->rt_via_offset; in __mpls_nh_via() 110 return nh->nh_labels * sizeof(struct mpls_shim_hdr); in mpls_nh_header_size() 116 return dev->mtu; in mpls_dev_mtu() 122 if (skb->len <= mtu) in mpls_pkt_too_big() [all …]
|
/linux/net/ipv4/ |
H A D | fib_frontend.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 58 return -ENOMEM; in fib4_rules_init() 64 hlist_add_head_rcu(&local_table->tb_hlist, in fib4_rules_init() 65 &net->ipv4.fib_table_hash[TABLE_LOCAL_INDEX]); in fib4_rules_init() 66 hlist_add_head_rcu(&main_table->tb_hlist, in fib4_rules_init() 67 &net->ipv4.fib_table_hash[TABLE_MAIN_INDEX]); in fib4_rules_init() 72 return -ENOMEM; in fib4_rules_init() 87 if (id == RT_TABLE_LOCAL && !net->ipv4.fib_has_custom_rules) in fib_new_table() 96 rcu_assign_pointer(net->ipv4.fib_main, tb); in fib_new_table() 99 rcu_assign_pointer(net->ipv4.fib_default, tb); in fib_new_table() [all …]
|
H A D | ipmr.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 85 return rcu_dereference(vif->dev); in vif_dev_read() 119 list_for_each_entry_rcu(mrt, &net->ipv4.mr_tables, list, \ 121 list_empty(&net->ipv4.mr_tables)) 129 ret = list_entry_rcu(net->ipv4.mr_tables.next, in ipmr_mr_table_iter() 132 ret = list_entry_rcu(mrt->list.next, in ipmr_mr_table_iter() 135 if (&ret->list == &net->ipv4.mr_tables) in ipmr_mr_table_iter() 145 if (mrt->id == id) in ipmr_get_table() 164 err = fib_rules_lookup(net->ipv4.mr_rules_ops, in ipmr_fib_lookup() 175 struct ipmr_result *res = arg->result; in ipmr_rule_action() [all …]
|
H A D | fib_semantics.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 71 for (nhsel = 0, nh = (fi)->fib_nh; \ 77 for (nhsel = 0, nexthop_nh = (struct fib_nh *)((fi)->fib_nh); \ 86 int nhsel; const struct fib_nh *nh = (fi)->fib_nh; \ 91 struct fib_nh *nexthop_nh = (struct fib_nh *)((fi)->fib_nh); \ 125 .error = -EINVAL, 129 .error = -EHOSTUNREACH, 133 .error = -EACCES, 137 .error = -EAGAIN, 141 .error = -EINVAL, [all …]
|
H A D | route.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * ROUTE - implementation of the IP router. 34 * Alan Cox : Use __u32 properly 48 * Andi Kleen : Load-limit warning messages. 215 seq_printf(seq, "%-127s\n", in rt_cache_seq_show() 236 for (cpu = *pos-1; cpu < nr_cpu_ids; ++cpu) { in rt_cpu_seq_start() 278 0, /* st->in_hit */ in rt_cpu_seq_show() 279 st->in_slow_tot, in rt_cpu_seq_show() 280 st->in_slow_mc, in rt_cpu_seq_show() 281 st->in_no_route, in rt_cpu_seq_show() [all …]
|
/linux/net/mctp/ |
H A D | route.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Management Component Transport Protocol (MCTP) - routing 50 /* TODO: look up in skb->cb? */ in mctp_lookup_bind() 56 type = (*(u8 *)skb->data) & 0x7f; in mctp_lookup_bind() 58 sk_for_each_rcu(sk, &net->mctp.binds) { in mctp_lookup_bind() 61 if (msk->bind_net != MCTP_NET_ANY && msk->bind_net != cb->net) in mctp_lookup_bind() 64 if (msk->bind_type != type) in mctp_lookup_bind() 67 if (!mctp_address_matches(msk->bind_addr, mh->dest)) in mctp_lookup_bind() 78 * struct net->mctp.keys contains our set of currently-allocated keys for 85 * a key with (local = local-eid, peer = ANY). This allows a match on the [all …]
|
/linux/net/ipv6/ |
H A D | route.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * FIB front-end. 14 * - respect outgoing interface 15 * - select from (probably) reachable routers (i.e. 17 * - always select the same router if it is (probably) 18 * reachable. otherwise, round-robin the list. 79 RT6_NUD_FAIL_HARD = -3, 80 RT6_NUD_FAIL_PROBE = -2, 81 RT6_NUD_FAIL_DO_RR = -1, 142 rt->dst.rt_uncached_list = ul; in rt6_uncached_list_add() [all …]
|
/linux/drivers/net/fddi/skfp/h/ |
H A D | skfbi.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 15 * FDDI-Fx (x := {I(SA), P(CI)}) 19 /*--------------------------------------------------------------------------*/ 41 /* 0x0001 - 0x0003: reserved */ 49 /* 0x0010 - 0x006b: formac+ (supernet_3) fequently used registers */ 52 #define B0_ST1U 0x0010 /* read upper 16-bit of status reg 1 */ 53 #define B0_ST1L 0x0014 /* read lower 16-bit of status reg 1 */ 54 #define B0_ST2U 0x0018 /* read upper 16-bit of status reg 2 */ 55 #define B0_ST2L 0x001c /* read lower 16-bit of status reg 2 */ 59 #define B0_MDRU 0x0028 /* r/w upper 16-bit of mem. data reg */ [all …]
|
/linux/drivers/spi/ |
H A D | spi-synquacer.c | 1 // SPDX-License-Identifier: GPL-2.0 5 // Copyright (c) 2015-2018 Socionext Inc. 6 // Copyright (c) 2018-2019 Linaro Ltd. 108 (SYNQUACER_HSSPI_FIFO_DEPTH - SYNQUACER_HSSPI_FIFO_TX_THRESHOLD) 128 bool aces, rtm; member 143 u32 len = readl(sspi->regs + SYNQUACER_HSSPI_REG_DMSTATUS); in read_fifo() 147 len = min(len, sspi->rx_words); in read_fifo() 149 switch (sspi->bpw) { in read_fifo() 151 u8 *buf = sspi->rx_buf; in read_fifo() 153 ioread8_rep(sspi->regs + SYNQUACER_HSSPI_REG_RX_FIFO, in read_fifo() [all …]
|
/linux/sound/soc/intel/avs/boards/ |
H A D | nau8825.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // Copyright(c) 2021-2022 Intel Corporation 17 #include <sound/soc-acpi.h> 21 #define SKL_NUVOTON_CODEC_DAI "nau8825-hifi" 26 struct snd_soc_dapm_context *dapm = w->dapm; in avs_nau8825_clock_control() 27 struct snd_soc_card *card = dapm->card; in avs_nau8825_clock_control() 33 dev_err(card->dev, "Codec dai not found\n"); in avs_nau8825_clock_control() 34 return -EINVAL; in avs_nau8825_clock_control() 43 dev_err(card->dev, "Set sysclk failed: %d\n", ret); in avs_nau8825_clock_control() 83 struct snd_soc_card *card = runtime->card; in avs_nau8825_codec_init() [all …]
|
/linux/include/linux/ |
H A D | mroute_base.h | 5 #include <linux/rhashtable-types.h> 13 * struct vif_device - interface representor for multicast routing 66 .vif_flags = vif->flags, in mr_call_vif_notifier() 87 .vif_flags = vif->flags, in mr_call_vif_notifiers() 104 #define VIF_EXISTS(_mrt, _idx) (!!rcu_access_pointer((_mrt)->vif_table[_idx].dev)) 107 * MFC_STATIC - the entry was added statically (not by a routing daemon) 108 * MFC_OFFLOAD - the entry was offloaded to the hardware 116 * struct mr_mfc - common multicast routing entries 128 * @lastuse: time of last use of the group (traffic or update) 164 if (refcount_dec_and_test(&c->mfc_un.res.refcount)) in mr_cache_put() [all …]
|
/linux/lib/zstd/common/ |
H A D | cpu.h | 5 * This source code is licensed under both the BSD-style license (found in the 8 * You may select, at your option, one of the above-listed licenses. 36 * reserves ebx for use of its pic register so we must specially in ZSTD_cpuid() 169 B(rtm, 11)
|
/linux/Documentation/admin-guide/hw-vuln/ |
H A D | tsx_async_abort.rst | 1 .. SPDX-License-Identifier: GPL-2.0 3 TAA - TSX Asynchronous Abort 11 ------------------- 23 ------------ 28 CVE-2019-11135 TAA TSX Asynchronous Abort (TAA) condition on some 36 ------- 43 hardware transactional memory support to improve performance of multi-threaded 58 Because the buffers are potentially shared between Hyper-Threads cross 59 Hyper-Thread attacks are possible. 61 The victim of a malicious actor does not need to make use of TSX. Only the [all …]
|
/linux/tools/arch/x86/include/asm/ |
H A D | cpufeatures.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 #include <asm/required-features.h> 10 #include <asm/disabled-features.h> 16 #define NCAPINTS 22 /* N 32-bit words worth of info */ 17 #define NBUGINTS 2 /* N 32-bit bug flags */ 25 * please update the table in kernel/cpu/cpuid-deps.c as well. 28 /* Intel-defined CPU features, CPUID level 0x00000001 (EDX), word 0 */ 34 #define X86_FEATURE_MSR ( 0*32+ 5) /* "msr" Model-Specific Registers */ 45 #define X86_FEATURE_PSE36 ( 0*32+17) /* "pse36" 36-bit PSEs */ 55 #define X86_FEATURE_HT ( 0*32+28) /* "ht" Hyper-Threading */ [all …]
|
/linux/arch/x86/include/asm/ |
H A D | cpufeatures.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 #include <asm/required-features.h> 10 #include <asm/disabled-features.h> 16 #define NCAPINTS 22 /* N 32-bit words worth of info */ 17 #define NBUGINTS 2 /* N 32-bit bug flags */ 25 * please update the table in kernel/cpu/cpuid-deps.c as well. 28 /* Intel-defined CPU features, CPUID level 0x00000001 (EDX), word 0 */ 34 #define X86_FEATURE_MSR ( 0*32+ 5) /* "msr" Model-Specific Registers */ 45 #define X86_FEATURE_PSE36 ( 0*32+17) /* "pse36" 36-bit PSEs */ 55 #define X86_FEATURE_HT ( 0*32+28) /* "ht" Hyper-Threading */ [all …]
|
/linux/tools/include/uapi/linux/ |
H A D | if_link.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 43 * struct rtnl_link_stats64 - The main device statistics structure. 93 * - 30.3.1.1.21 aMulticastFramesReceivedOK 103 * - 30.3.1.1.23 aInRangeLengthErrors 104 * - 30.3.1.1.24 aOutOfRangeLengthField 105 * - 30.3.1.1.25 aFrameTooLongErrors 111 * not correspond one-to-one with dropped packets. 113 * The recommended interpretation for high speed interfaces is - 131 * - 30.3.1.1.6 aFrameCheckSequenceErrors 138 * - 30.3.1.1.7 aAlignmentErrors [all …]
|
/linux/arch/x86/kvm/ |
H A D | cpuid.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Kernel-based Virtual Machine driver for Linux 66 /* Scattered Flag - For features that are scattered by cpufeatures.h. */ 74 * Magic value used by KVM when querying userspace-provided CPUID entries and 80 #define KVM_CPUID_INDEX_NOT_SIGNIFICANT -1ull 89 * KVM has a semi-arbitrary rule that querying the guest's CPUID model in cpuid_entry2_find() 93 * path, e.g. the core VM-Enter/VM-Exit run loop. Nothing will break in cpuid_entry2_find() 103 if (e->function != function) in cpuid_entry2_find() 107 * If the index isn't significant, use the first entry with a in cpuid_entry2_find() 111 if (!(e->flags & KVM_CPUID_FLAG_SIGNIFCANT_INDEX) || e->index == index) in cpuid_entry2_find() [all …]
|
/linux/tools/perf/pmu-events/arch/x86/haswell/ |
H A D | pipeline.json | 20 "BriefDescription": "Speculative and retired macro-conditional branches.", 28 …"BriefDescription": "Speculative and retired macro-unconditional branches excluding calls and indi… 60 "BriefDescription": "Not taken macro-conditional branches.", 68 "BriefDescription": "Taken speculative and retired macro-conditional branches.", 76 …"BriefDescription": "Taken speculative and retired macro-conditional branch instructions excluding… 228 …"PublicDescription": "Counts speculatively miss-predicted indirect branches at execution time. Cou… 498 … For instructions that consist of multiple micro-ops, this event counts the retirement of the last… 503 … "BriefDescription": "Number of instructions retired. General Counter - architectural event", 523 … have no exceptions: Counts also flows that have several X87 or flows that use X87 uops in the exc… 527 …-precise version (that is, does not use PEBS) of the event that counts FP operations retired. For … [all …]
|
/linux/tools/perf/pmu-events/arch/x86/haswellx/ |
H A D | pipeline.json | 20 "BriefDescription": "Speculative and retired macro-conditional branches.", 28 …"BriefDescription": "Speculative and retired macro-unconditional branches excluding calls and indi… 60 "BriefDescription": "Not taken macro-conditional branches.", 68 "BriefDescription": "Taken speculative and retired macro-conditional branches.", 76 …"BriefDescription": "Taken speculative and retired macro-conditional branch instructions excluding… 228 …"PublicDescription": "Counts speculatively miss-predicted indirect branches at execution time. Cou… 498 … For instructions that consist of multiple micro-ops, this event counts the retirement of the last… 503 … "BriefDescription": "Number of instructions retired. General Counter - architectural event", 523 … have no exceptions: Counts also flows that have several X87 or flows that use X87 uops in the exc… 527 …-precise version (that is, does not use PEBS) of the event that counts FP operations retired. For … [all …]
|
/linux/arch/x86/events/intel/ |
H A D | ds.c | 1 // SPDX-License-Identifier: GPL-2.0 203 OP_LH | LEVEL(MSC) | P(SNOOP, NONE), /* 0x10: Memory-side Cache Hit */ 263 if (event->hw.flags & PERF_X86_EVENT_PEBS_ST_HSW) in precise_datala_hsw() 265 else if (event->hw.flags & PERF_X86_EVENT_PEBS_LD_HSW) in precise_datala_hsw() 276 if (event->hw.flags & PERF_X86_EVENT_PEBS_ST_HSW) { in precise_datala_hsw() 302 /* Retrieve the latency data for e-core of ADL */ 308 WARN_ON_ONCE(hybrid_pmu(event->pmu)->pmu_type == hybrid_big); in __grt_latency_data() 311 val = hybrid_var(event->pmu, pebs_data_source)[dse]; in __grt_latency_data() 334 /* Retrieve the latency data for e-core of MTL */ 355 val = hybrid_var(event->pmu, pebs_data_source)[status & PERF_PEBS_DATA_SOURCE_MASK]; in lnc_latency_data() [all …]
|