Skip to content

Commit 82260b7

Browse files
committed
[redhat] kernel-5.14.0-370.el9
Signed-off-by: Scott Weaver <[email protected]>
1 parent 0e66d72 commit 82260b7

File tree

2 files changed

+215
-1
lines changed

2 files changed

+215
-1
lines changed

Makefile.rhelver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ RHEL_MINOR = 4
1212
#
1313
# Use this spot to avoid future merge conflicts.
1414
# Do not trim this comment.
15-
RHEL_RELEASE = 369
15+
RHEL_RELEASE = 370
1616

1717
#
1818
# ZSTREAM

redhat/kernel.changelog-9.4

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,217 @@
1+
* Wed Sep 27 2023 Scott Weaver <[email protected]> [5.14.0-370.el9]
2+
- nfsd: Set technology preview if inter SSC offload is enabled (Dave Wysochanski) [RHEL-2300]
3+
- iw_cxgb4: Fix potential NULL dereference in c4iw_fill_res_cm_id_entry() (Kamal Heib) [RHEL-1733]
4+
- RDMA/cxgb4: Fix potential null-ptr-deref in pass_establish() (Kamal Heib) [RHEL-1733]
5+
- RDMA/cxgb4: add null-ptr-check after ip_dev_find() (Kamal Heib) [RHEL-1733]
6+
- RDMA/cxgb4: Replace 0-length arrays with flexible arrays (Kamal Heib) [RHEL-1733]
7+
- RDMA/cxgb4: remove unnecessary NULL check in __c4iw_poll_cq_one() (Kamal Heib) [RHEL-1733]
8+
- RDMA/rxe: Fix redundant break statement in switch-case. (Kamal Heib) [RHEL-1958]
9+
- RDMA/rxe: Fix incomplete state save in rxe_requester (Kamal Heib) [RHEL-1958]
10+
- RDMA/rxe: Fix rxe_modify_srq (Kamal Heib) [RHEL-1958]
11+
- RDMA/rxe: Fix unsafe drain work queue code (Kamal Heib) [RHEL-1958]
12+
- RDMA/rxe: Move work queue code to subroutines (Kamal Heib) [RHEL-1958]
13+
- RDMA/rxe: Fix an error handling path in rxe_bind_mw() (Kamal Heib) [RHEL-1958]
14+
- RDMA/rxe: Simplify cq->notify code (Kamal Heib) [RHEL-1958]
15+
- RDMA/rxe: Fixes mr access supported list (Kamal Heib) [RHEL-1958]
16+
- RDMA/rxe: Fix rxe_cq_post (Kamal Heib) [RHEL-1958]
17+
- RDMA/rxe: Send last wqe reached event on qp cleanup (Kamal Heib) [RHEL-1958]
18+
- RDMA/rxe: Fix the use-before-initialization error of resp_pkts (Kamal Heib) [RHEL-1958]
19+
- RDMA/rxe: Implement rereg_user_mr (Kamal Heib) [RHEL-1958]
20+
- RDMA/rxe: Let rkey == lkey for local access (Kamal Heib) [RHEL-1958]
21+
- RDMA/rxe: Introduce rxe access supported flags (Kamal Heib) [RHEL-1958]
22+
- RDMA/rxe: Fix access checks in rxe_check_bind_mw (Kamal Heib) [RHEL-1958]
23+
- RDMA//rxe: Optimize send path in rxe_resp.c (Kamal Heib) [RHEL-1958]
24+
- RDMA/rxe: Rename IB_ACCESS_REMOTE (Kamal Heib) [RHEL-1958]
25+
- RDMA/rxe: Fix ref count error in check_rkey() (Kamal Heib) [RHEL-1958]
26+
- RDMA/rxe: Fix packet length checks (Kamal Heib) [RHEL-1958]
27+
- RDMA/rxe: Remove dangling declaration of rxe_cq_disable() (Kamal Heib) [RHEL-1958]
28+
- RDMA/rxe: Fix comments about removed tasklets (Kamal Heib) [RHEL-1958]
29+
- RDMA/rxe: Add workqueue support for rxe tasks (Kamal Heib) [RHEL-1958]
30+
- RDMA/rxe: Convert spin_{lock_bh,unlock_bh} to spin_{lock_irqsave,unlock_irqrestore} (Kamal Heib) [RHEL-1958]
31+
- RDMA/rxe: Fix double unlock in rxe_qp.c (Kamal Heib) [RHEL-1958]
32+
- RDMA/rxe: Fix spinlock recursion deadlock on requester (Kamal Heib) [RHEL-1958]
33+
- RDMA/rxe: Protect QP state with qp->state_lock (Kamal Heib) [RHEL-1958]
34+
- RDMA/rxe: Move code to check if drained to subroutine (Kamal Heib) [RHEL-1958]
35+
- RDMA/rxe: Remove qp->req.state (Kamal Heib) [RHEL-1958]
36+
- RDMA/rxe: Remove qp->comp.state (Kamal Heib) [RHEL-1958]
37+
- RDMA/rxe: Remove qp->resp.state (Kamal Heib) [RHEL-1958]
38+
- RDMA: Add ib_virt_dma_to_page() (Kamal Heib) [RHEL-1958]
39+
- RDMA/siw: Fix pointer cast warning (Kamal Heib) [RHEL-1958]
40+
- RDMA/rxe: Fix the error "trying to register non-static key in rxe_cleanup_task" (Kamal Heib) [RHEL-1958]
41+
- RDMA/rxe: Fix incorrect TASKLET_STATE_SCHED check in rxe_task.c (Kamal Heib) [RHEL-1958]
42+
- RDMA/rxe: Clean kzalloc failure paths (Kamal Heib) [RHEL-1958]
43+
- RDMA/rxe: Remove tasklet call from rxe_cq.c (Kamal Heib) [RHEL-1958]
44+
- RDMA/rxe: Rewrite rxe_task.c (Kamal Heib) [RHEL-1958]
45+
- RDMA/rxe: Make tasks schedule each other (Kamal Heib) [RHEL-1958]
46+
- RDMA/rxe: Remove __rxe_do_task() (Kamal Heib) [RHEL-1958]
47+
- RDMA/rxe: Remove qp reference counting in tasks (Kamal Heib) [RHEL-1958]
48+
- RDMA/rxe: Cleanup error state handling in rxe_comp.c (Kamal Heib) [RHEL-1958]
49+
- RDMA/rxe: Cleanup reset state handling in rxe_resp.c (Kamal Heib) [RHEL-1958]
50+
- RDMA/rxe: Convert tasklet args to queue pairs (Kamal Heib) [RHEL-1958]
51+
- RDMA/rxe: Add error messages (Kamal Heib) [RHEL-1958]
52+
- RDMA/rxe: Extend dbg log messages to err and info (Kamal Heib) [RHEL-1958]
53+
- RDMA/rxe: Change rxe_dbg to rxe_dbg_dev (Kamal Heib) [RHEL-1958]
54+
- RDMA/rxe: Replace exists by rxe in rxe.c (Kamal Heib) [RHEL-1958]
55+
- RDMA/rxe: Fix missing memory barriers in rxe_queue.h (Kamal Heib) [RHEL-1958]
56+
- RDMA/rxe: Remove rxe_alloc() (Kamal Heib) [RHEL-1958]
57+
- Subject: RDMA/rxe: Handle zero length rdma (Kamal Heib) [RHEL-1958]
58+
- RDMA/rxe: Replace rxe_map and rxe_phys_buf by xarray (Kamal Heib) [RHEL-1958]
59+
- RDMA/rxe: Cleanup page variables in rxe_mr.c (Kamal Heib) [RHEL-1958]
60+
- RDMA-rxe: Isolate mr code from atomic_write_reply() (Kamal Heib) [RHEL-1958]
61+
- RDMA-rxe: Isolate mr code from atomic_reply() (Kamal Heib) [RHEL-1958]
62+
- RDMA/rxe: Move rxe_map_mr_sg to rxe_mr.c (Kamal Heib) [RHEL-1958]
63+
- RDMA/rxe: Cleanup mr_check_range (Kamal Heib) [RHEL-1958]
64+
- netfs: Only call folio_start_fscache() one time for each folio (Dave Wysochanski) [RHEL-7959]
65+
- refscale: Fix uninitalized use of wait_queue_head_t (Waiman Long) [2189183]
66+
- thermal/drivers/imx: Remove redundant msg in imx8mm_tmu_probe() and imx_sc_thermal_probe() (Steve Best) [2230684]
67+
- redhat: Use SB cert from system-sb-certs for signing UKI (Vitaly Kuznetsov)
68+
- watchdog: imx2_wdg: Declare local symbols static (Steve Best) [2230688]
69+
- s390/pkey: fix PKEY_TYPE_EP11_AES handling for sysfs attributes (Tobias Huschle) [2225519]
70+
- s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_VERIFYKEY2 IOCTL (Tobias Huschle) [2225519]
71+
- s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_KBLOB2PROTK[23] (Tobias Huschle) [2225519]
72+
- s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_CLR2SECK2 IOCTL (Tobias Huschle) [2225519]
73+
- s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_GENSECK2 IOCTL (Tobias Huschle) [2225519]
74+
- s390/pkey: fix/harmonize internal keyblob headers (Tobias Huschle) [2225519]
75+
- s390/pkey: add support for ecc clear key (Tobias Huschle) [2225519]
76+
- s390/pkey: do not use struct pkey_protkey (Tobias Huschle) [2225519]
77+
- s390/pkey: introduce reverse x-mas trees (Tobias Huschle) [2225519]
78+
- s390/zcrypt: fix reply buffer calculations for CCA replies (Tobias Huschle) [2227777]
79+
- trace: Add trace_ipi_send_cpu() (Jerome Marchand) [2192613]
80+
- sched, smp: Trace smp callback causing an IPI (Jerome Marchand) [2192613]
81+
- smp: reword smp call IPI comment (Jerome Marchand) [2192613]
82+
- treewide: Trace IPIs sent via smp_send_reschedule() (Jerome Marchand) [2192613]
83+
- irq_work: Trace self-IPIs sent via arch_irq_work_raise() (Jerome Marchand) [2192613]
84+
- smp: Trace IPIs sent via arch_send_call_function_ipi_mask() (Jerome Marchand) [2192613]
85+
- sched, smp: Trace IPIs sent via send_call_function_single_ipi() (Jerome Marchand) [2192613]
86+
- trace: Add trace_ipi_send_cpumask() (Jerome Marchand) [2192613]
87+
- fprobe: add unlock to match a succeeded ftrace_test_recursion_trylock (Viktor Malik) [RHEL-2373]
88+
- rethook, fprobe: do not trace rethook related functions (Viktor Malik) [RHEL-2373]
89+
- fprobe: add recursion detection in fprobe_exit_handler (Viktor Malik) [RHEL-2373]
90+
- fprobe: make fprobe_kprobe_handler recursion free (Viktor Malik) [RHEL-2373]
91+
- rethook: use preempt_{disable, enable}_notrace in rethook_trampoline_handler (Viktor Malik) [RHEL-2373]
92+
- bonding: reset bond's flags when down link is P2P device (Hangbin Liu) [2221438]
93+
- cxl/region: Move coherence tracking into cxl_region_attach() (John W. Linville) [2168268]
94+
- cxl/region: Fix region setup/teardown for RCDs (John W. Linville) [2168268]
95+
- cxl/port: Fix find_cxl_root() for RCDs and simplify it (John W. Linville) [2168268]
96+
- cxl: avoid returning uninitialized error code (John W. Linville) [2168268]
97+
- dax: Assign RAM regions to memory-hotplug by default (John W. Linville) [2168268]
98+
- dax/hmem: Convey the dax range via memregion_info() (John W. Linville) [2168268]
99+
- tools/testing/cxl: Define a fixed volatile configuration to parse (John W. Linville) [2168268]
100+
- cxl/region: Add region autodiscovery (John W. Linville) [2168268]
101+
- cxl/port: Split endpoint and switch port probe (John W. Linville) [2168268]
102+
- redhat/configs: Enable CONFIG_CXL_REGION (John W. Linville) [2168268]
103+
- cxl/region: Enable CONFIG_CXL_REGION to be toggled (John W. Linville) [2168268]
104+
- kernel/range: Uplevel the cxl subsystem's range_contains() helper (John W. Linville) [2168268]
105+
- cxl/region: Move region-position validation to a helper (John W. Linville) [2168268]
106+
- cxl/region: Refactor attach_target() for autodiscovery (John W. Linville) [2168268]
107+
- cxl/region: Add volatile region creation support (John W. Linville) [2168268]
108+
- cxl/region: Validate region mode vs decoder mode (John W. Linville) [2168268]
109+
- cxl/region: Support empty uuids for non-pmem regions (John W. Linville) [2168268]
110+
- cxl/region: Add a mode attribute for regions (John W. Linville) [2168268]
111+
- cxl/port: Link the 'parent_dport' in portX/ and endpointX/ sysfs (John W. Linville) [2168268]
112+
- cxl/region: Clarify when a cxld->commit() callback is mandatory (John W. Linville) [2168268]
113+
- tools/testing/cxl: require 64-bit (John W. Linville) [2168268]
114+
- cxl/pci: Show opcode in debug messages when sending a command (John W. Linville) [2168268]
115+
- tools/testing/cxl: Prevent cxl_test from confusing production modules (John W. Linville) [2168268]
116+
- cxl/region: Only warn about cpu_cache_invalidate_memregion() once (John W. Linville) [2168268]
117+
- cxl/pci: Move tracepoint definitions to drivers/cxl/core/ (John W. Linville) [2168268]
118+
- net: ethtool: Unify ETHTOOL_{G,S}RXFH rxnfc copy (Michal Schmidt) [RHEL-860]
119+
- ethtool: ioctl: account for sopass diff in set_wol (Michal Schmidt) [RHEL-860]
120+
- net: ethtool: don't require empty header nests (Michal Schmidt) [RHEL-860]
121+
- ethtool: ioctl: improve error checking for set_wol (Michal Schmidt) [RHEL-860]
122+
- ethtool: Fix uninitialized number of lanes (Michal Schmidt) [RHEL-860]
123+
- net: ethtool: coalesce: try to make user settings stick twice (Michal Schmidt) [RHEL-860]
124+
- net: ethtool: mm: sanitize some UAPI configurations (Michal Schmidt) [RHEL-860]
125+
- net: ethtool: create and export ethtool_dev_mm_supported() (Michal Schmidt) [RHEL-860]
126+
- ipv6: Remove in6addr_any alternatives. (Michal Schmidt) [RHEL-860]
127+
- ethtool: Add support for configuring tx_push_buf_len (Michal Schmidt) [RHEL-860]
128+
- netlink: Add a macro to set policy message with format string (Michal Schmidt) [RHEL-860]
129+
- IPv6: add extack info for IPv6 address add/delete (Hangbin Liu) [RHEL-3923]
130+
- tools/power/x86/intel-speed-select: v1.17 release (David Arcari) [2177018]
131+
- tools/power/x86/intel-speed-select: Change mem-frequency display name (David Arcari) [2177018]
132+
- tools/power/x86/intel-speed-select: Prevent CPU 0 offline (David Arcari) [2177018]
133+
- tools/power/x86/intel-speed-select: Error on CPU count exceed in request (David Arcari) [2177018]
134+
- tools/power/x86/intel-speed-select: Support more than 8 sockets. (David Arcari) [2177018]
135+
- tools/power/x86/intel-speed-select: Fix CPU count display (David Arcari) [2177018]
136+
- tools/power/x86/intel-speed-select: v1.16 release (David Arcari) [2177018]
137+
- tools/power/x86/intel-speed-select: Fix json formatting issue (David Arcari) [2177018]
138+
- tools/power/x86/intel-speed-select: Adjust scope of core-power config (David Arcari) [2177018]
139+
- tools/power/x86/intel-speed-select: Change TRL display for Emerald Rapids (David Arcari) [2177018]
140+
- tools/power/x86/intel-speed-select: Display AMX base frequency (David Arcari) [2177018]
141+
- tools/power/x86/intel-speed-select: Identify Emerald Rapids (David Arcari) [2177018]
142+
- tools/power/x86/intel-speed-select: Update version (David Arcari) [2177018]
143+
- tools/power/x86/intel-speed-select: Use cgroup v2 isolation (David Arcari) [2177018]
144+
- tools/power/x86/intel-speed-select: Add missing free cpuset (David Arcari) [2177018]
145+
- tools/power/x86/intel-speed-select: Fix clos-max display with TPMI I/F (David Arcari) [2177018]
146+
- tools/power/x86/intel-speed-select: Add cpu id check (David Arcari) [2177018]
147+
- tools/power/x86/intel-speed-select: Avoid setting duplicate tdp level (David Arcari) [2177018]
148+
- tools/power/x86/intel-speed-select: Remove cpu mask display for non-cpu power domain (David Arcari) [2177018]
149+
- tools/power/x86/intel-speed-select: Hide invalid TRL level (David Arcari) [2177018]
150+
- tools/power/x86/intel-speed-select: Display fact info for non-cpu power domain (David Arcari) [2177018]
151+
- tools/power/x86/intel-speed-select: Show level 0 name for new api_version (David Arcari) [2177018]
152+
- tools/power/x86/intel-speed-select: Prevent cpu clos config for non-cpu power domain (David Arcari) [2177018]
153+
- tools/power/x86/intel-speed-select: Allow display non-cpu power domain info (David Arcari) [2177018]
154+
- tools/power/x86/intel-speed-select: Display punit info (David Arcari) [2177018]
155+
- tools/power/x86/intel-speed-select: Display amx_p1 and cooling_type (David Arcari) [2177018]
156+
- tools/power/x86/intel-speed-select: Introduce TPMI interface support (David Arcari) [2177018]
157+
- tools/power/x86/intel-speed-select: Get punit core mapping information (David Arcari) [2177018]
158+
- tools/power/x86/intel-speed-select: Introduce api_version helper (David Arcari) [2177018]
159+
- tools/power/x86/intel-speed-select: Support large clos_min/max (David Arcari) [2177018]
160+
- tools/power/x86/intel-speed-select: Abstract adjust_uncore_freq (David Arcari) [2177018]
161+
- tools/power/x86/intel-speed-select: Allow api_version based platform callbacks (David Arcari) [2177018]
162+
- tools/power/x86/intel-speed-select: Move send_mbox_cmd to isst-core-mbox.c (David Arcari) [2177018]
163+
- tools/power/x86/intel-speed-select: Introduce is_debug_enabled() (David Arcari) [2177018]
164+
- tools/power/x86/intel-speed-select: Abstract read_pm_config (David Arcari) [2177018]
165+
- tools/power/x86/intel-speed-select: Abstract clos_associate (David Arcari) [2177018]
166+
- tools/power/x86/intel-speed-select: Abstract clos_get_assoc_status (David Arcari) [2177018]
167+
- tools/power/x86/intel-speed-select: Abstract set_clos (David Arcari) [2177018]
168+
- tools/power/x86/intel-speed-select: Abstract pm_get_clos (David Arcari) [2177018]
169+
- tools/power/x86/intel-speed-select: Abstract pm_qos_config (David Arcari) [2177018]
170+
- tools/power/x86/intel-speed-select: Abstract get_get_trls (David Arcari) [2177018]
171+
- tools/power/x86/intel-speed-select: Enhance get_tdp_info (David Arcari) [2177018]
172+
- tools/power/x86/intel-speed-select: Abstract get_clos_information (David Arcari) [2177018]
173+
- tools/power/x86/intel-speed-select: Abstract get_uncore_p0_p1_info (David Arcari) [2177018]
174+
- tools/power/x86/intel-speed-select: Abstract get_fact_info (David Arcari) [2177018]
175+
- tools/power/x86/intel-speed-select: Abstract set_pbf_fact_status (David Arcari) [2177018]
176+
- tools/power/x86/intel-speed-select: Remove isst_get_pbf_info_complete (David Arcari) [2177018]
177+
- tools/power/x86/intel-speed-select: Abstract get_pbf_info (David Arcari) [2177018]
178+
- tools/power/x86/intel-speed-select: Abstract set_tdp_level (David Arcari) [2177018]
179+
- tools/power/x86/intel-speed-select: Abstract get_trl_bucket_info (David Arcari) [2177018]
180+
- tools/power/x86/intel-speed-select: Abstract get_get_trl (David Arcari) [2177018]
181+
- tools/power/x86/intel-speed-select: Abstract get_coremask_info (David Arcari) [2177018]
182+
- tools/power/x86/intel-speed-select: Abstract get_tjmax_info (David Arcari) [2177018]
183+
- tools/power/x86/intel-speed-select: Move code right before its caller (David Arcari) [2177018]
184+
- tools/power/x86/intel-speed-select: Abstract get_pwr_info (David Arcari) [2177018]
185+
- tools/power/x86/intel-speed-select: Abstract get_tdp_info (David Arcari) [2177018]
186+
- tools/power/x86/intel-speed-select: Abstract get_ctdp_control (David Arcari) [2177018]
187+
- tools/power/x86/intel-speed-select: Abstract get_config_levels (David Arcari) [2177018]
188+
- tools/power/x86/intel-speed-select: Abstract is_punit_valid (David Arcari) [2177018]
189+
- tools/power/x86/intel-speed-select: Introduce isst-core-mbox.c (David Arcari) [2177018]
190+
- tools/power/x86/intel-speed-select: Always invoke isst_fill_platform_info (David Arcari) [2177018]
191+
- tools/power/x86/intel-speed-select: Introduce isst_get_disp_freq_multiplier (David Arcari) [2177018]
192+
- tools/power/x86/intel-speed-select: Move mbox functions to isst-core.c (David Arcari) [2177018]
193+
- tools/power/x86/intel-speed-select: Introduce support for multi-punit (David Arcari) [2177018]
194+
- tools/power/x86/intel-speed-select: Improve isst_print_extended_platform_info (David Arcari) [2177018]
195+
- tools/power/x86/intel-speed-select: Rename for_each_online_package_in_set (David Arcari) [2177018]
196+
- tools/power/x86/intel-speed-select: Introduce isst_is_punit_valid() (David Arcari) [2177018]
197+
- tools/power/x86/intel-speed-select: Follow TRL nameing for FACT info (David Arcari) [2177018]
198+
- tools/power/x86/intel-speed-select: Introduce punit to isst_id (David Arcari) [2177018]
199+
- tools/power/x86/intel-speed-select: Unify TRL levels (David Arcari) [2177018]
200+
- Revert "tools/power/x86/intel-speed-select: Support more than 8 sockets." (David Arcari) [2177018]
201+
- x86/mce: Add support for Extended Physical Address MCA changes (Aristeu Rozanski) [2164637]
202+
- x86/mce: Define a function to extract ErrorAddr from MCA_ADDR (Aristeu Rozanski) [2164637]
203+
- x86/mce: Avoid unnecessary padding in struct mce_bank (Aristeu Rozanski) [2164637]
204+
- net/mlx5e: TC, Remove sample and ct limitation (Amir Tzin) [2229736]
205+
- net/mlx5e: TC, Remove mirror and ct limitation (Amir Tzin) [2229736]
206+
- net/mlx5e: TC, Remove tuple rewrite and ct limitation (Amir Tzin) [2229736]
207+
- net/mlx5e: TC, Remove multiple ct actions limitation (Amir Tzin) [2229736]
208+
- net/mlx5e: TC, Remove CT action reordering (Amir Tzin) [2229736]
209+
- net/mlx5e: CT: Use per action stats (Amir Tzin) [2229736]
210+
- net/mlx5e: TC, Move main flow attribute cleanup to helper func (Amir Tzin) [2229736]
211+
- net/mlx5e: TC, Remove unused vf_tun variable (Amir Tzin) [2229736]
212+
- net/mlx5e: Set default can_offload action (Amir Tzin) [2229736]
213+
Resolves: rhbz#2168268, rhbz#2177018, rhbz#2189183, rhbz#2192613, rhbz#2221438, rhbz#2225519, rhbz#2227777, rhbz#2230684, rhbz#2230688, RHEL-1733, RHEL-1958, RHEL-2300, RHEL-2373, RHEL-3923, RHEL-7959, RHEL-860
214+
1215
* Mon Sep 25 2023 Scott Weaver <[email protected]> [5.14.0-369.el9]
2216
- devlink: add missing unregister linecard notification (Petr Oros) [RHEL-945]
3217
- devlink: fix kernel-doc notation warnings (Petr Oros) [RHEL-945]

0 commit comments

Comments
 (0)