From 3baab0f4a7fc974e673d6c7bc36f261b7b3d20b3 Mon Sep 17 00:00:00 2001 From: Kernel Build Daemon Date: Feb 08 2023 06:33:14 +0000 Subject: Merge branch 'SLE15-SP4' into SLE15-SP4-AZURE --- diff --git a/kabi/arm64/symtypes-64kb b/kabi/arm64/symtypes-64kb index dca3501..6438d25 100644 --- a/kabi/arm64/symtypes-64kb +++ b/kabi/arm64/symtypes-64kb @@ -2467,6 +2467,7 @@ submit_bio_noacct t#blk_qc_t submit_bio_noacct ( s#bio * ) submit_bio extern t#blk_qc_t submit_bio ( s#bio * ) blk_insert_cloned_request extern t#blk_status_t blk_insert_cloned_request ( s#request_queue * , s#request * ) blk_rq_err_bytes extern unsigned int blk_rq_err_bytes ( const s#request * ) +bio_start_io_acct_time void bio_start_io_acct_time ( s#bio * , unsigned long ) bio_start_io_acct unsigned long bio_start_io_acct ( s#bio * ) disk_start_io_acct unsigned long disk_start_io_acct ( s#gendisk * , unsigned int , unsigned int ) bio_end_io_acct_remapped void bio_end_io_acct_remapped ( s#bio * , unsigned long , s#block_device * ) @@ -30684,7 +30685,11 @@ s##fwnode_handle s##iommu_group s##dev_iommu devm_clk_get s#clk * devm_clk_get ( s#device * , const char * ) +devm_clk_get_prepared s#clk * devm_clk_get_prepared ( s#device * , const char * ) +devm_clk_get_enabled s#clk * devm_clk_get_enabled ( s#device * , const char * ) devm_clk_get_optional s#clk * devm_clk_get_optional ( s#device * , const char * ) +devm_clk_get_optional_prepared s#clk * devm_clk_get_optional_prepared ( s#device * , const char * ) +devm_clk_get_optional_enabled s#clk * devm_clk_get_optional_enabled ( s#device * , const char * ) devm_clk_bulk_get int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_optional int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_optional ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_all int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_all ( s#device * , s#clk_bulk_data * * ) @@ -151643,7 +151648,7 @@ s##bpf_xdp_link s#qmem struct qmem { void * base ; t#dma_addr_t iova ; int alloc_sz ; t#u16 entry_sz ; t#u8 align ; t#u32 qsize ; } s#sg_list struct sg_list { t#u16 num_segs ; t#u64 skb ; t#u64 size [ 9 ] ; t#u64 dma_addr [ 9 ] ; } s#queue_stats struct queue_stats { t#u64 bytes ; t#u64 pkts ; } -s#otx2_snd_queue struct otx2_snd_queue { t#u8 aura_id ; t#u16 head ; t#u16 sqe_size ; t#u32 sqe_cnt ; t#u16 num_sqbs ; t#u16 sqe_thresh ; t#u8 sqe_per_sqb ; t#u64 io_addr ; t#u64 * aura_fc_addr ; t#u64 * lmt_addr ; void * sqe_base ; s#qmem * sqe ; s#qmem * tso_hdrs ; s#sg_list * sg ; s#qmem * timestamps ; s#queue_stats stats ; t#u16 sqb_count ; t#u64 * sqb_ptrs ; } +s#otx2_snd_queue struct otx2_snd_queue { t#u8 aura_id ; t#u16 head ; t#u16 cons_head ; t#u16 sqe_size ; t#u32 sqe_cnt ; t#u16 num_sqbs ; t#u16 sqe_thresh ; t#u8 sqe_per_sqb ; t#u64 io_addr ; t#u64 * aura_fc_addr ; t#u64 * lmt_addr ; void * sqe_base ; s#qmem * sqe ; s#qmem * tso_hdrs ; s#sg_list * sg ; s#qmem * timestamps ; s#queue_stats stats ; t#u16 sqb_count ; t#u64 * sqb_ptrs ; } s#otx2_pool struct otx2_pool { s#qmem * stack ; s#qmem * fc_addr ; t#u16 rbsize ; } s#otx2_cq_queue struct otx2_cq_queue { t#u8 cq_idx ; t#u8 cq_type ; t#u8 cint_idx ; t#u8 refill_task_sched ; t#u16 cqe_size ; t#u16 pool_ptrs ; t#u32 cqe_cnt ; t#u32 cq_head ; t#u32 cq_tail ; t#u32 pend_cqe ; void * cqe_base ; s#qmem * cqe ; s#otx2_pool * rbpool ; s#xdp_rxq_info xdp_rxq ; } s#dev_hw_ops struct dev_hw_ops { int ( * sq_aq_init ) ( void * , t#u16 , t#u16 ) ; void ( * sqe_flush ) ( void * , s#otx2_snd_queue * , int , int ) ; void ( * refill_pool_ptrs ) ( void * , s#otx2_cq_queue * ) ; void ( * aura_freeptr ) ( void * , int , t#u64 ) ; } @@ -151673,9 +151678,9 @@ s#otx2_tc_info struct otx2_tc_info { s#rhashtable flow_table ; s#rhashtable_para s#flr_work struct flr_work { s#work_struct work ; s#otx2_nic * pf ; } s#refill_work struct refill_work { s#delayed_work pool_refill_work ; s#otx2_nic * pf ; } s##ptp_clock -s#otx2_ptp struct otx2_ptp { s#ptp_clock_info ptp_info ; s#ptp_clock * ptp_clock ; s#otx2_nic * nic ; s#cyclecounter cycle_counter ; s#timecounter time_counter ; s#delayed_work extts_work ; t#u64 last_extts ; t#u64 thresh ; s#ptp_pin_desc extts_config ; t#u64 ( * convert_rx_ptp_tstmp ) ( t#u64 ) ; t#u64 ( * convert_tx_ptp_tstmp ) ( t#u64 ) ; } +s#otx2_ptp struct otx2_ptp { s#ptp_clock_info ptp_info ; s#ptp_clock * ptp_clock ; s#otx2_nic * nic ; s#cyclecounter cycle_counter ; s#timecounter time_counter ; s#delayed_work extts_work ; t#u64 last_extts ; t#u64 thresh ; s#ptp_pin_desc extts_config ; t#u64 ( * convert_rx_ptp_tstmp ) ( t#u64 ) ; t#u64 ( * convert_tx_ptp_tstmp ) ( t#u64 ) ; s#delayed_work synctstamp_work ; t#u64 tstamp ; t#u32 base_ns ; } s#otx2_devlink struct otx2_devlink { s#devlink * dl ; s#otx2_nic * pfvf ; } -s#otx2_nic struct otx2_nic { void * reg_base ; s#net_device * netdev ; s#dev_hw_ops * hw_ops ; void * iommu_domain ; t#u16 tx_max_pktlen ; t#u16 rbsize ; t#u64 flags ; t#u64 * cq_op_addr ; s#bpf_prog * xdp_prog ; s#otx2_qset qset ; s#otx2_hw hw ; s#pci_dev * pdev ; s#device * dev ; s#mbox mbox ; s#mbox * mbox_pfvf ; s#workqueue_struct * mbox_wq ; s#workqueue_struct * mbox_pfvf_wq ; t#u8 total_vfs ; t#u16 pcifunc ; t#u16 bpid [ 64 ] ; s#otx2_vf_config * vf_configs ; s#cgx_link_user_info linfo ; s#otx2_flow_config * flow_cfg ; s#otx2_mac_table * mac_table ; s#otx2_tc_info tc_info ; t#u64 reset_count ; s#work_struct reset_task ; s#workqueue_struct * flr_wq ; s#flr_work * flr_wrk ; s#refill_work * refill_wrk ; s#workqueue_struct * otx2_wq ; s#work_struct rx_mode_work ; t#u32 msg_enable ; int nix_blkaddr ; s#qmem * dync_lmt ; t#u16 tot_lmt_lines ; t#u16 npa_lmt_lines ; t#u32 nix_lmt_size ; s#otx2_ptp * ptp ; s#hwtstamp_config tstamp ; unsigned long rq_bmap ; s#otx2_devlink * dl ; t#u8 pfc_en ; t#u8 * queue_to_pfc_map ; t#u32 napi_events ; } +s#otx2_nic struct otx2_nic { void * reg_base ; s#net_device * netdev ; s#dev_hw_ops * hw_ops ; void * iommu_domain ; t#u16 tx_max_pktlen ; t#u16 rbsize ; t#u64 flags ; t#u64 * cq_op_addr ; s#bpf_prog * xdp_prog ; s#otx2_qset qset ; s#otx2_hw hw ; s#pci_dev * pdev ; s#device * dev ; s#mbox mbox ; s#mbox * mbox_pfvf ; s#workqueue_struct * mbox_wq ; s#workqueue_struct * mbox_pfvf_wq ; t#u8 total_vfs ; t#u16 pcifunc ; t#u16 bpid [ 64 ] ; s#otx2_vf_config * vf_configs ; s#cgx_link_user_info linfo ; s#otx2_flow_config * flow_cfg ; s#otx2_mac_table * mac_table ; s#otx2_tc_info tc_info ; t#u64 reset_count ; s#work_struct reset_task ; s#workqueue_struct * flr_wq ; s#flr_work * flr_wrk ; s#refill_work * refill_wrk ; s#workqueue_struct * otx2_wq ; s#work_struct rx_mode_work ; t#u32 msg_enable ; int nix_blkaddr ; s#qmem * dync_lmt ; t#u16 tot_lmt_lines ; t#u16 npa_lmt_lines ; t#u32 nix_lmt_size ; s#otx2_ptp * ptp ; s#hwtstamp_config tstamp ; unsigned long rq_bmap ; s#otx2_devlink * dl ; t#u8 pfc_en ; t#u8 * queue_to_pfc_map ; t#u16 pfc_schq_list [ E#NIX_TXSCH_LVL_CNT ] [ 128 ] ; t#bool pfc_alloc_status [ 8 ] ; t#u32 napi_events ; } cn10k_lmtst_init int cn10k_lmtst_init ( s#otx2_nic * ) /* drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.o */ @@ -151871,6 +151876,8 @@ s##ptp_clock otx2_config_pause_frm int otx2_config_pause_frm ( s#otx2_nic * ) otx2_tx_timeout void otx2_tx_timeout ( s#net_device * , unsigned int ) otx2_get_mac_from_af void otx2_get_mac_from_af ( s#net_device * ) +otx2_txschq_config int otx2_txschq_config ( s#otx2_nic * , int , int , t#bool ) +otx2_smq_flush int otx2_smq_flush ( s#otx2_nic * , int ) otx2_detach_resources int otx2_detach_resources ( s#mbox * ) otx2_attach_npa_nix int otx2_attach_npa_nix ( s#otx2_nic * ) otx2_nix_config_bp int otx2_nix_config_bp ( s#otx2_nic * , t#bool ) @@ -244520,7 +244527,9 @@ s##trace_event_call s##scsi_device_handler s##scsi_host_cmd_pool s##bsg_job +iscsi_conn_queue_xmit extern void iscsi_conn_queue_xmit ( s#iscsi_conn * ) iscsi_conn_queue_work extern void iscsi_conn_queue_work ( s#iscsi_conn * ) +iscsi_conn_queue_recv extern void iscsi_conn_queue_recv ( s#iscsi_conn * ) s#iscsi_nopin struct iscsi_nopin { t#uint8_t opcode ; t#uint8_t flags ; t#__be16 rsvd2 ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 statsn ; t#__be32 exp_cmdsn ; t#__be32 max_cmdsn ; t#uint8_t rsvd4 [ 12 ] ; } iscsi_update_cmdsn extern void iscsi_update_cmdsn ( s#iscsi_session * , s#iscsi_nopin * ) s#iscsi_data struct iscsi_data { t#uint8_t opcode ; t#uint8_t flags ; t#uint8_t rsvd2 [ 2 ] ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 rsvd4 ; t#__be32 exp_statsn ; t#__be32 rsvd5 ; t#__be32 datasn ; t#__be32 offset ; t#__be32 rsvd6 ; } @@ -244543,6 +244552,7 @@ iscsi_queuecommand extern int iscsi_queuecommand ( s#Scsi_Host * , s#scsi_cmnd * iscsi_target_alloc extern int iscsi_target_alloc ( s#scsi_target * ) iscsi_suspend_queue extern void iscsi_suspend_queue ( s#iscsi_conn * ) iscsi_suspend_tx extern void iscsi_suspend_tx ( s#iscsi_conn * ) +iscsi_suspend_rx extern void iscsi_suspend_rx ( s#iscsi_conn * ) iscsi_eh_cmd_timed_out extern e#blk_eh_timer_return iscsi_eh_cmd_timed_out ( s#scsi_cmnd * ) iscsi_conn_unbind extern void iscsi_conn_unbind ( s#iscsi_cls_conn * , t#bool ) iscsi_eh_abort extern int iscsi_eh_abort ( s#scsi_cmnd * ) @@ -256105,7 +256115,7 @@ amvdec_am21c_body_size t#u32 amvdec_am21c_body_size ( t#u32 , t#u32 ) amvdec_am21c_head_size t#u32 amvdec_am21c_head_size ( t#u32 , t#u32 ) amvdec_am21c_size t#u32 amvdec_am21c_size ( t#u32 , t#u32 ) amvdec_set_canvases int amvdec_set_canvases ( s#amvdec_session * , t#u32 [ ] , t#u32 [ ] ) -amvdec_add_ts void amvdec_add_ts ( s#amvdec_session * , t#u64 , s#v4l2_timecode , t#u32 , t#u32 ) +amvdec_add_ts int amvdec_add_ts ( s#amvdec_session * , t#u64 , s#v4l2_timecode , t#u32 , t#u32 ) amvdec_remove_ts void amvdec_remove_ts ( s#amvdec_session * , t#u64 ) amvdec_dst_buf_done void amvdec_dst_buf_done ( s#amvdec_session * , s#vb2_v4l2_buffer * , t#u32 ) amvdec_dst_buf_done_offset void amvdec_dst_buf_done_offset ( s#amvdec_session * , s#vb2_v4l2_buffer * , t#u32 , t#u32 , t#bool ) @@ -275517,6 +275527,7 @@ typec_get_orientation e#typec_orientation typec_get_orientation ( s#typec_port * typec_set_mode int typec_set_mode ( s#typec_port * , int ) typec_get_negotiated_svdm_version int typec_get_negotiated_svdm_version ( s#typec_port * ) typec_get_drvdata void * typec_get_drvdata ( s#typec_port * ) +typec_get_fw_cap int typec_get_fw_cap ( s#typec_capability * , s#fwnode_handle * ) typec_port_register_altmode s#typec_altmode * typec_port_register_altmode ( s#typec_port * , const s#typec_altmode_desc * ) typec_port_register_altmodes void typec_port_register_altmodes ( s#typec_port * , const s#typec_altmode_ops * , void * , s#typec_altmode * * , t#size_t ) typec_register_port s#typec_port * typec_register_port ( s#device * , const s#typec_capability * ) @@ -312828,6 +312839,7 @@ schedule_timeout_uninterruptible extern long schedule_timeout_uninterruptible ( schedule_timeout_idle extern long schedule_timeout_idle ( long ) msleep void msleep ( unsigned int ) msleep_interruptible unsigned long msleep_interruptible ( unsigned int ) +usleep_range_state void usleep_range_state ( unsigned long , unsigned long , unsigned int ) usleep_range void usleep_range ( unsigned long , unsigned long ) /* kernel/torture.o */ @@ -340413,6 +340425,9 @@ sk_set_memalloc void sk_set_memalloc ( s#sock * ) sk_clear_memalloc void sk_clear_memalloc ( s#sock * ) __sk_backlog_rcv int __sk_backlog_rcv ( s#sock * , s#sk_buff * ) sk_error_report void sk_error_report ( s#sock * ) +sock_get_timeout int sock_get_timeout ( long , void * , t#bool ) +s#__kernel_sock_timeval struct __kernel_sock_timeval { t#__s64 tv_sec ; t#__s64 tv_usec ; } +sock_copy_user_timeval int sock_copy_user_timeval ( s#__kernel_sock_timeval * , t#sockptr_t , int , t#bool ) __sock_queue_rcv_skb int __sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) sock_queue_rcv_skb int sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) __sk_receive_skb int __sk_receive_skb ( s#sock * , s#sk_buff * , const int , unsigned int , t#bool ) @@ -430816,6 +430831,7 @@ vcpu_load void vcpu_load ( s#kvm_vcpu * ) vcpu_put void vcpu_put ( s#kvm_vcpu * ) kvm_make_all_cpus_request t#bool kvm_make_all_cpus_request ( s#kvm * , unsigned int ) kvm_vcpu_destroy void kvm_vcpu_destroy ( s#kvm_vcpu * ) +kvm_destroy_vcpus void kvm_destroy_vcpus ( s#kvm * ) kvm_get_kvm void kvm_get_kvm ( s#kvm * ) kvm_put_kvm void kvm_put_kvm ( s#kvm * ) kvm_put_kvm_no_destroy void kvm_put_kvm_no_destroy ( s#kvm * ) diff --git a/kabi/arm64/symtypes-default b/kabi/arm64/symtypes-default index b164666..c89d16f 100644 --- a/kabi/arm64/symtypes-default +++ b/kabi/arm64/symtypes-default @@ -2467,6 +2467,7 @@ submit_bio_noacct t#blk_qc_t submit_bio_noacct ( s#bio * ) submit_bio extern t#blk_qc_t submit_bio ( s#bio * ) blk_insert_cloned_request extern t#blk_status_t blk_insert_cloned_request ( s#request_queue * , s#request * ) blk_rq_err_bytes extern unsigned int blk_rq_err_bytes ( const s#request * ) +bio_start_io_acct_time void bio_start_io_acct_time ( s#bio * , unsigned long ) bio_start_io_acct unsigned long bio_start_io_acct ( s#bio * ) disk_start_io_acct unsigned long disk_start_io_acct ( s#gendisk * , unsigned int , unsigned int ) bio_end_io_acct_remapped void bio_end_io_acct_remapped ( s#bio * , unsigned long , s#block_device * ) @@ -30684,7 +30685,11 @@ s##fwnode_handle s##iommu_group s##dev_iommu devm_clk_get s#clk * devm_clk_get ( s#device * , const char * ) +devm_clk_get_prepared s#clk * devm_clk_get_prepared ( s#device * , const char * ) +devm_clk_get_enabled s#clk * devm_clk_get_enabled ( s#device * , const char * ) devm_clk_get_optional s#clk * devm_clk_get_optional ( s#device * , const char * ) +devm_clk_get_optional_prepared s#clk * devm_clk_get_optional_prepared ( s#device * , const char * ) +devm_clk_get_optional_enabled s#clk * devm_clk_get_optional_enabled ( s#device * , const char * ) devm_clk_bulk_get int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_optional int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_optional ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_all int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_all ( s#device * , s#clk_bulk_data * * ) @@ -151758,7 +151763,7 @@ s##bpf_xdp_link s#qmem struct qmem { void * base ; t#dma_addr_t iova ; int alloc_sz ; t#u16 entry_sz ; t#u8 align ; t#u32 qsize ; } s#sg_list struct sg_list { t#u16 num_segs ; t#u64 skb ; t#u64 size [ 9 ] ; t#u64 dma_addr [ 9 ] ; } s#queue_stats struct queue_stats { t#u64 bytes ; t#u64 pkts ; } -s#otx2_snd_queue struct otx2_snd_queue { t#u8 aura_id ; t#u16 head ; t#u16 sqe_size ; t#u32 sqe_cnt ; t#u16 num_sqbs ; t#u16 sqe_thresh ; t#u8 sqe_per_sqb ; t#u64 io_addr ; t#u64 * aura_fc_addr ; t#u64 * lmt_addr ; void * sqe_base ; s#qmem * sqe ; s#qmem * tso_hdrs ; s#sg_list * sg ; s#qmem * timestamps ; s#queue_stats stats ; t#u16 sqb_count ; t#u64 * sqb_ptrs ; } +s#otx2_snd_queue struct otx2_snd_queue { t#u8 aura_id ; t#u16 head ; t#u16 cons_head ; t#u16 sqe_size ; t#u32 sqe_cnt ; t#u16 num_sqbs ; t#u16 sqe_thresh ; t#u8 sqe_per_sqb ; t#u64 io_addr ; t#u64 * aura_fc_addr ; t#u64 * lmt_addr ; void * sqe_base ; s#qmem * sqe ; s#qmem * tso_hdrs ; s#sg_list * sg ; s#qmem * timestamps ; s#queue_stats stats ; t#u16 sqb_count ; t#u64 * sqb_ptrs ; } s#otx2_pool struct otx2_pool { s#qmem * stack ; s#qmem * fc_addr ; t#u16 rbsize ; } s#otx2_cq_queue struct otx2_cq_queue { t#u8 cq_idx ; t#u8 cq_type ; t#u8 cint_idx ; t#u8 refill_task_sched ; t#u16 cqe_size ; t#u16 pool_ptrs ; t#u32 cqe_cnt ; t#u32 cq_head ; t#u32 cq_tail ; t#u32 pend_cqe ; void * cqe_base ; s#qmem * cqe ; s#otx2_pool * rbpool ; s#xdp_rxq_info xdp_rxq ; } s#dev_hw_ops struct dev_hw_ops { int ( * sq_aq_init ) ( void * , t#u16 , t#u16 ) ; void ( * sqe_flush ) ( void * , s#otx2_snd_queue * , int , int ) ; void ( * refill_pool_ptrs ) ( void * , s#otx2_cq_queue * ) ; void ( * aura_freeptr ) ( void * , int , t#u64 ) ; } @@ -151788,9 +151793,9 @@ s#otx2_tc_info struct otx2_tc_info { s#rhashtable flow_table ; s#rhashtable_para s#flr_work struct flr_work { s#work_struct work ; s#otx2_nic * pf ; } s#refill_work struct refill_work { s#delayed_work pool_refill_work ; s#otx2_nic * pf ; } s##ptp_clock -s#otx2_ptp struct otx2_ptp { s#ptp_clock_info ptp_info ; s#ptp_clock * ptp_clock ; s#otx2_nic * nic ; s#cyclecounter cycle_counter ; s#timecounter time_counter ; s#delayed_work extts_work ; t#u64 last_extts ; t#u64 thresh ; s#ptp_pin_desc extts_config ; t#u64 ( * convert_rx_ptp_tstmp ) ( t#u64 ) ; t#u64 ( * convert_tx_ptp_tstmp ) ( t#u64 ) ; } +s#otx2_ptp struct otx2_ptp { s#ptp_clock_info ptp_info ; s#ptp_clock * ptp_clock ; s#otx2_nic * nic ; s#cyclecounter cycle_counter ; s#timecounter time_counter ; s#delayed_work extts_work ; t#u64 last_extts ; t#u64 thresh ; s#ptp_pin_desc extts_config ; t#u64 ( * convert_rx_ptp_tstmp ) ( t#u64 ) ; t#u64 ( * convert_tx_ptp_tstmp ) ( t#u64 ) ; s#delayed_work synctstamp_work ; t#u64 tstamp ; t#u32 base_ns ; } s#otx2_devlink struct otx2_devlink { s#devlink * dl ; s#otx2_nic * pfvf ; } -s#otx2_nic struct otx2_nic { void * reg_base ; s#net_device * netdev ; s#dev_hw_ops * hw_ops ; void * iommu_domain ; t#u16 tx_max_pktlen ; t#u16 rbsize ; t#u64 flags ; t#u64 * cq_op_addr ; s#bpf_prog * xdp_prog ; s#otx2_qset qset ; s#otx2_hw hw ; s#pci_dev * pdev ; s#device * dev ; s#mbox mbox ; s#mbox * mbox_pfvf ; s#workqueue_struct * mbox_wq ; s#workqueue_struct * mbox_pfvf_wq ; t#u8 total_vfs ; t#u16 pcifunc ; t#u16 bpid [ 64 ] ; s#otx2_vf_config * vf_configs ; s#cgx_link_user_info linfo ; s#otx2_flow_config * flow_cfg ; s#otx2_mac_table * mac_table ; s#otx2_tc_info tc_info ; t#u64 reset_count ; s#work_struct reset_task ; s#workqueue_struct * flr_wq ; s#flr_work * flr_wrk ; s#refill_work * refill_wrk ; s#workqueue_struct * otx2_wq ; s#work_struct rx_mode_work ; t#u32 msg_enable ; int nix_blkaddr ; s#qmem * dync_lmt ; t#u16 tot_lmt_lines ; t#u16 npa_lmt_lines ; t#u32 nix_lmt_size ; s#otx2_ptp * ptp ; s#hwtstamp_config tstamp ; unsigned long rq_bmap ; s#otx2_devlink * dl ; t#u8 pfc_en ; t#u8 * queue_to_pfc_map ; t#u32 napi_events ; } +s#otx2_nic struct otx2_nic { void * reg_base ; s#net_device * netdev ; s#dev_hw_ops * hw_ops ; void * iommu_domain ; t#u16 tx_max_pktlen ; t#u16 rbsize ; t#u64 flags ; t#u64 * cq_op_addr ; s#bpf_prog * xdp_prog ; s#otx2_qset qset ; s#otx2_hw hw ; s#pci_dev * pdev ; s#device * dev ; s#mbox mbox ; s#mbox * mbox_pfvf ; s#workqueue_struct * mbox_wq ; s#workqueue_struct * mbox_pfvf_wq ; t#u8 total_vfs ; t#u16 pcifunc ; t#u16 bpid [ 64 ] ; s#otx2_vf_config * vf_configs ; s#cgx_link_user_info linfo ; s#otx2_flow_config * flow_cfg ; s#otx2_mac_table * mac_table ; s#otx2_tc_info tc_info ; t#u64 reset_count ; s#work_struct reset_task ; s#workqueue_struct * flr_wq ; s#flr_work * flr_wrk ; s#refill_work * refill_wrk ; s#workqueue_struct * otx2_wq ; s#work_struct rx_mode_work ; t#u32 msg_enable ; int nix_blkaddr ; s#qmem * dync_lmt ; t#u16 tot_lmt_lines ; t#u16 npa_lmt_lines ; t#u32 nix_lmt_size ; s#otx2_ptp * ptp ; s#hwtstamp_config tstamp ; unsigned long rq_bmap ; s#otx2_devlink * dl ; t#u8 pfc_en ; t#u8 * queue_to_pfc_map ; t#u16 pfc_schq_list [ E#NIX_TXSCH_LVL_CNT ] [ 128 ] ; t#bool pfc_alloc_status [ 8 ] ; t#u32 napi_events ; } cn10k_lmtst_init int cn10k_lmtst_init ( s#otx2_nic * ) /* drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.o */ @@ -151986,6 +151991,8 @@ s##ptp_clock otx2_config_pause_frm int otx2_config_pause_frm ( s#otx2_nic * ) otx2_tx_timeout void otx2_tx_timeout ( s#net_device * , unsigned int ) otx2_get_mac_from_af void otx2_get_mac_from_af ( s#net_device * ) +otx2_txschq_config int otx2_txschq_config ( s#otx2_nic * , int , int , t#bool ) +otx2_smq_flush int otx2_smq_flush ( s#otx2_nic * , int ) otx2_detach_resources int otx2_detach_resources ( s#mbox * ) otx2_attach_npa_nix int otx2_attach_npa_nix ( s#otx2_nic * ) otx2_nix_config_bp int otx2_nix_config_bp ( s#otx2_nic * , t#bool ) @@ -244635,7 +244642,9 @@ s##trace_event_call s##scsi_device_handler s##scsi_host_cmd_pool s##bsg_job +iscsi_conn_queue_xmit extern void iscsi_conn_queue_xmit ( s#iscsi_conn * ) iscsi_conn_queue_work extern void iscsi_conn_queue_work ( s#iscsi_conn * ) +iscsi_conn_queue_recv extern void iscsi_conn_queue_recv ( s#iscsi_conn * ) s#iscsi_nopin struct iscsi_nopin { t#uint8_t opcode ; t#uint8_t flags ; t#__be16 rsvd2 ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 statsn ; t#__be32 exp_cmdsn ; t#__be32 max_cmdsn ; t#uint8_t rsvd4 [ 12 ] ; } iscsi_update_cmdsn extern void iscsi_update_cmdsn ( s#iscsi_session * , s#iscsi_nopin * ) s#iscsi_data struct iscsi_data { t#uint8_t opcode ; t#uint8_t flags ; t#uint8_t rsvd2 [ 2 ] ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 rsvd4 ; t#__be32 exp_statsn ; t#__be32 rsvd5 ; t#__be32 datasn ; t#__be32 offset ; t#__be32 rsvd6 ; } @@ -244658,6 +244667,7 @@ iscsi_queuecommand extern int iscsi_queuecommand ( s#Scsi_Host * , s#scsi_cmnd * iscsi_target_alloc extern int iscsi_target_alloc ( s#scsi_target * ) iscsi_suspend_queue extern void iscsi_suspend_queue ( s#iscsi_conn * ) iscsi_suspend_tx extern void iscsi_suspend_tx ( s#iscsi_conn * ) +iscsi_suspend_rx extern void iscsi_suspend_rx ( s#iscsi_conn * ) iscsi_eh_cmd_timed_out extern e#blk_eh_timer_return iscsi_eh_cmd_timed_out ( s#scsi_cmnd * ) iscsi_conn_unbind extern void iscsi_conn_unbind ( s#iscsi_cls_conn * , t#bool ) iscsi_eh_abort extern int iscsi_eh_abort ( s#scsi_cmnd * ) @@ -256220,7 +256230,7 @@ amvdec_am21c_body_size t#u32 amvdec_am21c_body_size ( t#u32 , t#u32 ) amvdec_am21c_head_size t#u32 amvdec_am21c_head_size ( t#u32 , t#u32 ) amvdec_am21c_size t#u32 amvdec_am21c_size ( t#u32 , t#u32 ) amvdec_set_canvases int amvdec_set_canvases ( s#amvdec_session * , t#u32 [ ] , t#u32 [ ] ) -amvdec_add_ts void amvdec_add_ts ( s#amvdec_session * , t#u64 , s#v4l2_timecode , t#u32 , t#u32 ) +amvdec_add_ts int amvdec_add_ts ( s#amvdec_session * , t#u64 , s#v4l2_timecode , t#u32 , t#u32 ) amvdec_remove_ts void amvdec_remove_ts ( s#amvdec_session * , t#u64 ) amvdec_dst_buf_done void amvdec_dst_buf_done ( s#amvdec_session * , s#vb2_v4l2_buffer * , t#u32 ) amvdec_dst_buf_done_offset void amvdec_dst_buf_done_offset ( s#amvdec_session * , s#vb2_v4l2_buffer * , t#u32 , t#u32 , t#bool ) @@ -275632,6 +275642,7 @@ typec_get_orientation e#typec_orientation typec_get_orientation ( s#typec_port * typec_set_mode int typec_set_mode ( s#typec_port * , int ) typec_get_negotiated_svdm_version int typec_get_negotiated_svdm_version ( s#typec_port * ) typec_get_drvdata void * typec_get_drvdata ( s#typec_port * ) +typec_get_fw_cap int typec_get_fw_cap ( s#typec_capability * , s#fwnode_handle * ) typec_port_register_altmode s#typec_altmode * typec_port_register_altmode ( s#typec_port * , const s#typec_altmode_desc * ) typec_port_register_altmodes void typec_port_register_altmodes ( s#typec_port * , const s#typec_altmode_ops * , void * , s#typec_altmode * * , t#size_t ) typec_register_port s#typec_port * typec_register_port ( s#device * , const s#typec_capability * ) @@ -312943,6 +312954,7 @@ schedule_timeout_uninterruptible extern long schedule_timeout_uninterruptible ( schedule_timeout_idle extern long schedule_timeout_idle ( long ) msleep void msleep ( unsigned int ) msleep_interruptible unsigned long msleep_interruptible ( unsigned int ) +usleep_range_state void usleep_range_state ( unsigned long , unsigned long , unsigned int ) usleep_range void usleep_range ( unsigned long , unsigned long ) /* kernel/torture.o */ @@ -340528,6 +340540,9 @@ sk_set_memalloc void sk_set_memalloc ( s#sock * ) sk_clear_memalloc void sk_clear_memalloc ( s#sock * ) __sk_backlog_rcv int __sk_backlog_rcv ( s#sock * , s#sk_buff * ) sk_error_report void sk_error_report ( s#sock * ) +sock_get_timeout int sock_get_timeout ( long , void * , t#bool ) +s#__kernel_sock_timeval struct __kernel_sock_timeval { t#__s64 tv_sec ; t#__s64 tv_usec ; } +sock_copy_user_timeval int sock_copy_user_timeval ( s#__kernel_sock_timeval * , t#sockptr_t , int , t#bool ) __sock_queue_rcv_skb int __sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) sock_queue_rcv_skb int sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) __sk_receive_skb int __sk_receive_skb ( s#sock * , s#sk_buff * , const int , unsigned int , t#bool ) @@ -430931,6 +430946,7 @@ vcpu_load void vcpu_load ( s#kvm_vcpu * ) vcpu_put void vcpu_put ( s#kvm_vcpu * ) kvm_make_all_cpus_request t#bool kvm_make_all_cpus_request ( s#kvm * , unsigned int ) kvm_vcpu_destroy void kvm_vcpu_destroy ( s#kvm_vcpu * ) +kvm_destroy_vcpus void kvm_destroy_vcpus ( s#kvm * ) kvm_get_kvm void kvm_get_kvm ( s#kvm * ) kvm_put_kvm void kvm_put_kvm ( s#kvm * ) kvm_put_kvm_no_destroy void kvm_put_kvm_no_destroy ( s#kvm * ) diff --git a/kabi/arm64/symvers-64kb b/kabi/arm64/symvers-64kb index 169c482..352241d 100644 --- a/kabi/arm64/symvers-64kb +++ b/kabi/arm64/symvers-64kb @@ -1,4 +1,5 @@ 0x54b00499 ipv6_chk_custom_prefix vmlinux EXPORT_SYMBOL +0xedd17b31 sock_get_timeout vmlinux EXPORT_SYMBOL 0x20b98921 cros_ec_check_result vmlinux EXPORT_SYMBOL 0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL 0x893d1f97 __fsl_mc_driver_register vmlinux EXPORT_SYMBOL_GPL @@ -337,6 +338,7 @@ 0x280219ec tty_port_tty_set vmlinux EXPORT_SYMBOL 0xabdae885 tty_port_tty_get vmlinux EXPORT_SYMBOL 0xf1c6fa01 devm_regulator_get vmlinux EXPORT_SYMBOL_GPL +0xe62b52ec devm_clk_get_optional_enabled vmlinux EXPORT_SYMBOL_GPL 0x4f1cd128 security_tun_dev_create vmlinux EXPORT_SYMBOL 0x39606deb fs_context_for_mount vmlinux EXPORT_SYMBOL 0x38a9f7c5 in6addr_loopback vmlinux EXPORT_SYMBOL @@ -1290,6 +1292,7 @@ 0xef6f3514 pldmfw_flash_image vmlinux EXPORT_SYMBOL 0x769cefb5 percpu_ref_switch_to_atomic vmlinux EXPORT_SYMBOL_GPL 0xb701a890 __blkg_prfill_u64 vmlinux EXPORT_SYMBOL_GPL +0xa3c2bc3a bio_start_io_acct_time vmlinux EXPORT_SYMBOL_GPL 0xe48dc704 vmf_insert_pfn vmlinux EXPORT_SYMBOL 0x40235c98 _raw_write_unlock vmlinux EXPORT_SYMBOL 0x42bed8d4 unix_gc_lock vmlinux EXPORT_SYMBOL @@ -1989,6 +1992,7 @@ 0x6d467b08 arm_smccc_1_1_get_conduit vmlinux EXPORT_SYMBOL_GPL 0xb420afb2 __phy_write_mmd vmlinux EXPORT_SYMBOL 0x2a37ea11 imx_clk_hw_frac_pll vmlinux EXPORT_SYMBOL_GPL +0xdc29e59b devm_clk_get_enabled vmlinux EXPORT_SYMBOL_GPL 0x0d7b9386 dw_pcie_read_dbi vmlinux EXPORT_SYMBOL_GPL 0xfb6df170 mtk_eint_find_irq vmlinux EXPORT_SYMBOL_GPL 0x871906ce user_revoke vmlinux EXPORT_SYMBOL @@ -2089,6 +2093,7 @@ 0x11768c5f anon_transport_class_register vmlinux EXPORT_SYMBOL_GPL 0x20943628 devm_krealloc vmlinux EXPORT_SYMBOL_GPL 0xff38bed3 virtqueue_get_used_addr vmlinux EXPORT_SYMBOL_GPL +0x7c3f7863 devm_clk_get_optional_prepared vmlinux EXPORT_SYMBOL_GPL 0x0a8c06f0 devm_phy_create vmlinux EXPORT_SYMBOL_GPL 0xcbd4898c fortify_panic vmlinux EXPORT_SYMBOL 0x258d2f76 net_dim_get_tx_moderation vmlinux EXPORT_SYMBOL @@ -2731,6 +2736,7 @@ 0x3af48859 of_detach_node vmlinux EXPORT_SYMBOL_GPL 0xbb60618e ptp_convert_timestamp vmlinux EXPORT_SYMBOL 0x2701953f mtk_mutex_add_comp vmlinux EXPORT_SYMBOL_GPL +0xb2649e4b devm_clk_get_prepared vmlinux EXPORT_SYMBOL_GPL 0x843b73b1 setup_fault_attr vmlinux EXPORT_SYMBOL_GPL 0xc16be39d iter_div_u64_rem vmlinux EXPORT_SYMBOL 0x5ec4aee6 put_sg_io_hdr vmlinux EXPORT_SYMBOL @@ -3685,6 +3691,7 @@ 0x3da3f805 bpf_trace_run3 vmlinux EXPORT_SYMBOL_GPL 0xd442ab41 bpf_trace_run2 vmlinux EXPORT_SYMBOL_GPL 0x16ad4449 bpf_trace_run1 vmlinux EXPORT_SYMBOL_GPL +0xf145c0be kvm_destroy_vcpus vmlinux EXPORT_SYMBOL_GPL 0xf59c2815 dcb_ieee_delapp vmlinux EXPORT_SYMBOL 0x2d39532d dcb_ieee_setapp vmlinux EXPORT_SYMBOL 0xf53d4c26 qdisc_class_hash_destroy vmlinux EXPORT_SYMBOL @@ -4852,6 +4859,7 @@ 0x1a54fb0e vfs_llseek vmlinux EXPORT_SYMBOL 0x43e62bcf __page_file_index vmlinux EXPORT_SYMBOL_GPL 0x5a283572 __irq_set_handler vmlinux EXPORT_SYMBOL_GPL +0x5bdb7603 sock_copy_user_timeval vmlinux EXPORT_SYMBOL 0x22080807 of_platform_depopulate vmlinux EXPORT_SYMBOL_GPL 0xc4707d83 devm_regulator_get_optional vmlinux EXPORT_SYMBOL_GPL 0x348cd013 dpbp_get_attributes vmlinux EXPORT_SYMBOL_GPL @@ -7673,6 +7681,7 @@ 0xcfa7e913 posix_acl_valid vmlinux EXPORT_SYMBOL 0xe2325bce invalidate_inode_buffers vmlinux EXPORT_SYMBOL 0xb608d4b8 PageMovable vmlinux EXPORT_SYMBOL +0xc3055d20 usleep_range_state vmlinux EXPORT_SYMBOL 0xa2954422 cpu_hwcaps vmlinux EXPORT_SYMBOL 0x1d77b0f8 unix_socket_table vmlinux EXPORT_SYMBOL_GPL 0x86eaf4e8 nl_table vmlinux EXPORT_SYMBOL_GPL @@ -11084,7 +11093,7 @@ 0x853df1e8 ath10k_htt_rx_pktlog_completion_handler drivers/net/wireless/ath/ath10k/ath10k_core EXPORT_SYMBOL 0x96c71ce5 mlxsw_core_driver_register drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0xce34f352 mlx5_set_port_prio_tc drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL -0xc3bc173a otx2_ptp_init drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0xd155e230 otx2_ptp_init drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x6004858d LZ4_compress_fast lib/lz4/lz4_compress EXPORT_SYMBOL 0x242a121a nfc_llc_start net/nfc/hci/hci EXPORT_SYMBOL 0x0c1e4d83 nfc_target_lost net/nfc/nfc EXPORT_SYMBOL @@ -11306,7 +11315,7 @@ 0xa6337636 team_modeop_port_change_dev_addr drivers/net/team/team EXPORT_SYMBOL 0x5782bab8 hostap_check_sta_fw_version drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL 0x2c40719c mlx5_core_query_vendor_id drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL -0xf462f7eb otx2_detach_resources drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x26b4b91d otx2_detach_resources drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x91f6153e drm_atomic_bridge_chain_pre_enable drivers/gpu/drm/drm EXPORT_SYMBOL 0x92ea7e02 drm_dp_mst_topology_mgr_set_mst drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0x66292cdf xt_proto_fini net/netfilter/x_tables EXPORT_SYMBOL_GPL @@ -13565,7 +13574,7 @@ 0x63e28cf6 cx231xx_send_gpio_cmd drivers/media/usb/cx231xx/cx231xx EXPORT_SYMBOL_GPL 0xfd347ff1 usb_for_each_port drivers/usb/core/usbcore EXPORT_SYMBOL_GPL 0x2b1eb03a mlx4_hw_rule_sz drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0x6027aeaf otx2_alloc_mcam_entries drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x5e72272a otx2_alloc_mcam_entries drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xc4479e2b iscsi_flashnode_bus_match drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL 0x56ad21c7 drm_crtc_handle_vblank drivers/gpu/drm/drm EXPORT_SYMBOL 0xc8e8f3b9 drm_framebuffer_lookup drivers/gpu/drm/drm EXPORT_SYMBOL @@ -14703,7 +14712,7 @@ 0x17ec6eb1 dib9000_fw_set_component_bus_speed drivers/media/dvb-frontends/dib9000 EXPORT_SYMBOL 0x831c6e8d __typec_altmode_register_driver drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0x764dde27 tun_get_tx_ring drivers/net/tun EXPORT_SYMBOL_GPL -0x59df9f6a otx2_ptp_destroy drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x80f9af11 otx2_ptp_destroy drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0xb6323fb6 otx2_mbox_regions_init drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox EXPORT_SYMBOL 0xcde2fbb1 t3_l2t_send_event drivers/net/ethernet/chelsio/cxgb3/cxgb3 EXPORT_SYMBOL 0x6c5fc93e fc_exch_mgr_reset drivers/scsi/libfc/libfc EXPORT_SYMBOL @@ -14890,7 +14899,7 @@ 0xf102033e slhc_remember drivers/net/slip/slhc EXPORT_SYMBOL 0x09521daf mlxsw_core_ptp_transmitted drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x08a18647 mlx5_rdma_rn_get_params drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL -0x805a1a98 otx2vf_mcam_flow_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x3612b5ea otx2vf_mcam_flow_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xe6976a26 scsi_target_block drivers/scsi/scsi_mod EXPORT_SYMBOL_GPL 0x0c6ad2cf tps65010_config_vdcdc2 drivers/mfd/tps65010 EXPORT_SYMBOL 0x0ef44aef drm_property_replace_global_blob drivers/gpu/drm/drm EXPORT_SYMBOL @@ -15000,7 +15009,7 @@ 0x78b72f44 usbip_debug_flag drivers/usb/usbip/usbip-core EXPORT_SYMBOL_GPL 0x5afa3533 usbnet_write_cmd_async drivers/net/usb/usbnet EXPORT_SYMBOL_GPL 0x6f003253 qtnf_get_debugfs_dir drivers/net/wireless/quantenna/qtnfmac/qtnfmac EXPORT_SYMBOL_GPL -0x60b27261 otx2_ptp_tstamp2time drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x3b2e3e78 otx2_ptp_tstamp2time drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0xfae25ef4 nvme_start_queues drivers/nvme/host/nvme-core EXPORT_SYMBOL_GPL 0x49ce6426 iscsi_tcp_conn_setup drivers/scsi/libiscsi_tcp EXPORT_SYMBOL_GPL 0xa730c885 drm_scdc_set_scrambling drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -15071,7 +15080,7 @@ 0x6a3d24e4 dst_pio_disable drivers/media/pci/bt8xx/dst EXPORT_SYMBOL 0x13abdd5a hostap_dump_tx_header drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL 0x7fb75891 hostap_dump_rx_header drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL -0x3c1ea8af mbox_handler_npa_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x471a2297 mbox_handler_npa_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x31bbf655 drm_warn_on_modeset_not_all_locked drivers/gpu/drm/drm EXPORT_SYMBOL 0xe7acff0a tegra_phy_xusb_utmi_port_reset drivers/phy/tegra/phy-tegra-xusb EXPORT_SYMBOL_GPL 0xcf6d1faa crypto_sm4_set_key crypto/sm4_generic EXPORT_SYMBOL_GPL @@ -15316,6 +15325,7 @@ 0xcb309c3c codec_hevc_setup_decode_head drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL 0xd0ff4cd3 dibx000_exit_i2c_master drivers/media/dvb-frontends/dibx000_common EXPORT_SYMBOL 0xa9800c3e dibx000_init_i2c_master drivers/media/dvb-frontends/dibx000_common EXPORT_SYMBOL +0x4c8e2d33 otx2_txschq_config drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xf65a4734 be_roce_unregister_driver drivers/net/ethernet/emulex/benet/be2net EXPORT_SYMBOL 0x46c0e9e1 lm3533_update drivers/mfd/lm3533-core EXPORT_SYMBOL_GPL 0xb534ec76 llcc_slice_deactivate drivers/soc/qcom/llcc-qcom EXPORT_SYMBOL_GPL @@ -15866,6 +15876,7 @@ 0x4a82b99b ocelot_port_vlan_filtering drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL 0x4a6ed376 mlxsw_core_port_fini drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0xf9d774f7 mlx4_set_vf_vlan drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL +0xe8ecbe2d iscsi_suspend_rx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x4806476a iscsi_suspend_tx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x5e95a4b2 o2net_send_message_vec fs/ocfs2/cluster/ocfs2_nodemanager EXPORT_SYMBOL_GPL 0x9c96d437 fuse_conn_get fs/fuse/fuse EXPORT_SYMBOL_GPL @@ -16276,7 +16287,7 @@ 0x93b254fa mt76x02_tx_set_txpwr_auto drivers/net/wireless/mediatek/mt76/mt76x02-lib EXPORT_SYMBOL_GPL 0xced00963 mwifiex_del_virtual_intf drivers/net/wireless/marvell/mwifiex/mwifiex EXPORT_SYMBOL_GPL 0x29499771 mwifiex_main_process drivers/net/wireless/marvell/mwifiex/mwifiex EXPORT_SYMBOL_GPL -0x4c82d72c otx2_tc_alloc_ent_bitmap drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xf1bddb1b otx2_tc_alloc_ent_bitmap drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xbf0e2bd4 sas_suspend_ha drivers/scsi/libsas/libsas EXPORT_SYMBOL 0x0e6c4708 drm_gem_vram_offset drivers/gpu/drm/drm_vram_helper EXPORT_SYMBOL 0x40739385 nfs_wait_bit_killable fs/nfs/nfs EXPORT_SYMBOL_GPL @@ -16653,7 +16664,7 @@ 0x108b188f ath_is_49ghz_allowed drivers/net/wireless/ath/ath EXPORT_SYMBOL 0xb5e762fa mlxsw_afk_values_add_buf drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x47041e4e mlxsw_afk_key_info_blocks_count_get drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x32da7601 mbox_handler_nix_bp_enable drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xcbe88c6f mbox_handler_nix_bp_enable drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xae4168c9 ceph_copy_from_page_vector net/ceph/libceph EXPORT_SYMBOL 0x1b8609a5 lowpan_nhc_add net/6lowpan/6lowpan EXPORT_SYMBOL 0xa0eb08ac flow_offload_alloc net/netfilter/nf_flow_table EXPORT_SYMBOL_GPL @@ -17076,7 +17087,7 @@ 0x8295274f ath_hw_get_listen_time drivers/net/wireless/ath/ath EXPORT_SYMBOL 0x25f2e43a ath10k_core_unregister drivers/net/wireless/ath/ath10k/ath10k_core EXPORT_SYMBOL 0x18b0ad00 mlxsw_afa_block_append_police drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x9cee0d89 otx2_nix_config_bp drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x06ef3147 otx2_nix_config_bp drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xebfae55c hisi_sas_get_ata_protocol drivers/scsi/hisi_sas/hisi_sas_main EXPORT_SYMBOL_GPL 0x7c4f0d9d ufshcd_link_recovery drivers/scsi/ufs/ufshcd-core EXPORT_SYMBOL_GPL 0x5ea96833 iscsi_session_teardown drivers/scsi/libiscsi EXPORT_SYMBOL_GPL @@ -17383,6 +17394,7 @@ 0xd569376d iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi EXPORT_SYMBOL_GPL IWLWIFI 0xe7ff2ba5 il_write_targ_mem drivers/net/wireless/intel/iwlegacy/iwlegacy EXPORT_SYMBOL 0x3b73e229 __ocelot_write_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL +0xb5d7d70f iscsi_conn_queue_xmit drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x13a03e3b ieee80211_txq_schedule_start net/mac80211/mac80211 EXPORT_SYMBOL 0x0bc00f80 nf_nat_helper_try_module_get net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL 0xeba8d9c3 qcom_add_sysmon_subdev drivers/remoteproc/qcom_sysmon EXPORT_SYMBOL_GPL @@ -17887,7 +17899,7 @@ 0xaf7e9eb7 lnbh24_attach drivers/media/dvb-frontends/lnbp21 EXPORT_SYMBOL 0xd5f098c0 rt2800_txdone_entry drivers/net/wireless/ralink/rt2x00/rt2800lib EXPORT_SYMBOL_GPL 0x2c4ffea0 mlx5_accel_esp_modify_xfrm drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL -0xa3625275 otx2_sq_append_skb drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x00c384fd otx2_sq_append_skb drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x385d79d9 fc_attach_transport drivers/scsi/scsi_transport_fc EXPORT_SYMBOL 0x44e2d313 cb710_sg_dwiter_write_next_block drivers/misc/cb710/cb710 EXPORT_SYMBOL_GPL 0xe05d4deb __host1x_client_init drivers/gpu/host1x/host1x EXPORT_SYMBOL @@ -17918,7 +17930,7 @@ 0x48120de2 usb_bus_start_enum drivers/usb/core/usbcore EXPORT_SYMBOL_GPL 0xa39cf419 _rtl_dbg_print drivers/net/wireless/realtek/rtlwifi/rtlwifi EXPORT_SYMBOL_GPL 0x3170e801 orinoco_process_xmit_skb drivers/net/wireless/intersil/orinoco/orinoco EXPORT_SYMBOL -0xbf60d8b7 cn10k_lmtst_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x4e02cef5 cn10k_lmtst_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xe2e3d0d3 rtsx_pci_read_phy_register drivers/misc/cardreader/rtsx_pci EXPORT_SYMBOL_GPL 0xbb2aeb07 drm_fb_helper_check_var drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0x6f52f0a8 jbd2_journal_clear_features fs/jbd2/jbd2 EXPORT_SYMBOL @@ -18324,7 +18336,7 @@ 0x3c6dbc21 rt2800_clear_beacon drivers/net/wireless/ralink/rt2x00/rt2800lib EXPORT_SYMBOL_GPL 0xa0cc85d9 __ocelot_read_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL 0x62b10c57 mlx4_multicast_promisc_remove drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0x3a306c48 mbox_handler_nix_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x95b60432 mbox_handler_nix_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x959b7579 spi_schedule_dv_device drivers/scsi/scsi_transport_spi EXPORT_SYMBOL 0x5b3eb67a drm_atomic_helper_suspend drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xe41f08e0 drm_dp_mst_atomic_enable_dsc drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -18589,7 +18601,7 @@ 0x9f925b20 mt76_get_rate_power_limits drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0xf625e472 ath9k_hw_btcoex_init_scheme drivers/net/wireless/ath/ath9k/ath9k_hw EXPORT_SYMBOL 0x21af80ca mlx4_INIT_PORT drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0x8cd549ec mbox_handler_nix_txsch_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xffcb782f mbox_handler_nix_txsch_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xd37e336d fcoe_transport_attach drivers/scsi/fcoe/libfcoe EXPORT_SYMBOL 0x07ae651f st21nfca_hci_probe drivers/nfc/st21nfca/st21nfca_hci EXPORT_SYMBOL 0x69a866d2 pn53x_common_init drivers/nfc/pn533/pn533 EXPORT_SYMBOL_GPL @@ -18614,6 +18626,7 @@ 0xfeec8506 __traceiter_bcache_btree_set_root drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x9f3c8921 rt2800mmio_txstatus_tasklet drivers/net/wireless/ralink/rt2x00/rt2800mmio EXPORT_SYMBOL_GPL 0xe23aa988 mlxsw_core_resources_query drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL +0x8687af60 otx2_smq_flush drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x6ed3d186 ufshcd_config_pwr_mode drivers/scsi/ufs/ufshcd-core EXPORT_SYMBOL_GPL 0x918b5b92 iscsi_session_recovery_timedout drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0xd7ecb789 drm_atomic_set_mode_for_crtc drivers/gpu/drm/drm EXPORT_SYMBOL @@ -19496,7 +19509,7 @@ 0x8aab0932 i3c_device_get_info drivers/i3c/i3c EXPORT_SYMBOL_GPL 0x3b84657b tcpm_pd_transmit_complete drivers/usb/typec/tcpm/tcpm EXPORT_SYMBOL_GPL 0x58f274ef register_hdlc_protocol drivers/net/wan/hdlc EXPORT_SYMBOL -0x2d78ed2d otx2_config_pause_frm drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xb3670337 otx2_config_pause_frm drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x29812ba4 cxgb4_remove_server_filter drivers/net/ethernet/chelsio/cxgb4/cxgb4 EXPORT_SYMBOL 0xabe79d27 host1x_job_unpin drivers/gpu/host1x/host1x EXPORT_SYMBOL 0x2e519a4f nf_ct_extend_register net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL @@ -20345,7 +20358,7 @@ 0xdd4f2439 imx_icc_unregister drivers/interconnect/imx/imx-interconnect EXPORT_SYMBOL_GPL 0x1efd1202 v4l2_m2m_update_start_streaming_state drivers/media/v4l2-core/v4l2-mem2mem EXPORT_SYMBOL_GPL 0x5a6dfee1 cx25821_set_gpiopin_direction drivers/media/pci/cx25821/cx25821 EXPORT_SYMBOL -0x27cd6c48 otx2_init_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xe7cde9ea otx2_init_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x07850bea atc260x_device_probe drivers/mfd/atc260x-core EXPORT_SYMBOL_GPL 0x7bdca7ab drm_gem_create_mmap_offset drivers/gpu/drm/drm EXPORT_SYMBOL 0xbf909674 drm_helper_force_disable_all drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -21026,7 +21039,7 @@ 0x8db16c6c ehci_setup drivers/usb/host/ehci-hcd EXPORT_SYMBOL_GPL 0xb294aa50 mt76_wake_tx_queue drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0x7b15cbcc ocelot_adjust_link drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL -0xc4e7a267 mbox_handler_msix_offset drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x72ffc33e mbox_handler_msix_offset drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xb7cfad1f fc_find_rport_by_wwpn drivers/scsi/scsi_transport_fc EXPORT_SYMBOL 0xa79caf44 rbd_img_request_destroy drivers/block/rbd EXPORT_SYMBOL 0x21e76a68 dpaa2_io_get_adaptive_coalescing drivers/soc/fsl/dpio/fsl-mc-dpio EXPORT_SYMBOL @@ -21742,7 +21755,7 @@ 0x987fa6f4 dvb_net_init drivers/media/dvb-core/dvb-core EXPORT_SYMBOL 0xaa09d2d3 ir_raw_event_store_with_timeout drivers/media/rc/rc-core EXPORT_SYMBOL_GPL 0x68a49720 rc_free_device drivers/media/rc/rc-core EXPORT_SYMBOL_GPL -0x88e175cf otx2_attach_npa_nix drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x714eb4a4 otx2_attach_npa_nix drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xb3a792c6 hnae_ae_register drivers/net/ethernet/hisilicon/hns/hnae EXPORT_SYMBOL 0x1f26505a sas_port_delete drivers/scsi/scsi_transport_sas EXPORT_SYMBOL 0xab5bee2f meson_venc_hdmi_supported_vic drivers/gpu/drm/meson/meson-drm EXPORT_SYMBOL_GPL @@ -22229,6 +22242,7 @@ 0x8b8057e8 rndis_tx_fixup drivers/net/usb/rndis_host EXPORT_SYMBOL_GPL 0x3e17f466 mdio_set_flag drivers/net/mdio EXPORT_SYMBOL 0x6b51ca30 iscsi_boot_create_acpitbl drivers/scsi/iscsi_boot_sysfs EXPORT_SYMBOL_GPL +0x5005c9f1 iscsi_conn_queue_recv drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0xcb3413f1 drm_gem_shmem_dumb_create drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0x2537b80a drm_read drivers/gpu/drm/drm EXPORT_SYMBOL 0x1446b60a caif_client_register_refcnt net/caif/caif EXPORT_SYMBOL @@ -23129,7 +23143,7 @@ 0x1e4df736 mtd_device_unregister drivers/mtd/mtd EXPORT_SYMBOL_GPL 0xaacb7551 __rio_local_read_config_32 drivers/rapidio/rapidio EXPORT_SYMBOL_GPL 0x6192e1a2 vchiq_mmal_version drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq EXPORT_SYMBOL_GPL -0xc9612ad0 amvdec_add_ts drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL +0xa9330902 amvdec_add_ts drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL 0x86bcdec7 cnstr_shdsc_xts_skcipher_decap drivers/crypto/caam/caamalg_desc EXPORT_SYMBOL 0xee55d047 __tracepoint_bcache_journal_write drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x9464fa71 typec_switch_get_drvdata drivers/usb/typec/typec EXPORT_SYMBOL_GPL @@ -24026,6 +24040,7 @@ 0xfe80f6b8 v4l2_fh_init drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL 0x7b6e288e hfi_session_set_property drivers/media/platform/qcom/venus/venus-core EXPORT_SYMBOL_GPL 0xca9d2dcd hfi_session_get_property drivers/media/platform/qcom/venus/venus-core EXPORT_SYMBOL_GPL +0xc48ce205 typec_get_fw_cap drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0x276beac6 mlx4_mw_alloc drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0xb382755f mlx4_config_dev_retrieval drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0x0b93b229 dw_dma_acpi_controller_register drivers/dma/dw/dw_dmac_core EXPORT_SYMBOL_GPL @@ -24331,8 +24346,8 @@ 0xcfe479af b53_set_mac_eee drivers/net/dsa/b53/b53_common EXPORT_SYMBOL 0x021b6d9b b53_get_mac_eee drivers/net/dsa/b53/b53_common EXPORT_SYMBOL 0x853e0e07 read_efuse_byte drivers/net/wireless/realtek/rtlwifi/rtlwifi EXPORT_SYMBOL_GPL -0xf7aaf314 otx2_shutdown_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL -0x20b30cd0 otx2_get_max_mtu drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x0e1ae4fa otx2_shutdown_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x87cb1f26 otx2_get_max_mtu drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x6dd5f134 vnic_dev_register drivers/net/ethernet/cisco/enic/enic EXPORT_SYMBOL 0x9fa9c6f8 iscsi_host_for_each_session drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL 0xa8856c29 iscsi_create_flashnode_sess drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL @@ -24737,7 +24752,7 @@ 0xe8a46735 nvec_msg_free drivers/staging/nvec/nvec EXPORT_SYMBOL_GPL 0xb912ae0b __tracepoint_bcache_journal_replay_key drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x7f659d4c mlxsw_afa_block_append_vlan_modify drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x199d9c87 otx2_ptp_clock_index drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x2a9f386c otx2_ptp_clock_index drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x4843e793 drm_gem_duplicate_shadow_plane_state drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xc5c99a79 drm_dp_get_adjust_request_voltage drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xdb008703 dpaa2_io_service_enqueue_multiple_fq drivers/soc/fsl/dpio/fsl-mc-dpio EXPORT_SYMBOL @@ -24908,7 +24923,7 @@ 0x20d6e3d7 ath11k_hal_srng_init drivers/net/wireless/ath/ath11k/ath11k EXPORT_SYMBOL 0xc3d1fc45 mlx5_core_query_ib_ppcnt drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL 0xc5069ba1 mlx4_mr_hw_write_mpt drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0x0e8e5eda otx2_mbox_up_handler_cgx_link_event drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x777b0d54 otx2_mbox_up_handler_cgx_link_event drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xec973797 nvme_get_features drivers/nvme/host/nvme-core EXPORT_SYMBOL_GPL 0x3ed1633e drm_bridge_hpd_enable drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0x2aa8c478 dpdmai_get_rx_queue drivers/dma/fsl-dpaa2-qdma/dpdmai EXPORT_SYMBOL_GPL @@ -25485,7 +25500,7 @@ 0xfbd90d63 nand_ecc_init_ctx drivers/mtd/nand/nandcore EXPORT_SYMBOL 0x5d73a3fd vchiq_mmal_component_enable drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq EXPORT_SYMBOL_GPL 0xd237b9fb dm_array_walk drivers/md/persistent-data/dm-persistent-data EXPORT_SYMBOL_GPL -0x430636b6 otx2_mcam_flow_del drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x79016561 otx2_mcam_flow_del drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xb68b1300 llcc_slice_putd drivers/soc/qcom/llcc-qcom EXPORT_SYMBOL_GPL 0x4f4d78c5 LZ4_compress_default lib/lz4/lz4_compress EXPORT_SYMBOL 0xf5a2aaf3 nci_core_reset net/nfc/nci/nci EXPORT_SYMBOL diff --git a/kabi/arm64/symvers-default b/kabi/arm64/symvers-default index 3437d53..31542a7 100644 --- a/kabi/arm64/symvers-default +++ b/kabi/arm64/symvers-default @@ -1,4 +1,5 @@ 0x094aec73 ipv6_chk_custom_prefix vmlinux EXPORT_SYMBOL +0xedd17b31 sock_get_timeout vmlinux EXPORT_SYMBOL 0x20b98921 cros_ec_check_result vmlinux EXPORT_SYMBOL 0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL 0x85696c45 __fsl_mc_driver_register vmlinux EXPORT_SYMBOL_GPL @@ -337,6 +338,7 @@ 0x280219ec tty_port_tty_set vmlinux EXPORT_SYMBOL 0xabdae885 tty_port_tty_get vmlinux EXPORT_SYMBOL 0x058e7c1c devm_regulator_get vmlinux EXPORT_SYMBOL_GPL +0xe62b52ec devm_clk_get_optional_enabled vmlinux EXPORT_SYMBOL_GPL 0x4f1cd128 security_tun_dev_create vmlinux EXPORT_SYMBOL 0x2b9df4eb fs_context_for_mount vmlinux EXPORT_SYMBOL 0x38a9f7c5 in6addr_loopback vmlinux EXPORT_SYMBOL @@ -1291,6 +1293,7 @@ 0x37f0c8b0 pldmfw_flash_image vmlinux EXPORT_SYMBOL 0x769cefb5 percpu_ref_switch_to_atomic vmlinux EXPORT_SYMBOL_GPL 0x731622cb __blkg_prfill_u64 vmlinux EXPORT_SYMBOL_GPL +0x18774f2a bio_start_io_acct_time vmlinux EXPORT_SYMBOL_GPL 0x5b0659cb vmf_insert_pfn vmlinux EXPORT_SYMBOL 0x40235c98 _raw_write_unlock vmlinux EXPORT_SYMBOL 0x42bed8d4 unix_gc_lock vmlinux EXPORT_SYMBOL @@ -1990,6 +1993,7 @@ 0x6d467b08 arm_smccc_1_1_get_conduit vmlinux EXPORT_SYMBOL_GPL 0x8d7e8d76 __phy_write_mmd vmlinux EXPORT_SYMBOL 0x2a37ea11 imx_clk_hw_frac_pll vmlinux EXPORT_SYMBOL_GPL +0xdc29e59b devm_clk_get_enabled vmlinux EXPORT_SYMBOL_GPL 0xe2cea632 dw_pcie_read_dbi vmlinux EXPORT_SYMBOL_GPL 0xfb6df170 mtk_eint_find_irq vmlinux EXPORT_SYMBOL_GPL 0xc8b45fd1 user_revoke vmlinux EXPORT_SYMBOL @@ -2090,6 +2094,7 @@ 0x11768c5f anon_transport_class_register vmlinux EXPORT_SYMBOL_GPL 0x20943628 devm_krealloc vmlinux EXPORT_SYMBOL_GPL 0x69aa755f virtqueue_get_used_addr vmlinux EXPORT_SYMBOL_GPL +0x7c3f7863 devm_clk_get_optional_prepared vmlinux EXPORT_SYMBOL_GPL 0xcc340c19 devm_phy_create vmlinux EXPORT_SYMBOL_GPL 0xcbd4898c fortify_panic vmlinux EXPORT_SYMBOL 0x258d2f76 net_dim_get_tx_moderation vmlinux EXPORT_SYMBOL @@ -2732,6 +2737,7 @@ 0x3af48859 of_detach_node vmlinux EXPORT_SYMBOL_GPL 0xbb60618e ptp_convert_timestamp vmlinux EXPORT_SYMBOL 0x2701953f mtk_mutex_add_comp vmlinux EXPORT_SYMBOL_GPL +0xb2649e4b devm_clk_get_prepared vmlinux EXPORT_SYMBOL_GPL 0x843b73b1 setup_fault_attr vmlinux EXPORT_SYMBOL_GPL 0xc16be39d iter_div_u64_rem vmlinux EXPORT_SYMBOL 0x5ec4aee6 put_sg_io_hdr vmlinux EXPORT_SYMBOL @@ -3686,6 +3692,7 @@ 0x47a484f8 bpf_trace_run3 vmlinux EXPORT_SYMBOL_GPL 0x73acb9b2 bpf_trace_run2 vmlinux EXPORT_SYMBOL_GPL 0x037b603f bpf_trace_run1 vmlinux EXPORT_SYMBOL_GPL +0xbc96c841 kvm_destroy_vcpus vmlinux EXPORT_SYMBOL_GPL 0x272fa597 dcb_ieee_delapp vmlinux EXPORT_SYMBOL 0xa6248fad dcb_ieee_setapp vmlinux EXPORT_SYMBOL 0xf53d4c26 qdisc_class_hash_destroy vmlinux EXPORT_SYMBOL @@ -4854,6 +4861,7 @@ 0xb758c349 vfs_llseek vmlinux EXPORT_SYMBOL 0xb7b6c299 __page_file_index vmlinux EXPORT_SYMBOL_GPL 0x5a283572 __irq_set_handler vmlinux EXPORT_SYMBOL_GPL +0x5bdb7603 sock_copy_user_timeval vmlinux EXPORT_SYMBOL 0x9c755443 of_platform_depopulate vmlinux EXPORT_SYMBOL_GPL 0xf54c34e9 devm_regulator_get_optional vmlinux EXPORT_SYMBOL_GPL 0x348cd013 dpbp_get_attributes vmlinux EXPORT_SYMBOL_GPL @@ -7676,6 +7684,7 @@ 0xcfa7e913 posix_acl_valid vmlinux EXPORT_SYMBOL 0xcb24ae71 invalidate_inode_buffers vmlinux EXPORT_SYMBOL 0x8d212042 PageMovable vmlinux EXPORT_SYMBOL +0xc3055d20 usleep_range_state vmlinux EXPORT_SYMBOL 0xa2954422 cpu_hwcaps vmlinux EXPORT_SYMBOL 0x1d77b0f8 unix_socket_table vmlinux EXPORT_SYMBOL_GPL 0xeaef7817 nl_table vmlinux EXPORT_SYMBOL_GPL @@ -11088,7 +11097,7 @@ 0x3067e575 ath10k_htt_rx_pktlog_completion_handler drivers/net/wireless/ath/ath10k/ath10k_core EXPORT_SYMBOL 0x99090a22 mlxsw_core_driver_register drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x004369f2 mlx5_set_port_prio_tc drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL -0x394a5ad6 otx2_ptp_init drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x5a633719 otx2_ptp_init drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x6004858d LZ4_compress_fast lib/lz4/lz4_compress EXPORT_SYMBOL 0xfde33a6c nfc_llc_start net/nfc/hci/hci EXPORT_SYMBOL 0x02aa1802 nfc_target_lost net/nfc/nfc EXPORT_SYMBOL @@ -11310,7 +11319,7 @@ 0x52e240d3 team_modeop_port_change_dev_addr drivers/net/team/team EXPORT_SYMBOL 0x19846d4a hostap_check_sta_fw_version drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL 0x2aa0c7b7 mlx5_core_query_vendor_id drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL -0xefa05598 otx2_detach_resources drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xfe831260 otx2_detach_resources drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xc5746834 drm_atomic_bridge_chain_pre_enable drivers/gpu/drm/drm EXPORT_SYMBOL 0xdfe5c0f5 drm_dp_mst_topology_mgr_set_mst drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0x4c2a5434 xt_proto_fini net/netfilter/x_tables EXPORT_SYMBOL_GPL @@ -13569,7 +13578,7 @@ 0x36b8720a cx231xx_send_gpio_cmd drivers/media/usb/cx231xx/cx231xx EXPORT_SYMBOL_GPL 0xe263d1eb usb_for_each_port drivers/usb/core/usbcore EXPORT_SYMBOL_GPL 0xda718be8 mlx4_hw_rule_sz drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0xc5172bc0 otx2_alloc_mcam_entries drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x79ceca6d otx2_alloc_mcam_entries drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xe13b3a69 iscsi_flashnode_bus_match drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL 0xe39a2ce9 drm_crtc_handle_vblank drivers/gpu/drm/drm EXPORT_SYMBOL 0x26823836 drm_framebuffer_lookup drivers/gpu/drm/drm EXPORT_SYMBOL @@ -14707,7 +14716,7 @@ 0x28d3c9f2 dib9000_fw_set_component_bus_speed drivers/media/dvb-frontends/dib9000 EXPORT_SYMBOL 0x831c6e8d __typec_altmode_register_driver drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0x6dcb8426 tun_get_tx_ring drivers/net/tun EXPORT_SYMBOL_GPL -0xd01c9f54 otx2_ptp_destroy drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x96d88ef7 otx2_ptp_destroy drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x6ad34ec8 otx2_mbox_regions_init drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox EXPORT_SYMBOL 0x96c72be3 t3_l2t_send_event drivers/net/ethernet/chelsio/cxgb3/cxgb3 EXPORT_SYMBOL 0xb617222d fc_exch_mgr_reset drivers/scsi/libfc/libfc EXPORT_SYMBOL @@ -14894,7 +14903,7 @@ 0xf102033e slhc_remember drivers/net/slip/slhc EXPORT_SYMBOL 0xcaab43d6 mlxsw_core_ptp_transmitted drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0xf161489c mlx5_rdma_rn_get_params drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL -0xf4c5a63c otx2vf_mcam_flow_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xda38b81b otx2vf_mcam_flow_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x77db9232 scsi_target_block drivers/scsi/scsi_mod EXPORT_SYMBOL_GPL 0x0c6ad2cf tps65010_config_vdcdc2 drivers/mfd/tps65010 EXPORT_SYMBOL 0x3780ddc8 drm_property_replace_global_blob drivers/gpu/drm/drm EXPORT_SYMBOL @@ -15004,7 +15013,7 @@ 0x78b72f44 usbip_debug_flag drivers/usb/usbip/usbip-core EXPORT_SYMBOL_GPL 0x52b048c4 usbnet_write_cmd_async drivers/net/usb/usbnet EXPORT_SYMBOL_GPL 0xaab08418 qtnf_get_debugfs_dir drivers/net/wireless/quantenna/qtnfmac/qtnfmac EXPORT_SYMBOL_GPL -0xe554e58b otx2_ptp_tstamp2time drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x310c8757 otx2_ptp_tstamp2time drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x37f78cae nvme_start_queues drivers/nvme/host/nvme-core EXPORT_SYMBOL_GPL 0xb3dbe265 iscsi_tcp_conn_setup drivers/scsi/libiscsi_tcp EXPORT_SYMBOL_GPL 0x33e29046 drm_scdc_set_scrambling drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -15075,7 +15084,7 @@ 0xca151b29 dst_pio_disable drivers/media/pci/bt8xx/dst EXPORT_SYMBOL 0x13abdd5a hostap_dump_tx_header drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL 0x7fb75891 hostap_dump_rx_header drivers/net/wireless/intersil/hostap/hostap EXPORT_SYMBOL -0xdd0ece17 mbox_handler_npa_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xdfced431 mbox_handler_npa_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x8ce4ddff drm_warn_on_modeset_not_all_locked drivers/gpu/drm/drm EXPORT_SYMBOL 0x27099ef2 tegra_phy_xusb_utmi_port_reset drivers/phy/tegra/phy-tegra-xusb EXPORT_SYMBOL_GPL 0xcf6d1faa crypto_sm4_set_key crypto/sm4_generic EXPORT_SYMBOL_GPL @@ -15320,6 +15329,7 @@ 0x4bf7ff38 codec_hevc_setup_decode_head drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL 0x3e7bc531 dibx000_exit_i2c_master drivers/media/dvb-frontends/dibx000_common EXPORT_SYMBOL 0xdb70b539 dibx000_init_i2c_master drivers/media/dvb-frontends/dibx000_common EXPORT_SYMBOL +0x74325e38 otx2_txschq_config drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x76764477 be_roce_unregister_driver drivers/net/ethernet/emulex/benet/be2net EXPORT_SYMBOL 0x90067b9d lm3533_update drivers/mfd/lm3533-core EXPORT_SYMBOL_GPL 0xb534ec76 llcc_slice_deactivate drivers/soc/qcom/llcc-qcom EXPORT_SYMBOL_GPL @@ -15870,6 +15880,7 @@ 0xb4725431 ocelot_port_vlan_filtering drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL 0x4a6ed376 mlxsw_core_port_fini drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x7bafb3ef mlx4_set_vf_vlan drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL +0x1184b7fc iscsi_suspend_rx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x9e4ae692 iscsi_suspend_tx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x5e95a4b2 o2net_send_message_vec fs/ocfs2/cluster/ocfs2_nodemanager EXPORT_SYMBOL_GPL 0x555d5492 fuse_conn_get fs/fuse/fuse EXPORT_SYMBOL_GPL @@ -16280,7 +16291,7 @@ 0xd42259bd mt76x02_tx_set_txpwr_auto drivers/net/wireless/mediatek/mt76/mt76x02-lib EXPORT_SYMBOL_GPL 0x81bb1974 mwifiex_del_virtual_intf drivers/net/wireless/marvell/mwifiex/mwifiex EXPORT_SYMBOL_GPL 0x325c9175 mwifiex_main_process drivers/net/wireless/marvell/mwifiex/mwifiex EXPORT_SYMBOL_GPL -0x814fc712 otx2_tc_alloc_ent_bitmap drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x4bcbd04b otx2_tc_alloc_ent_bitmap drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x7936d8a5 sas_suspend_ha drivers/scsi/libsas/libsas EXPORT_SYMBOL 0x5fb05896 drm_gem_vram_offset drivers/gpu/drm/drm_vram_helper EXPORT_SYMBOL 0x40739385 nfs_wait_bit_killable fs/nfs/nfs EXPORT_SYMBOL_GPL @@ -16657,7 +16668,7 @@ 0x108b188f ath_is_49ghz_allowed drivers/net/wireless/ath/ath EXPORT_SYMBOL 0xb5e762fa mlxsw_afk_values_add_buf drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x47041e4e mlxsw_afk_key_info_blocks_count_get drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x4b90c5be mbox_handler_nix_bp_enable drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x66e926f0 mbox_handler_nix_bp_enable drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x36286fe8 ceph_copy_from_page_vector net/ceph/libceph EXPORT_SYMBOL 0xba425896 lowpan_nhc_add net/6lowpan/6lowpan EXPORT_SYMBOL 0xf661f833 flow_offload_alloc net/netfilter/nf_flow_table EXPORT_SYMBOL_GPL @@ -17080,7 +17091,7 @@ 0xc5e6c762 ath_hw_get_listen_time drivers/net/wireless/ath/ath EXPORT_SYMBOL 0xa52fe4ca ath10k_core_unregister drivers/net/wireless/ath/ath10k/ath10k_core EXPORT_SYMBOL 0x18b0ad00 mlxsw_afa_block_append_police drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x24c64968 otx2_nix_config_bp drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xf0f1e403 otx2_nix_config_bp drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xebfae55c hisi_sas_get_ata_protocol drivers/scsi/hisi_sas/hisi_sas_main EXPORT_SYMBOL_GPL 0x80984bd8 ufshcd_link_recovery drivers/scsi/ufs/ufshcd-core EXPORT_SYMBOL_GPL 0xec341da7 iscsi_session_teardown drivers/scsi/libiscsi EXPORT_SYMBOL_GPL @@ -17387,6 +17398,7 @@ 0x31f4c947 iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi EXPORT_SYMBOL_GPL IWLWIFI 0x579e638c il_write_targ_mem drivers/net/wireless/intel/iwlegacy/iwlegacy EXPORT_SYMBOL 0x9984d67a __ocelot_write_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL +0xeba1854b iscsi_conn_queue_xmit drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0xd996efde ieee80211_txq_schedule_start net/mac80211/mac80211 EXPORT_SYMBOL 0x0bc00f80 nf_nat_helper_try_module_get net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL 0x713527a3 qcom_add_sysmon_subdev drivers/remoteproc/qcom_sysmon EXPORT_SYMBOL_GPL @@ -17891,7 +17903,7 @@ 0xa7c7684f lnbh24_attach drivers/media/dvb-frontends/lnbp21 EXPORT_SYMBOL 0x70b5b952 rt2800_txdone_entry drivers/net/wireless/ralink/rt2x00/rt2800lib EXPORT_SYMBOL_GPL 0xf8a890a2 mlx5_accel_esp_modify_xfrm drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL -0xfe899aa1 otx2_sq_append_skb drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x0593a682 otx2_sq_append_skb drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x4cccce5e fc_attach_transport drivers/scsi/scsi_transport_fc EXPORT_SYMBOL 0x7ccdfda7 cb710_sg_dwiter_write_next_block drivers/misc/cb710/cb710 EXPORT_SYMBOL_GPL 0xb295fe37 __host1x_client_init drivers/gpu/host1x/host1x EXPORT_SYMBOL @@ -17922,7 +17934,7 @@ 0x8d821323 usb_bus_start_enum drivers/usb/core/usbcore EXPORT_SYMBOL_GPL 0x3d13613a _rtl_dbg_print drivers/net/wireless/realtek/rtlwifi/rtlwifi EXPORT_SYMBOL_GPL 0x80280dd2 orinoco_process_xmit_skb drivers/net/wireless/intersil/orinoco/orinoco EXPORT_SYMBOL -0xd16fb38e cn10k_lmtst_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x8393b7b0 cn10k_lmtst_init drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xe128c07b rtsx_pci_read_phy_register drivers/misc/cardreader/rtsx_pci EXPORT_SYMBOL_GPL 0x075cf1fc drm_fb_helper_check_var drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xbb8d51f2 jbd2_journal_clear_features fs/jbd2/jbd2 EXPORT_SYMBOL @@ -18328,7 +18340,7 @@ 0x2a6872a2 rt2800_clear_beacon drivers/net/wireless/ralink/rt2x00/rt2800lib EXPORT_SYMBOL_GPL 0x4ce17ba0 __ocelot_read_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL 0xbe717871 mlx4_multicast_promisc_remove drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0xba75cf72 mbox_handler_nix_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x66696dbd mbox_handler_nix_lf_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x8056cc03 spi_schedule_dv_device drivers/scsi/scsi_transport_spi EXPORT_SYMBOL 0xff688cd5 drm_atomic_helper_suspend drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0x331168e1 drm_dp_mst_atomic_enable_dsc drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -18593,7 +18605,7 @@ 0x93cddc3f mt76_get_rate_power_limits drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0x3b59dde7 ath9k_hw_btcoex_init_scheme drivers/net/wireless/ath/ath9k/ath9k_hw EXPORT_SYMBOL 0x2e73373d mlx4_INIT_PORT drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0x6076e0e6 mbox_handler_nix_txsch_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xb90c1cee mbox_handler_nix_txsch_alloc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xaaf2fbd2 fcoe_transport_attach drivers/scsi/fcoe/libfcoe EXPORT_SYMBOL 0xa092317d st21nfca_hci_probe drivers/nfc/st21nfca/st21nfca_hci EXPORT_SYMBOL 0x83a7095f pn53x_common_init drivers/nfc/pn533/pn533 EXPORT_SYMBOL_GPL @@ -18618,6 +18630,7 @@ 0xd18e1020 __traceiter_bcache_btree_set_root drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x9f3c8921 rt2800mmio_txstatus_tasklet drivers/net/wireless/ralink/rt2x00/rt2800mmio EXPORT_SYMBOL_GPL 0xe23aa988 mlxsw_core_resources_query drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL +0x91ee2391 otx2_smq_flush drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x604eb9cb ufshcd_config_pwr_mode drivers/scsi/ufs/ufshcd-core EXPORT_SYMBOL_GPL 0xb788f53c iscsi_session_recovery_timedout drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x261ac951 drm_atomic_set_mode_for_crtc drivers/gpu/drm/drm EXPORT_SYMBOL @@ -19500,7 +19513,7 @@ 0xac56096c i3c_device_get_info drivers/i3c/i3c EXPORT_SYMBOL_GPL 0x3b84657b tcpm_pd_transmit_complete drivers/usb/typec/tcpm/tcpm EXPORT_SYMBOL_GPL 0x144504e1 register_hdlc_protocol drivers/net/wan/hdlc EXPORT_SYMBOL -0x2bf77f4c otx2_config_pause_frm drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xbe27d068 otx2_config_pause_frm drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x29caabee cxgb4_remove_server_filter drivers/net/ethernet/chelsio/cxgb4/cxgb4 EXPORT_SYMBOL 0x3c7fc5d7 host1x_job_unpin drivers/gpu/host1x/host1x EXPORT_SYMBOL 0x1b5b700b nf_ct_extend_register net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL @@ -20349,7 +20362,7 @@ 0xdd4f2439 imx_icc_unregister drivers/interconnect/imx/imx-interconnect EXPORT_SYMBOL_GPL 0x2c92b7aa v4l2_m2m_update_start_streaming_state drivers/media/v4l2-core/v4l2-mem2mem EXPORT_SYMBOL_GPL 0xf4dc07bd cx25821_set_gpiopin_direction drivers/media/pci/cx25821/cx25821 EXPORT_SYMBOL -0xd3811c4b otx2_init_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x99826e7a otx2_init_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0x07850bea atc260x_device_probe drivers/mfd/atc260x-core EXPORT_SYMBOL_GPL 0x66666250 drm_gem_create_mmap_offset drivers/gpu/drm/drm EXPORT_SYMBOL 0x9a646d83 drm_helper_force_disable_all drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL @@ -21030,7 +21043,7 @@ 0xfd36aed7 ehci_setup drivers/usb/host/ehci-hcd EXPORT_SYMBOL_GPL 0xc32b4e80 mt76_wake_tx_queue drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0x02325ac6 ocelot_adjust_link drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL -0x92464495 mbox_handler_msix_offset drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xb4d7643f mbox_handler_msix_offset drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xd56db7b4 fc_find_rport_by_wwpn drivers/scsi/scsi_transport_fc EXPORT_SYMBOL 0x2c71aa07 rbd_img_request_destroy drivers/block/rbd EXPORT_SYMBOL 0x21e76a68 dpaa2_io_get_adaptive_coalescing drivers/soc/fsl/dpio/fsl-mc-dpio EXPORT_SYMBOL @@ -21746,7 +21759,7 @@ 0x7e2c9daa dvb_net_init drivers/media/dvb-core/dvb-core EXPORT_SYMBOL 0x3b37a137 ir_raw_event_store_with_timeout drivers/media/rc/rc-core EXPORT_SYMBOL_GPL 0x475c51aa rc_free_device drivers/media/rc/rc-core EXPORT_SYMBOL_GPL -0x7e12be0f otx2_attach_npa_nix drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xe77576fc otx2_attach_npa_nix drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xc78f3cbb hnae_ae_register drivers/net/ethernet/hisilicon/hns/hnae EXPORT_SYMBOL 0x59e0358d sas_port_delete drivers/scsi/scsi_transport_sas EXPORT_SYMBOL 0xab5bee2f meson_venc_hdmi_supported_vic drivers/gpu/drm/meson/meson-drm EXPORT_SYMBOL_GPL @@ -22233,6 +22246,7 @@ 0xf8ea7861 rndis_tx_fixup drivers/net/usb/rndis_host EXPORT_SYMBOL_GPL 0x3e17f466 mdio_set_flag drivers/net/mdio EXPORT_SYMBOL 0x6b51ca30 iscsi_boot_create_acpitbl drivers/scsi/iscsi_boot_sysfs EXPORT_SYMBOL_GPL +0xc02dfc54 iscsi_conn_queue_recv drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x6cc6c328 drm_gem_shmem_dumb_create drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0xf81bef6f drm_read drivers/gpu/drm/drm EXPORT_SYMBOL 0x1446b60a caif_client_register_refcnt net/caif/caif EXPORT_SYMBOL @@ -23133,7 +23147,7 @@ 0x6fa48a1a mtd_device_unregister drivers/mtd/mtd EXPORT_SYMBOL_GPL 0x0ff454fc __rio_local_read_config_32 drivers/rapidio/rapidio EXPORT_SYMBOL_GPL 0x6192e1a2 vchiq_mmal_version drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq EXPORT_SYMBOL_GPL -0x37dd2488 amvdec_add_ts drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL +0x86f54c5f amvdec_add_ts drivers/staging/media/meson/vdec/meson-vdec EXPORT_SYMBOL_GPL 0x86bcdec7 cnstr_shdsc_xts_skcipher_decap drivers/crypto/caam/caamalg_desc EXPORT_SYMBOL 0xee55d047 __tracepoint_bcache_journal_write drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x9464fa71 typec_switch_get_drvdata drivers/usb/typec/typec EXPORT_SYMBOL_GPL @@ -24030,6 +24044,7 @@ 0x94ada4b0 v4l2_fh_init drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL 0xbeec0294 hfi_session_set_property drivers/media/platform/qcom/venus/venus-core EXPORT_SYMBOL_GPL 0xa359234d hfi_session_get_property drivers/media/platform/qcom/venus/venus-core EXPORT_SYMBOL_GPL +0xc48ce205 typec_get_fw_cap drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0xdec8363b mlx4_mw_alloc drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0x5782513f mlx4_config_dev_retrieval drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0x105bd823 dw_dma_acpi_controller_register drivers/dma/dw/dw_dmac_core EXPORT_SYMBOL_GPL @@ -24335,8 +24350,8 @@ 0x867e11cc b53_set_mac_eee drivers/net/dsa/b53/b53_common EXPORT_SYMBOL 0x948199c0 b53_get_mac_eee drivers/net/dsa/b53/b53_common EXPORT_SYMBOL 0x140d16e0 read_efuse_byte drivers/net/wireless/realtek/rtlwifi/rtlwifi EXPORT_SYMBOL_GPL -0x7b432097 otx2_shutdown_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL -0x6cc334e2 otx2_get_max_mtu drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x9528f563 otx2_shutdown_tc drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x1d29d660 otx2_get_max_mtu drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xb25342bd vnic_dev_register drivers/net/ethernet/cisco/enic/enic EXPORT_SYMBOL 0x52bed1b0 iscsi_host_for_each_session drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL 0xb33dfd24 iscsi_create_flashnode_sess drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL @@ -24741,7 +24756,7 @@ 0xe8a46735 nvec_msg_free drivers/staging/nvec/nvec EXPORT_SYMBOL_GPL 0xb912ae0b __tracepoint_bcache_journal_replay_key drivers/md/bcache/bcache EXPORT_SYMBOL_GPL 0x7f659d4c mlxsw_afa_block_append_vlan_modify drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL -0x94aea312 otx2_ptp_clock_index drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL +0x8e5325d5 otx2_ptp_clock_index drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp EXPORT_SYMBOL_GPL 0x0e38bcdc drm_gem_duplicate_shadow_plane_state drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xc5c99a79 drm_dp_get_adjust_request_voltage drivers/gpu/drm/drm_kms_helper EXPORT_SYMBOL 0xdb008703 dpaa2_io_service_enqueue_multiple_fq drivers/soc/fsl/dpio/fsl-mc-dpio EXPORT_SYMBOL @@ -24912,7 +24927,7 @@ 0xcf2f8f21 ath11k_hal_srng_init drivers/net/wireless/ath/ath11k/ath11k EXPORT_SYMBOL 0xb5a93e0f mlx5_core_query_ib_ppcnt drivers/net/ethernet/mellanox/mlx5/core/mlx5_core EXPORT_SYMBOL_GPL 0xe53cd63d mlx4_mr_hw_write_mpt drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL -0xab3eca68 otx2_mbox_up_handler_cgx_link_event drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0xca08fc4b otx2_mbox_up_handler_cgx_link_event drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xc3f20ee5 nvme_get_features drivers/nvme/host/nvme-core EXPORT_SYMBOL_GPL 0x51b62152 drm_bridge_hpd_enable drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0x2aa8c478 dpdmai_get_rx_queue drivers/dma/fsl-dpaa2-qdma/dpdmai EXPORT_SYMBOL_GPL @@ -25489,7 +25504,7 @@ 0xfbd90d63 nand_ecc_init_ctx drivers/mtd/nand/nandcore EXPORT_SYMBOL 0x170bc28e vchiq_mmal_component_enable drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq EXPORT_SYMBOL_GPL 0xd237b9fb dm_array_walk drivers/md/persistent-data/dm-persistent-data EXPORT_SYMBOL_GPL -0x9aa2a9c1 otx2_mcam_flow_del drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL +0x137080a6 otx2_mcam_flow_del drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf EXPORT_SYMBOL 0xb68b1300 llcc_slice_putd drivers/soc/qcom/llcc-qcom EXPORT_SYMBOL_GPL 0x4f4d78c5 LZ4_compress_default lib/lz4/lz4_compress EXPORT_SYMBOL 0x585dbf5b nci_core_reset net/nfc/nci/nci EXPORT_SYMBOL diff --git a/kabi/ppc64le/symtypes-default b/kabi/ppc64le/symtypes-default index aff6dda..47fd05c 100644 --- a/kabi/ppc64le/symtypes-default +++ b/kabi/ppc64le/symtypes-default @@ -8893,6 +8893,7 @@ submit_bio_noacct t#blk_qc_t submit_bio_noacct ( s#bio * ) submit_bio extern t#blk_qc_t submit_bio ( s#bio * ) blk_insert_cloned_request extern t#blk_status_t blk_insert_cloned_request ( s#request_queue * , s#request * ) blk_rq_err_bytes extern unsigned int blk_rq_err_bytes ( const s#request * ) +bio_start_io_acct_time void bio_start_io_acct_time ( s#bio * , unsigned long ) bio_start_io_acct unsigned long bio_start_io_acct ( s#bio * ) disk_start_io_acct unsigned long disk_start_io_acct ( s#gendisk * , unsigned int , unsigned int ) bio_end_io_acct_remapped void bio_end_io_acct_remapped ( s#bio * , unsigned long , s#block_device * ) @@ -29120,7 +29121,11 @@ s##fwnode_handle s##iommu_group s##dev_iommu devm_clk_get s#clk * devm_clk_get ( s#device * , const char * ) +devm_clk_get_prepared s#clk * devm_clk_get_prepared ( s#device * , const char * ) +devm_clk_get_enabled s#clk * devm_clk_get_enabled ( s#device * , const char * ) devm_clk_get_optional s#clk * devm_clk_get_optional ( s#device * , const char * ) +devm_clk_get_optional_prepared s#clk * devm_clk_get_optional_prepared ( s#device * , const char * ) +devm_clk_get_optional_enabled s#clk * devm_clk_get_optional_enabled ( s#device * , const char * ) devm_clk_bulk_get int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_optional int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_optional ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_all int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_all ( s#device * , s#clk_bulk_data * * ) @@ -160129,7 +160134,9 @@ s##trace_event_call s##scsi_device_handler s##scsi_host_cmd_pool s##bsg_job +iscsi_conn_queue_xmit extern void iscsi_conn_queue_xmit ( s#iscsi_conn * ) iscsi_conn_queue_work extern void iscsi_conn_queue_work ( s#iscsi_conn * ) +iscsi_conn_queue_recv extern void iscsi_conn_queue_recv ( s#iscsi_conn * ) s#iscsi_nopin struct iscsi_nopin { t#uint8_t opcode ; t#uint8_t flags ; t#__be16 rsvd2 ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 statsn ; t#__be32 exp_cmdsn ; t#__be32 max_cmdsn ; t#uint8_t rsvd4 [ 12 ] ; } iscsi_update_cmdsn extern void iscsi_update_cmdsn ( s#iscsi_session * , s#iscsi_nopin * ) s#iscsi_data struct iscsi_data { t#uint8_t opcode ; t#uint8_t flags ; t#uint8_t rsvd2 [ 2 ] ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 rsvd4 ; t#__be32 exp_statsn ; t#__be32 rsvd5 ; t#__be32 datasn ; t#__be32 offset ; t#__be32 rsvd6 ; } @@ -160152,6 +160159,7 @@ iscsi_queuecommand extern int iscsi_queuecommand ( s#Scsi_Host * , s#scsi_cmnd * iscsi_target_alloc extern int iscsi_target_alloc ( s#scsi_target * ) iscsi_suspend_queue extern void iscsi_suspend_queue ( s#iscsi_conn * ) iscsi_suspend_tx extern void iscsi_suspend_tx ( s#iscsi_conn * ) +iscsi_suspend_rx extern void iscsi_suspend_rx ( s#iscsi_conn * ) iscsi_eh_cmd_timed_out extern e#blk_eh_timer_return iscsi_eh_cmd_timed_out ( s#scsi_cmnd * ) iscsi_conn_unbind extern void iscsi_conn_unbind ( s#iscsi_cls_conn * , t#bool ) iscsi_eh_abort extern int iscsi_eh_abort ( s#scsi_cmnd * ) @@ -177568,6 +177576,7 @@ typec_get_orientation e#typec_orientation typec_get_orientation ( s#typec_port * typec_set_mode int typec_set_mode ( s#typec_port * , int ) typec_get_negotiated_svdm_version int typec_get_negotiated_svdm_version ( s#typec_port * ) typec_get_drvdata void * typec_get_drvdata ( s#typec_port * ) +typec_get_fw_cap int typec_get_fw_cap ( s#typec_capability * , s#fwnode_handle * ) typec_port_register_altmode s#typec_altmode * typec_port_register_altmode ( s#typec_port * , const s#typec_altmode_desc * ) typec_port_register_altmodes void typec_port_register_altmodes ( s#typec_port * , const s#typec_altmode_ops * , void * , s#typec_altmode * * , t#size_t ) typec_register_port s#typec_port * typec_register_port ( s#device * , const s#typec_capability * ) @@ -213989,6 +213998,7 @@ schedule_timeout_uninterruptible extern long schedule_timeout_uninterruptible ( schedule_timeout_idle extern long schedule_timeout_idle ( long ) msleep void msleep ( unsigned int ) msleep_interruptible unsigned long msleep_interruptible ( unsigned int ) +usleep_range_state void usleep_range_state ( unsigned long , unsigned long , unsigned int ) usleep_range void usleep_range ( unsigned long , unsigned long ) /* kernel/torture.o */ @@ -238918,6 +238928,9 @@ sk_set_memalloc void sk_set_memalloc ( s#sock * ) sk_clear_memalloc void sk_clear_memalloc ( s#sock * ) __sk_backlog_rcv int __sk_backlog_rcv ( s#sock * , s#sk_buff * ) sk_error_report void sk_error_report ( s#sock * ) +sock_get_timeout int sock_get_timeout ( long , void * , t#bool ) +s#__kernel_sock_timeval struct __kernel_sock_timeval { t#__s64 tv_sec ; t#__s64 tv_usec ; } +sock_copy_user_timeval int sock_copy_user_timeval ( s#__kernel_sock_timeval * , t#sockptr_t , int , t#bool ) __sock_queue_rcv_skb int __sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) sock_queue_rcv_skb int sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) __sk_receive_skb int __sk_receive_skb ( s#sock * , s#sk_buff * , const int , unsigned int , t#bool ) @@ -301574,6 +301587,7 @@ vcpu_put void vcpu_put ( s#kvm_vcpu * ) kvm_make_all_cpus_request t#bool kvm_make_all_cpus_request ( s#kvm * , unsigned int ) kvm_flush_remote_tlbs void kvm_flush_remote_tlbs ( s#kvm * ) kvm_vcpu_destroy void kvm_vcpu_destroy ( s#kvm_vcpu * ) +kvm_destroy_vcpus void kvm_destroy_vcpus ( s#kvm * ) kvm_get_kvm void kvm_get_kvm ( s#kvm * ) kvm_put_kvm void kvm_put_kvm ( s#kvm * ) kvm_put_kvm_no_destroy void kvm_put_kvm_no_destroy ( s#kvm * ) diff --git a/kabi/ppc64le/symvers-default b/kabi/ppc64le/symvers-default index d9cd502..8aa93b4 100644 --- a/kabi/ppc64le/symvers-default +++ b/kabi/ppc64le/symvers-default @@ -1,4 +1,5 @@ 0xd73cdda0 ipv6_chk_custom_prefix vmlinux EXPORT_SYMBOL +0xedd17b31 sock_get_timeout vmlinux EXPORT_SYMBOL 0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL 0x896134c7 set_anon_super vmlinux EXPORT_SYMBOL 0x45c4a005 __cleancache_invalidate_page vmlinux EXPORT_SYMBOL @@ -300,6 +301,7 @@ 0x77e75be3 sfp_bus_put vmlinux EXPORT_SYMBOL_GPL 0xb1d184fb tty_port_tty_set vmlinux EXPORT_SYMBOL 0x87229322 tty_port_tty_get vmlinux EXPORT_SYMBOL +0x82649d13 devm_clk_get_optional_enabled vmlinux EXPORT_SYMBOL_GPL 0x4f1cd128 security_tun_dev_create vmlinux EXPORT_SYMBOL 0xc8ebcba0 fs_context_for_mount vmlinux EXPORT_SYMBOL 0x495e378d __pv_queued_spin_lock_slowpath vmlinux EXPORT_SYMBOL @@ -1128,6 +1130,7 @@ 0x2ec79848 pldmfw_flash_image vmlinux EXPORT_SYMBOL 0x769cefb5 percpu_ref_switch_to_atomic vmlinux EXPORT_SYMBOL_GPL 0xdd2efaae __blkg_prfill_u64 vmlinux EXPORT_SYMBOL_GPL +0x0fe7f81a bio_start_io_acct_time vmlinux EXPORT_SYMBOL_GPL 0xb41cce79 vmf_insert_pfn vmlinux EXPORT_SYMBOL 0x42bed8d4 unix_gc_lock vmlinux EXPORT_SYMBOL 0xc43a443b nf_queue_nf_hook_drop vmlinux EXPORT_SYMBOL_GPL @@ -1748,6 +1751,7 @@ 0x94e50ad4 call_fib_notifier vmlinux EXPORT_SYMBOL 0x2f39711f sk_page_frag_refill vmlinux EXPORT_SYMBOL 0x610f3b25 mii_check_media vmlinux EXPORT_SYMBOL +0x7a4de32d devm_clk_get_enabled vmlinux EXPORT_SYMBOL_GPL 0xa8a528f3 user_revoke vmlinux EXPORT_SYMBOL 0x31894f26 debugfs_create_dir vmlinux EXPORT_SYMBOL_GPL 0x0231a564 dcache_dir_lseek vmlinux EXPORT_SYMBOL @@ -1828,6 +1832,7 @@ 0x7fe19333 anon_transport_class_register vmlinux EXPORT_SYMBOL_GPL 0xc09ea933 devm_krealloc vmlinux EXPORT_SYMBOL_GPL 0x8d27c87f virtqueue_get_used_addr vmlinux EXPORT_SYMBOL_GPL +0xe230f031 devm_clk_get_optional_prepared vmlinux EXPORT_SYMBOL_GPL 0x936080f5 devm_phy_create vmlinux EXPORT_SYMBOL_GPL 0xcbd4898c fortify_panic vmlinux EXPORT_SYMBOL 0x258d2f76 net_dim_get_tx_moderation vmlinux EXPORT_SYMBOL @@ -2370,6 +2375,7 @@ 0xab3d533b of_irq_to_resource_table vmlinux EXPORT_SYMBOL_GPL 0x3369258a of_detach_node vmlinux EXPORT_SYMBOL_GPL 0xbb60618e ptp_convert_timestamp vmlinux EXPORT_SYMBOL +0x23a9c4e4 devm_clk_get_prepared vmlinux EXPORT_SYMBOL_GPL 0x2566b269 setup_fault_attr vmlinux EXPORT_SYMBOL_GPL 0xc16be39d iter_div_u64_rem vmlinux EXPORT_SYMBOL 0x5ec4aee6 put_sg_io_hdr vmlinux EXPORT_SYMBOL @@ -4245,6 +4251,7 @@ 0xa4203c9c vfs_llseek vmlinux EXPORT_SYMBOL 0x2db3fad2 __page_file_index vmlinux EXPORT_SYMBOL_GPL 0xc03df3d0 __irq_set_handler vmlinux EXPORT_SYMBOL_GPL +0x5bdb7603 sock_copy_user_timeval vmlinux EXPORT_SYMBOL 0x45cf73b5 of_platform_depopulate vmlinux EXPORT_SYMBOL_GPL 0x777ed78c iterate_fd vmlinux EXPORT_SYMBOL 0x7ceaf0d5 generic_handle_irq vmlinux EXPORT_SYMBOL_GPL @@ -6731,6 +6738,7 @@ 0xcfa7e913 posix_acl_valid vmlinux EXPORT_SYMBOL 0xf33e079c invalidate_inode_buffers vmlinux EXPORT_SYMBOL 0x5af07a53 PageMovable vmlinux EXPORT_SYMBOL +0xc3055d20 usleep_range_state vmlinux EXPORT_SYMBOL 0x1d77b0f8 unix_socket_table vmlinux EXPORT_SYMBOL_GPL 0x7657a34b nl_table vmlinux EXPORT_SYMBOL_GPL 0x742578a5 wait_for_random_bytes vmlinux EXPORT_SYMBOL @@ -12916,6 +12924,7 @@ 0x4a6ed376 mlxsw_core_port_fini drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x2ce0ab24 mlx4_set_vf_vlan drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0xaefa30ff iscsi_suspend_tx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL +0xf444e535 iscsi_suspend_rx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x5e95a4b2 o2net_send_message_vec fs/ocfs2/cluster/ocfs2_nodemanager EXPORT_SYMBOL_GPL 0x8964bb4e fuse_conn_get fs/fuse/fuse EXPORT_SYMBOL_GPL 0x0b9cd22c ip_vs_tcp_conn_listen net/netfilter/ipvs/ip_vs EXPORT_SYMBOL @@ -12978,6 +12987,7 @@ 0x9e78626c mt76_connac_mcu_sta_cmd drivers/net/wireless/mediatek/mt76/mt76-connac-lib EXPORT_SYMBOL_GPL 0xe40b66ef mt76_wcid_alloc drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0xe4b818c3 phy_speed_to_str drivers/net/phy/libphy EXPORT_SYMBOL_GPL +0x75093082 kvm_destroy_vcpus arch/powerpc/kvm/kvm EXPORT_SYMBOL_GPL 0x1305aab6 ata_sff_lost_interrupt drivers/ata/libata EXPORT_SYMBOL_GPL 0x8074c9c4 ucsi_get_drvdata drivers/usb/typec/ucsi/typec_ucsi EXPORT_SYMBOL_GPL 0x09fc47fc usb_kill_urb drivers/usb/core/usbcore EXPORT_SYMBOL_GPL @@ -13958,6 +13968,7 @@ 0xcd334ed8 fw_send_response drivers/firewire/firewire-core EXPORT_SYMBOL 0x05c8d971 il_write_targ_mem drivers/net/wireless/intel/iwlegacy/iwlegacy EXPORT_SYMBOL 0xd7f835b9 __ocelot_write_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL +0x47abbf3d iscsi_conn_queue_xmit drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x00125235 ieee80211_txq_schedule_start net/mac80211/mac80211 EXPORT_SYMBOL 0x0bc00f80 nf_nat_helper_try_module_get net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL 0x640a0b01 dm_dirty_log_create drivers/md/dm-log EXPORT_SYMBOL @@ -17195,6 +17206,7 @@ 0x124353ed rndis_tx_fixup drivers/net/usb/rndis_host EXPORT_SYMBOL_GPL 0x3e17f466 mdio_set_flag drivers/net/mdio EXPORT_SYMBOL 0x8ba98aac iscsi_boot_create_acpitbl drivers/scsi/iscsi_boot_sysfs EXPORT_SYMBOL_GPL +0x415e7c70 iscsi_conn_queue_recv drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x2501dec8 drm_gem_shmem_dumb_create drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0xe1cc826d drm_read drivers/gpu/drm/drm EXPORT_SYMBOL 0x59c13bed ieee80211_key_mic_failure net/mac80211/mac80211 EXPORT_SYMBOL_GPL @@ -18401,6 +18413,7 @@ 0x63d8def3 nfs_refresh_inode fs/nfs/nfs EXPORT_SYMBOL_GPL 0xdbc5277a torture_shutdown_init kernel/torture EXPORT_SYMBOL_GPL 0xad703657 ceph_auth_destroy_authorizer net/ceph/libceph EXPORT_SYMBOL +0xec2f1be4 typec_get_fw_cap drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0xae8ec363 mlx4_mw_alloc drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0x88907a99 mlx4_config_dev_retrieval drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0xd2d305bf llc_build_and_send_ui_pkt net/llc/llc EXPORT_SYMBOL diff --git a/kabi/s390x/symtypes-default b/kabi/s390x/symtypes-default index 55a2f82..7aa0e40 100644 --- a/kabi/s390x/symtypes-default +++ b/kabi/s390x/symtypes-default @@ -2284,6 +2284,8 @@ gmap_mark_unmergeable int gmap_mark_unmergeable ( void ) s390_enable_skey extern int s390_enable_skey ( void ) s390_reset_cmma extern void s390_reset_cmma ( s#mm_struct * ) s390_reset_acc void s390_reset_acc ( s#mm_struct * ) +s390_unlist_old_asce void s390_unlist_old_asce ( s#gmap * ) +s390_replace_asce int s390_replace_asce ( s#gmap * ) /* arch/s390/mm/init.o */ empty_zero_page extern unsigned long empty_zero_page @@ -3812,6 +3814,7 @@ submit_bio_noacct t#blk_qc_t submit_bio_noacct ( s#bio * ) submit_bio extern t#blk_qc_t submit_bio ( s#bio * ) blk_insert_cloned_request extern t#blk_status_t blk_insert_cloned_request ( s#request_queue * , s#request * ) blk_rq_err_bytes extern unsigned int blk_rq_err_bytes ( const s#request * ) +bio_start_io_acct_time void bio_start_io_acct_time ( s#bio * , unsigned long ) bio_start_io_acct unsigned long bio_start_io_acct ( s#bio * ) disk_start_io_acct unsigned long disk_start_io_acct ( s#gendisk * , unsigned int , unsigned int ) bio_end_io_acct_remapped void bio_end_io_acct_remapped ( s#bio * , unsigned long , s#block_device * ) @@ -17759,7 +17762,11 @@ s##fwnode_handle s##iommu_group s##dev_iommu devm_clk_get s#clk * devm_clk_get ( s#device * , const char * ) +devm_clk_get_prepared s#clk * devm_clk_get_prepared ( s#device * , const char * ) +devm_clk_get_enabled s#clk * devm_clk_get_enabled ( s#device * , const char * ) devm_clk_get_optional s#clk * devm_clk_get_optional ( s#device * , const char * ) +devm_clk_get_optional_prepared s#clk * devm_clk_get_optional_prepared ( s#device * , const char * ) +devm_clk_get_optional_enabled s#clk * devm_clk_get_optional_enabled ( s#device * , const char * ) devm_clk_bulk_get int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_optional int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_optional ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_all int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_all ( s#device * , s#clk_bulk_data * * ) @@ -69989,7 +69996,9 @@ s#kfifo struct kfifo { union { s#__kfifo kfifo ; unsigned char * type ; const un s#iscsi_pool struct iscsi_pool { s#kfifo queue ; void * * pool ; int max ; } s#iscsi_session struct iscsi_session { s#iscsi_cls_session * cls_session ; s#mutex eh_mutex ; t#wait_queue_head_t ehwait ; s#iscsi_tm tmhdr ; s#timer_list tmf_timer ; int tmf_state ; s#iscsi_task * running_aborted_task ; t#uint32_t cmdsn ; t#uint32_t exp_cmdsn ; t#uint32_t max_cmdsn ; t#uint32_t queued_cmdsn ; int abort_timeout ; int lu_reset_timeout ; int tgt_reset_timeout ; int initial_r2t_en ; unsigned short max_r2t ; int imm_data_en ; unsigned first_burst ; unsigned max_burst ; int time2wait ; int time2retain ; int pdu_inorder_en ; int dataseq_inorder_en ; int erl ; int fast_abort ; int tpgt ; char * username ; char * username_in ; char * password ; char * password_in ; char * targetname ; char * targetalias ; char * ifacename ; char * initiatorname ; char * boot_root ; char * boot_nic ; char * boot_target ; char * portal_type ; char * discovery_parent_type ; t#uint16_t discovery_parent_idx ; t#uint16_t def_taskmgmt_tmo ; t#uint16_t tsid ; t#uint8_t auto_snd_tgt_disable ; t#uint8_t discovery_sess ; t#uint8_t chap_auth_en ; t#uint8_t discovery_logout_en ; t#uint8_t bidi_chap_en ; t#uint8_t discovery_auth_optional ; t#uint8_t isid [ 6 ] ; s#iscsi_transport * tt ; s#Scsi_Host * host ; s#iscsi_conn * leadconn ; t#spinlock_t frwd_lock ; t#spinlock_t back_lock ; int state ; int age ; int scsi_cmds_max ; int cmds_max ; s#iscsi_task * * cmds ; s#iscsi_pool cmdpool ; void * dd_data ; } s#iscsi_conn struct iscsi_conn { s#iscsi_cls_conn * cls_conn ; void * dd_data ; s#iscsi_session * session ; int stop_stage ; s#timer_list transport_timer ; unsigned long last_recv ; unsigned long last_ping ; int ping_timeout ; int recv_timeout ; s#iscsi_task * ping_task ; t#uint32_t exp_statsn ; t#uint32_t statsn ; int id ; int c_stage ; char * data ; s#iscsi_task * login_task ; s#iscsi_task * task ; s#list_head mgmtqueue ; s#list_head cmdqueue ; s#list_head requeue ; s#work_struct xmitwork ; unsigned long suspend_tx ; unsigned long suspend_rx ; unsigned max_recv_dlength ; unsigned max_xmit_dlength ; int hdrdgst_en ; int datadgst_en ; int ifmarker_en ; int ofmarker_en ; int persistent_port ; char * persistent_address ; unsigned max_segment_size ; unsigned tcp_xmit_wsf ; unsigned tcp_recv_wsf ; t#uint16_t keepalive_tmo ; t#uint16_t local_port ; t#uint8_t tcp_timestamp_stat ; t#uint8_t tcp_nagle_disable ; t#uint8_t tcp_wsf_disable ; t#uint8_t tcp_timer_scale ; t#uint8_t tcp_timestamp_en ; t#uint8_t fragment_disable ; t#uint8_t ipv4_tos ; t#uint8_t ipv6_traffic_class ; t#uint8_t ipv6_flow_label ; t#uint8_t is_fw_assigned_ipv6 ; char * local_ipaddr ; t#uint64_t txdata_octets ; t#uint64_t rxdata_octets ; t#uint32_t scsicmd_pdus_cnt ; t#uint32_t dataout_pdus_cnt ; t#uint32_t scsirsp_pdus_cnt ; t#uint32_t datain_pdus_cnt ; t#uint32_t r2t_pdus_cnt ; t#uint32_t tmfcmd_pdus_cnt ; t#int32_t tmfrsp_pdus_cnt ; t#uint32_t eh_abort_cnt ; t#uint32_t fmr_unalign_cnt ; } +iscsi_conn_queue_xmit extern void iscsi_conn_queue_xmit ( s#iscsi_conn * ) iscsi_conn_queue_work extern void iscsi_conn_queue_work ( s#iscsi_conn * ) +iscsi_conn_queue_recv extern void iscsi_conn_queue_recv ( s#iscsi_conn * ) s#iscsi_nopin struct iscsi_nopin { t#uint8_t opcode ; t#uint8_t flags ; t#__be16 rsvd2 ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 statsn ; t#__be32 exp_cmdsn ; t#__be32 max_cmdsn ; t#uint8_t rsvd4 [ 12 ] ; } iscsi_update_cmdsn extern void iscsi_update_cmdsn ( s#iscsi_session * , s#iscsi_nopin * ) s#iscsi_data struct iscsi_data { t#uint8_t opcode ; t#uint8_t flags ; t#uint8_t rsvd2 [ 2 ] ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 rsvd4 ; t#__be32 exp_statsn ; t#__be32 rsvd5 ; t#__be32 datasn ; t#__be32 offset ; t#__be32 rsvd6 ; } @@ -70012,6 +70021,7 @@ iscsi_queuecommand extern int iscsi_queuecommand ( s#Scsi_Host * , s#scsi_cmnd * iscsi_target_alloc extern int iscsi_target_alloc ( s#scsi_target * ) iscsi_suspend_queue extern void iscsi_suspend_queue ( s#iscsi_conn * ) iscsi_suspend_tx extern void iscsi_suspend_tx ( s#iscsi_conn * ) +iscsi_suspend_rx extern void iscsi_suspend_rx ( s#iscsi_conn * ) iscsi_eh_cmd_timed_out extern e#blk_eh_timer_return iscsi_eh_cmd_timed_out ( s#scsi_cmnd * ) iscsi_conn_unbind extern void iscsi_conn_unbind ( s#iscsi_cls_conn * , t#bool ) iscsi_eh_abort extern int iscsi_eh_abort ( s#scsi_cmnd * ) @@ -109718,6 +109728,7 @@ schedule_timeout_uninterruptible extern long schedule_timeout_uninterruptible ( schedule_timeout_idle extern long schedule_timeout_idle ( long ) msleep void msleep ( unsigned int ) msleep_interruptible unsigned long msleep_interruptible ( unsigned int ) +usleep_range_state void usleep_range_state ( unsigned long , unsigned long , unsigned int ) usleep_range void usleep_range ( unsigned long , unsigned long ) /* kernel/torture.o */ @@ -130016,6 +130027,9 @@ sk_set_memalloc void sk_set_memalloc ( s#sock * ) sk_clear_memalloc void sk_clear_memalloc ( s#sock * ) __sk_backlog_rcv int __sk_backlog_rcv ( s#sock * , s#sk_buff * ) sk_error_report void sk_error_report ( s#sock * ) +sock_get_timeout int sock_get_timeout ( long , void * , t#bool ) +s#__kernel_sock_timeval struct __kernel_sock_timeval { t#__s64 tv_sec ; t#__s64 tv_usec ; } +sock_copy_user_timeval int sock_copy_user_timeval ( s#__kernel_sock_timeval * , t#sockptr_t , int , t#bool ) __sock_queue_rcv_skb int __sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) sock_queue_rcv_skb int sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) __sk_receive_skb int __sk_receive_skb ( s#sock * , s#sk_buff * , const int , unsigned int , t#bool ) @@ -180320,6 +180334,7 @@ vcpu_put void vcpu_put ( s#kvm_vcpu * ) kvm_make_all_cpus_request t#bool kvm_make_all_cpus_request ( s#kvm * , unsigned int ) kvm_flush_remote_tlbs void kvm_flush_remote_tlbs ( s#kvm * ) kvm_vcpu_destroy void kvm_vcpu_destroy ( s#kvm_vcpu * ) +kvm_destroy_vcpus void kvm_destroy_vcpus ( s#kvm * ) kvm_get_kvm void kvm_get_kvm ( s#kvm * ) kvm_put_kvm void kvm_put_kvm ( s#kvm * ) kvm_put_kvm_no_destroy void kvm_put_kvm_no_destroy ( s#kvm * ) diff --git a/kabi/s390x/symvers-default b/kabi/s390x/symvers-default index 55b9906..6c6c0bd 100644 --- a/kabi/s390x/symvers-default +++ b/kabi/s390x/symvers-default @@ -1,4 +1,5 @@ 0x79cfa131 ipv6_chk_custom_prefix vmlinux EXPORT_SYMBOL +0xedd17b31 sock_get_timeout vmlinux EXPORT_SYMBOL 0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL 0x18b6c397 set_anon_super vmlinux EXPORT_SYMBOL 0xf830c5f0 __cleancache_invalidate_page vmlinux EXPORT_SYMBOL @@ -245,6 +246,7 @@ 0x77e75be3 sfp_bus_put vmlinux EXPORT_SYMBOL_GPL 0x35bb3323 tty_port_tty_get vmlinux EXPORT_SYMBOL 0x12348d4b tty_port_tty_set vmlinux EXPORT_SYMBOL +0x9ac7b901 devm_clk_get_optional_enabled vmlinux EXPORT_SYMBOL_GPL 0x4f1cd128 security_tun_dev_create vmlinux EXPORT_SYMBOL 0xa1fc1600 fs_context_for_mount vmlinux EXPORT_SYMBOL 0x38a9f7c5 in6addr_loopback vmlinux EXPORT_SYMBOL @@ -933,6 +935,7 @@ 0xcfc7b4e4 rcu_barrier_tasks_trace vmlinux EXPORT_SYMBOL_GPL 0x769cefb5 percpu_ref_switch_to_atomic vmlinux EXPORT_SYMBOL_GPL 0x2c675ea6 __blkg_prfill_u64 vmlinux EXPORT_SYMBOL_GPL +0xd304ced9 bio_start_io_acct_time vmlinux EXPORT_SYMBOL_GPL 0xf711c27d vmf_insert_pfn vmlinux EXPORT_SYMBOL 0xe293fdb7 ccw_device_set_timeout vmlinux EXPORT_SYMBOL_GPL 0x6bfe1653 iucv_message_receive vmlinux EXPORT_SYMBOL @@ -1366,6 +1369,7 @@ 0xf74e7c93 jump_label_rate_limit vmlinux EXPORT_SYMBOL_GPL 0x18a14020 synth_event_add_next_val vmlinux EXPORT_SYMBOL_GPL 0x7d9d9c9e percpu_down_write vmlinux EXPORT_SYMBOL_GPL +0x18c5296a s390_unlist_old_asce vmlinux EXPORT_SYMBOL_GPL 0x51891f99 netdev_change_features vmlinux EXPORT_SYMBOL 0xf0d2627e init_dummy_netdev vmlinux EXPORT_SYMBOL_GPL 0x47f66e4f pci_assign_unassigned_bus_resources vmlinux EXPORT_SYMBOL_GPL @@ -1453,6 +1457,7 @@ 0x07f1fefd udp_pre_connect vmlinux EXPORT_SYMBOL 0x94e50ad4 call_fib_notifier vmlinux EXPORT_SYMBOL 0x51d6e2eb sk_page_frag_refill vmlinux EXPORT_SYMBOL +0x0c5af70a devm_clk_get_enabled vmlinux EXPORT_SYMBOL_GPL 0x6a22d371 user_revoke vmlinux EXPORT_SYMBOL 0xddb64c08 debugfs_create_dir vmlinux EXPORT_SYMBOL_GPL 0xe3ea6519 dcache_dir_lseek vmlinux EXPORT_SYMBOL @@ -1514,6 +1519,7 @@ 0xa5eb06e5 anon_transport_class_register vmlinux EXPORT_SYMBOL_GPL 0xf31efab1 devm_krealloc vmlinux EXPORT_SYMBOL_GPL 0xdadb2fa1 virtqueue_get_used_addr vmlinux EXPORT_SYMBOL_GPL +0x272ac3de devm_clk_get_optional_prepared vmlinux EXPORT_SYMBOL_GPL 0x28070fa0 devm_phy_create vmlinux EXPORT_SYMBOL_GPL 0xcbd4898c fortify_panic vmlinux EXPORT_SYMBOL 0x99d472b1 net_dim_get_rx_moderation vmlinux EXPORT_SYMBOL @@ -1980,6 +1986,7 @@ 0x0533e09c netlink_has_listeners vmlinux EXPORT_SYMBOL_GPL 0x57d7f6b9 __netif_napi_del vmlinux EXPORT_SYMBOL 0xc9831ad7 flow_keys_dissector vmlinux EXPORT_SYMBOL +0xb06e8718 devm_clk_get_prepared vmlinux EXPORT_SYMBOL_GPL 0x7711adb9 setup_fault_attr vmlinux EXPORT_SYMBOL_GPL 0xc16be39d iter_div_u64_rem vmlinux EXPORT_SYMBOL 0x5ec4aee6 put_sg_io_hdr vmlinux EXPORT_SYMBOL @@ -3533,6 +3540,7 @@ 0x514205e4 __page_file_index vmlinux EXPORT_SYMBOL_GPL 0xf99ec11f __irq_set_handler vmlinux EXPORT_SYMBOL_GPL 0x0ea763c3 sclp_sync_wait vmlinux EXPORT_SYMBOL +0x5bdb7603 sock_copy_user_timeval vmlinux EXPORT_SYMBOL 0xd6bd1437 iterate_fd vmlinux EXPORT_SYMBOL 0x7ceaf0d5 generic_handle_irq vmlinux EXPORT_SYMBOL_GPL 0x51473316 __cpu_present_mask vmlinux EXPORT_SYMBOL @@ -5583,6 +5591,7 @@ 0xf1b96974 posix_acl_valid vmlinux EXPORT_SYMBOL 0x30b0fb2f invalidate_inode_buffers vmlinux EXPORT_SYMBOL 0x1c3476cd PageMovable vmlinux EXPORT_SYMBOL +0xc3055d20 usleep_range_state vmlinux EXPORT_SYMBOL 0x8053525a sclp_register vmlinux EXPORT_SYMBOL 0x1d77b0f8 unix_socket_table vmlinux EXPORT_SYMBOL_GPL 0x3f0f9c68 nl_table vmlinux EXPORT_SYMBOL_GPL @@ -5939,6 +5948,7 @@ 0x6199ad5d crypto_has_skcipher vmlinux EXPORT_SYMBOL_GPL 0x7dda30af unregister_tracepoint_module_notifier vmlinux EXPORT_SYMBOL_GPL 0x1f2d801a alarm_forward_now vmlinux EXPORT_SYMBOL_GPL +0xbb0eb8d4 s390_replace_asce vmlinux EXPORT_SYMBOL_GPL 0x675b31ee rtnetlink_put_metrics vmlinux EXPORT_SYMBOL 0x5ed90adc int_to_scsilun vmlinux EXPORT_SYMBOL 0x5d2bc42a reset_control_rearm vmlinux EXPORT_SYMBOL_GPL @@ -10086,6 +10096,7 @@ 0x4a6ed376 mlxsw_core_port_fini drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x437340e1 mlx4_set_vf_vlan drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0x8a5d8bd7 iscsi_suspend_tx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL +0x053fb1e0 iscsi_suspend_rx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0xfa83d357 o2net_send_message_vec fs/ocfs2/cluster/ocfs2_nodemanager EXPORT_SYMBOL_GPL 0x5f91bbaf fuse_conn_get fs/fuse/fuse EXPORT_SYMBOL_GPL 0xaab23340 xfrm_calg_get_byname net/xfrm/xfrm_algo EXPORT_SYMBOL_GPL @@ -10125,6 +10136,7 @@ 0xcea465f5 drm_crtc_accurate_vblank_count drivers/gpu/drm/drm EXPORT_SYMBOL 0xaefe8672 fsm_getstate_str drivers/s390/net/fsm EXPORT_SYMBOL 0xe4b818c3 phy_speed_to_str drivers/net/phy/libphy EXPORT_SYMBOL_GPL +0x1c16944f kvm_destroy_vcpus arch/s390/kvm/kvm EXPORT_SYMBOL_GPL 0x8afd625d iscsi_destroy_all_flashnode drivers/scsi/scsi_transport_iscsi EXPORT_SYMBOL_GPL 0xae8fdd97 drm_crtc_vblank_reset drivers/gpu/drm/drm EXPORT_SYMBOL 0x88028b00 nfs4_test_deviceid_unavailable fs/nfs/nfsv4 EXPORT_SYMBOL_GPL @@ -10722,6 +10734,7 @@ 0x74bc2b6d iscsit_process_text_cmd drivers/target/iscsi/iscsi_target_mod EXPORT_SYMBOL 0x0494f709 dm_put drivers/md/dm-mod EXPORT_SYMBOL_GPL 0xa278a67a dm_internal_suspend_noflush drivers/md/dm-mod EXPORT_SYMBOL_GPL +0x0442ed51 iscsi_conn_queue_xmit drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x0bc00f80 nf_nat_helper_try_module_get net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL 0x3cd1f8a1 dm_dirty_log_create drivers/md/dm-log EXPORT_SYMBOL 0xe609cd9f devm_rc_allocate_device drivers/media/rc/rc-core EXPORT_SYMBOL_GPL @@ -12766,6 +12779,7 @@ 0xe8632995 arpt_unregister_table_pre_exit net/ipv4/netfilter/arp_tables EXPORT_SYMBOL 0x5b35c4f9 vfio_group_set_kvm drivers/vfio/vfio EXPORT_SYMBOL_GPL 0xed1b3c05 iscsi_boot_create_acpitbl drivers/scsi/iscsi_boot_sysfs EXPORT_SYMBOL_GPL +0xcd220bdc iscsi_conn_queue_recv drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x99541003 drm_gem_shmem_dumb_create drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0x6c33a04c drm_read drivers/gpu/drm/drm EXPORT_SYMBOL 0x009ad120 ip_vs_conn_out_get net/netfilter/ipvs/ip_vs EXPORT_SYMBOL diff --git a/kabi/severities b/kabi/severities index bd26899..1e769b0 100644 --- a/kabi/severities +++ b/kabi/severities @@ -47,6 +47,10 @@ disable_cmf PASS cmf_read PASS cmf_readall PASS sclp PASS + +# mlx5 internal symbols +drivers/net/ethernet/mellanox/mlx5/* PASS + drivers/nvme/host/nvme-fc* FAIL drivers/nvme/host/* PASS diff --git a/kabi/x86_64/symtypes-default b/kabi/x86_64/symtypes-default index 50fbc9b..6d4016f 100644 --- a/kabi/x86_64/symtypes-default +++ b/kabi/x86_64/symtypes-default @@ -3812,6 +3812,7 @@ kvm_page_track_register_notifier void kvm_page_track_register_notifier ( s#kvm * kvm_page_track_unregister_notifier void kvm_page_track_unregister_notifier ( s#kvm * , s#kvm_page_track_notifier_node * ) /* arch/x86/kvm/mmu/spte.o */ +enable_mmio_caching extern t#bool __attribute__ ( ( __section__ ( ".data..read_mostly" ) ) ) enable_mmio_caching kvm_mmu_set_mmio_spte_mask void kvm_mmu_set_mmio_spte_mask ( t#u64 , t#u64 , t#u64 ) kvm_mmu_set_ept_masks void kvm_mmu_set_ept_masks ( t#bool , t#bool ) @@ -6504,6 +6505,7 @@ submit_bio_noacct t#blk_qc_t submit_bio_noacct ( s#bio * ) submit_bio extern t#blk_qc_t submit_bio ( s#bio * ) blk_insert_cloned_request extern t#blk_status_t blk_insert_cloned_request ( s#request_queue * , s#request * ) blk_rq_err_bytes extern unsigned int blk_rq_err_bytes ( const s#request * ) +bio_start_io_acct_time void bio_start_io_acct_time ( s#bio * , unsigned long ) bio_start_io_acct unsigned long bio_start_io_acct ( s#bio * ) disk_start_io_acct unsigned long disk_start_io_acct ( s#gendisk * , unsigned int , unsigned int ) bio_end_io_acct_remapped void bio_end_io_acct_remapped ( s#bio * , unsigned long , s#block_device * ) @@ -32454,7 +32456,11 @@ s##fwnode_handle s##iommu_group s##dev_iommu devm_clk_get s#clk * devm_clk_get ( s#device * , const char * ) +devm_clk_get_prepared s#clk * devm_clk_get_prepared ( s#device * , const char * ) +devm_clk_get_enabled s#clk * devm_clk_get_enabled ( s#device * , const char * ) devm_clk_get_optional s#clk * devm_clk_get_optional ( s#device * , const char * ) +devm_clk_get_optional_prepared s#clk * devm_clk_get_optional_prepared ( s#device * , const char * ) +devm_clk_get_optional_enabled s#clk * devm_clk_get_optional_enabled ( s#device * , const char * ) devm_clk_bulk_get int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_optional int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_optional ( s#device * , int , s#clk_bulk_data * ) devm_clk_bulk_get_all int __attribute__ ( ( __warn_unused_result__ ) ) devm_clk_bulk_get_all ( s#device * , s#clk_bulk_data * * ) @@ -223362,7 +223368,9 @@ s##trace_event_call s##scsi_device_handler s##scsi_host_cmd_pool s##bsg_job +iscsi_conn_queue_xmit extern void iscsi_conn_queue_xmit ( s#iscsi_conn * ) iscsi_conn_queue_work extern void iscsi_conn_queue_work ( s#iscsi_conn * ) +iscsi_conn_queue_recv extern void iscsi_conn_queue_recv ( s#iscsi_conn * ) s#iscsi_nopin struct iscsi_nopin { t#uint8_t opcode ; t#uint8_t flags ; t#__be16 rsvd2 ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 statsn ; t#__be32 exp_cmdsn ; t#__be32 max_cmdsn ; t#uint8_t rsvd4 [ 12 ] ; } iscsi_update_cmdsn extern void iscsi_update_cmdsn ( s#iscsi_session * , s#iscsi_nopin * ) s#iscsi_data struct iscsi_data { t#uint8_t opcode ; t#uint8_t flags ; t#uint8_t rsvd2 [ 2 ] ; t#uint8_t rsvd3 ; t#uint8_t dlength [ 3 ] ; s#scsi_lun lun ; t#itt_t itt ; t#__be32 ttt ; t#__be32 rsvd4 ; t#__be32 exp_statsn ; t#__be32 rsvd5 ; t#__be32 datasn ; t#__be32 offset ; t#__be32 rsvd6 ; } @@ -223385,6 +223393,7 @@ iscsi_queuecommand extern int iscsi_queuecommand ( s#Scsi_Host * , s#scsi_cmnd * iscsi_target_alloc extern int iscsi_target_alloc ( s#scsi_target * ) iscsi_suspend_queue extern void iscsi_suspend_queue ( s#iscsi_conn * ) iscsi_suspend_tx extern void iscsi_suspend_tx ( s#iscsi_conn * ) +iscsi_suspend_rx extern void iscsi_suspend_rx ( s#iscsi_conn * ) iscsi_eh_cmd_timed_out extern e#blk_eh_timer_return iscsi_eh_cmd_timed_out ( s#scsi_cmnd * ) iscsi_conn_unbind extern void iscsi_conn_unbind ( s#iscsi_cls_conn * , t#bool ) iscsi_eh_abort extern int iscsi_eh_abort ( s#scsi_cmnd * ) @@ -249885,6 +249894,7 @@ typec_get_orientation e#typec_orientation typec_get_orientation ( s#typec_port * typec_set_mode int typec_set_mode ( s#typec_port * , int ) typec_get_negotiated_svdm_version int typec_get_negotiated_svdm_version ( s#typec_port * ) typec_get_drvdata void * typec_get_drvdata ( s#typec_port * ) +typec_get_fw_cap int typec_get_fw_cap ( s#typec_capability * , s#fwnode_handle * ) typec_port_register_altmode s#typec_altmode * typec_port_register_altmode ( s#typec_port * , const s#typec_altmode_desc * ) typec_port_register_altmodes void typec_port_register_altmodes ( s#typec_port * , const s#typec_altmode_ops * , void * , s#typec_altmode * * , t#size_t ) typec_register_port s#typec_port * typec_register_port ( s#device * , const s#typec_capability * ) @@ -289810,6 +289820,7 @@ schedule_timeout_uninterruptible extern long schedule_timeout_uninterruptible ( schedule_timeout_idle extern long schedule_timeout_idle ( long ) msleep void msleep ( unsigned int ) msleep_interruptible unsigned long msleep_interruptible ( unsigned int ) +usleep_range_state void usleep_range_state ( unsigned long , unsigned long , unsigned int ) usleep_range void usleep_range ( unsigned long , unsigned long ) /* kernel/torture.o */ @@ -317981,6 +317992,9 @@ sk_set_memalloc void sk_set_memalloc ( s#sock * ) sk_clear_memalloc void sk_clear_memalloc ( s#sock * ) __sk_backlog_rcv int __sk_backlog_rcv ( s#sock * , s#sk_buff * ) sk_error_report void sk_error_report ( s#sock * ) +sock_get_timeout int sock_get_timeout ( long , void * , t#bool ) +s#__kernel_sock_timeval struct __kernel_sock_timeval { t#__s64 tv_sec ; t#__s64 tv_usec ; } +sock_copy_user_timeval int sock_copy_user_timeval ( s#__kernel_sock_timeval * , t#sockptr_t , int , t#bool ) __sock_queue_rcv_skb int __sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) sock_queue_rcv_skb int sock_queue_rcv_skb ( s#sock * , s#sk_buff * ) __sk_receive_skb int __sk_receive_skb ( s#sock * , s#sk_buff * , const int , unsigned int , t#bool ) @@ -409039,6 +409053,7 @@ vcpu_put void vcpu_put ( s#kvm_vcpu * ) kvm_make_all_cpus_request t#bool kvm_make_all_cpus_request ( s#kvm * , unsigned int ) kvm_flush_remote_tlbs void kvm_flush_remote_tlbs ( s#kvm * ) kvm_vcpu_destroy void kvm_vcpu_destroy ( s#kvm_vcpu * ) +kvm_destroy_vcpus void kvm_destroy_vcpus ( s#kvm * ) kvm_get_kvm void kvm_get_kvm ( s#kvm * ) kvm_put_kvm void kvm_put_kvm ( s#kvm * ) kvm_put_kvm_no_destroy void kvm_put_kvm_no_destroy ( s#kvm * ) diff --git a/kabi/x86_64/symvers-default b/kabi/x86_64/symvers-default index c6e4f62..4f3843b 100644 --- a/kabi/x86_64/symvers-default +++ b/kabi/x86_64/symvers-default @@ -1,4 +1,5 @@ 0x6e8a4fb7 ipv6_chk_custom_prefix vmlinux EXPORT_SYMBOL +0xedd17b31 sock_get_timeout vmlinux EXPORT_SYMBOL 0xd9908478 cros_ec_check_result vmlinux EXPORT_SYMBOL 0x55417264 unregister_vt_notifier vmlinux EXPORT_SYMBOL_GPL 0x69cc865c set_anon_super vmlinux EXPORT_SYMBOL @@ -327,6 +328,7 @@ 0xf8fe9089 tty_port_tty_set vmlinux EXPORT_SYMBOL 0x6a9aa98b tty_port_tty_get vmlinux EXPORT_SYMBOL 0xc58f842f devm_regulator_get vmlinux EXPORT_SYMBOL_GPL +0xc87225d6 devm_clk_get_optional_enabled vmlinux EXPORT_SYMBOL_GPL 0x02c656b6 acpi_enable_all_runtime_gpes vmlinux EXPORT_SYMBOL 0x4f1cd128 security_tun_dev_create vmlinux EXPORT_SYMBOL 0xe36ca952 fs_context_for_mount vmlinux EXPORT_SYMBOL @@ -1249,6 +1251,7 @@ 0x52402ced pldmfw_flash_image vmlinux EXPORT_SYMBOL 0x769cefb5 percpu_ref_switch_to_atomic vmlinux EXPORT_SYMBOL_GPL 0x6f618554 __blkg_prfill_u64 vmlinux EXPORT_SYMBOL_GPL +0x71227fa5 bio_start_io_acct_time vmlinux EXPORT_SYMBOL_GPL 0x8b5de578 vmf_insert_pfn vmlinux EXPORT_SYMBOL 0x40235c98 _raw_write_unlock vmlinux EXPORT_SYMBOL 0x42bed8d4 unix_gc_lock vmlinux EXPORT_SYMBOL @@ -1927,6 +1930,7 @@ 0x79af3847 udp_pre_connect vmlinux EXPORT_SYMBOL 0x94e50ad4 call_fib_notifier vmlinux EXPORT_SYMBOL 0x5952a7c2 sk_page_frag_refill vmlinux EXPORT_SYMBOL +0xaf6f213c devm_clk_get_enabled vmlinux EXPORT_SYMBOL_GPL 0xc697826d user_revoke vmlinux EXPORT_SYMBOL 0x24d8d7ac debugfs_create_dir vmlinux EXPORT_SYMBOL_GPL 0xa5e222a1 dcache_dir_lseek vmlinux EXPORT_SYMBOL @@ -2010,6 +2014,7 @@ 0x9d996e1a anon_transport_class_register vmlinux EXPORT_SYMBOL_GPL 0xf7438498 devm_krealloc vmlinux EXPORT_SYMBOL_GPL 0xb123340d virtqueue_get_used_addr vmlinux EXPORT_SYMBOL_GPL +0xa6d0e892 devm_clk_get_optional_prepared vmlinux EXPORT_SYMBOL_GPL 0x978d855e devm_phy_create vmlinux EXPORT_SYMBOL_GPL 0xcbd4898c fortify_panic vmlinux EXPORT_SYMBOL 0x258d2f76 net_dim_get_tx_moderation vmlinux EXPORT_SYMBOL @@ -2610,6 +2615,7 @@ 0xe5a98ac2 __netif_napi_del vmlinux EXPORT_SYMBOL 0xc9831ad7 flow_keys_dissector vmlinux EXPORT_SYMBOL 0xbb60618e ptp_convert_timestamp vmlinux EXPORT_SYMBOL +0xe668fef0 devm_clk_get_prepared vmlinux EXPORT_SYMBOL_GPL 0xba60b234 setup_fault_attr vmlinux EXPORT_SYMBOL_GPL 0xc16be39d iter_div_u64_rem vmlinux EXPORT_SYMBOL 0x5ec4aee6 put_sg_io_hdr vmlinux EXPORT_SYMBOL @@ -4700,6 +4706,7 @@ 0xc450602a __page_file_index vmlinux EXPORT_SYMBOL_GPL 0x538d5aa2 __irq_set_handler vmlinux EXPORT_SYMBOL_GPL 0xf2b81b64 arch_io_reserve_memtype_wc vmlinux EXPORT_SYMBOL +0x5bdb7603 sock_copy_user_timeval vmlinux EXPORT_SYMBOL 0x79e1d201 devm_regulator_get_optional vmlinux EXPORT_SYMBOL_GPL 0x22b33be3 iterate_fd vmlinux EXPORT_SYMBOL 0x7ceaf0d5 generic_handle_irq vmlinux EXPORT_SYMBOL_GPL @@ -7412,6 +7419,7 @@ 0xcfa7e913 posix_acl_valid vmlinux EXPORT_SYMBOL 0x070c8d14 invalidate_inode_buffers vmlinux EXPORT_SYMBOL 0xe55d3b23 PageMovable vmlinux EXPORT_SYMBOL +0xc3055d20 usleep_range_state vmlinux EXPORT_SYMBOL 0x1d77b0f8 unix_socket_table vmlinux EXPORT_SYMBOL_GPL 0xfd95cd96 nl_table vmlinux EXPORT_SYMBOL_GPL 0x410a4846 mipi_dsi_dcs_exit_sleep_mode vmlinux EXPORT_SYMBOL @@ -15377,6 +15385,7 @@ 0x07eb1f84 ocelot_port_vlan_filtering drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL 0x4a6ed376 mlxsw_core_port_fini drivers/net/ethernet/mellanox/mlxsw/mlxsw_core EXPORT_SYMBOL 0x62254534 mlx4_set_vf_vlan drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL +0x4755ee2b iscsi_suspend_rx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x467c4963 iscsi_suspend_tx drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x5e95a4b2 o2net_send_message_vec fs/ocfs2/cluster/ocfs2_nodemanager EXPORT_SYMBOL_GPL 0x7ec9b351 fuse_conn_get fs/fuse/fuse EXPORT_SYMBOL_GPL @@ -15470,6 +15479,7 @@ 0xe40b66ef mt76_wcid_alloc drivers/net/wireless/mediatek/mt76/mt76 EXPORT_SYMBOL_GPL 0xe4b818c3 phy_speed_to_str drivers/net/phy/libphy EXPORT_SYMBOL_GPL 0x7c9f0acc kvm_emulate_rdpmc arch/x86/kvm/kvm EXPORT_SYMBOL_GPL +0xeb4969db kvm_destroy_vcpus arch/x86/kvm/kvm EXPORT_SYMBOL_GPL 0xa61d4a13 snd_timer_stop sound/core/snd-timer EXPORT_SYMBOL 0x3448a0cf ata_sff_lost_interrupt drivers/ata/libata EXPORT_SYMBOL_GPL 0xa7c5f91f sdio_register_driver drivers/mmc/core/mmc_core EXPORT_SYMBOL_GPL @@ -16893,6 +16903,7 @@ 0xb84b138c iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi EXPORT_SYMBOL_GPL IWLWIFI 0xdcc9701d il_write_targ_mem drivers/net/wireless/intel/iwlegacy/iwlegacy EXPORT_SYMBOL 0x18d6bfb5 __ocelot_write_ix drivers/net/ethernet/mscc/mscc_ocelot_switch_lib EXPORT_SYMBOL_GPL +0x1371f94f iscsi_conn_queue_xmit drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0xd2b05e9a idxd_user_drv drivers/dma/idxd/idxd EXPORT_SYMBOL_GPL IDXD 0xb00db557 ieee80211_txq_schedule_start net/mac80211/mac80211 EXPORT_SYMBOL 0x0bc00f80 nf_nat_helper_try_module_get net/netfilter/nf_conntrack EXPORT_SYMBOL_GPL @@ -20979,6 +20990,7 @@ 0x58210e60 rtw_rate_section drivers/net/wireless/realtek/rtw88/rtw88_core EXPORT_SYMBOL 0xfbd44f8a init_atmel_card drivers/net/wireless/atmel/atmel EXPORT_SYMBOL 0xd110de20 drm_gem_objects_lookup drivers/gpu/drm/drm EXPORT_SYMBOL +0xfab33e4c enable_mmio_caching arch/x86/kvm/kvm EXPORT_SYMBOL_GPL 0x232cd6c3 rpc_killall_tasks net/sunrpc/sunrpc EXPORT_SYMBOL_GPL 0x04e27719 xt_compat_flush_offsets net/netfilter/x_tables EXPORT_SYMBOL_GPL 0x5a7b0262 snd_soc_of_parse_audio_simple_widgets sound/soc/snd-soc-core EXPORT_SYMBOL_GPL @@ -21603,6 +21615,7 @@ 0xd51ef92c rndis_tx_fixup drivers/net/usb/rndis_host EXPORT_SYMBOL_GPL 0x3e17f466 mdio_set_flag drivers/net/mdio EXPORT_SYMBOL 0x787d7eb2 iscsi_boot_create_acpitbl drivers/scsi/iscsi_boot_sysfs EXPORT_SYMBOL_GPL +0xc757be2a iscsi_conn_queue_recv drivers/scsi/libiscsi EXPORT_SYMBOL_GPL 0x7f95d144 drm_gem_shmem_dumb_create drivers/gpu/drm/drm EXPORT_SYMBOL_GPL 0xafc6748e drm_read drivers/gpu/drm/drm EXPORT_SYMBOL 0x1446b60a caif_client_register_refcnt net/caif/caif EXPORT_SYMBOL @@ -23326,6 +23339,7 @@ 0xf9a1e1fd __SCK__tp_func_vb2_v4l2_qbuf drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL 0x88a113d3 v4l2_fh_exit drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL 0xf086f3be v4l2_fh_init drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL +0x888f1844 typec_get_fw_cap drivers/usb/typec/typec EXPORT_SYMBOL_GPL 0xd3122f0b mlx4_mw_alloc drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0xddcd4249 mlx4_config_dev_retrieval drivers/net/ethernet/mellanox/mlx4/mlx4_core EXPORT_SYMBOL_GPL 0xb9a53852 llc_build_and_send_ui_pkt net/llc/llc EXPORT_SYMBOL diff --git a/patches.suse/0029-zram-do-not-lookup-algorithm-in-backends-table.patch b/patches.suse/0029-zram-do-not-lookup-algorithm-in-backends-table.patch deleted file mode 100644 index da3d8dd..0000000 --- a/patches.suse/0029-zram-do-not-lookup-algorithm-in-backends-table.patch +++ /dev/null @@ -1,100 +0,0 @@ -From dc89997264de565999a1cb55db3f295d3a8e457b Mon Sep 17 00:00:00 2001 -From: Sergey Senozhatsky -Date: Wed, 22 Jun 2022 11:35:01 +0900 -Subject: [PATCH] zram: do not lookup algorithm in backends table -Git-commit: dc89997264de565999a1cb55db3f295d3a8e457b -Patch-mainline: v6.0-rc1 -References: git-fixes - -Always use crypto_has_comp() so that crypto can lookup module, call -usermodhelper to load the modules, wait for usermodhelper to finish and so -on. Otherwise crypto will do all of these steps under CPU hot-plug lock -and this looks like too much stuff to handle under the CPU hot-plug lock. -Besides this can end up in a deadlock when usermodhelper triggers a code -path that attempts to lock the CPU hot-plug lock, that zram already holds. - -An example of such deadlock: - -- path A. zram grabs CPU hot-plug lock, execs /sbin/modprobe from crypto - and waits for modprobe to finish - -disksize_store - zcomp_create - __cpuhp_state_add_instance - __cpuhp_state_add_instance_cpuslocked - zcomp_cpu_up_prepare - crypto_alloc_base - crypto_alg_mod_lookup - call_usermodehelper_exec - wait_for_completion_killable - do_wait_for_common - schedule - -- path B. async work kthread that brings in scsi device. It wants to - register CPUHP states at some point, and it needs the CPU hot-plug - lock for that, which is owned by zram. - -async_run_entry_fn - scsi_probe_and_add_lun - scsi_mq_alloc_queue - blk_mq_init_queue - blk_mq_init_allocated_queue - blk_mq_realloc_hw_ctxs - __cpuhp_state_add_instance - __cpuhp_state_add_instance_cpuslocked - mutex_lock - schedule - -- path C. modprobe sleeps, waiting for all aync works to finish. - -load_module - do_init_module - async_synchronize_full - async_synchronize_cookie_domain - schedule - -[senozhatsky@chromium.org: add comment] - Link: https://lkml.kernel.org/r/20220624060606.1014474-1-senozhatsky@chromium.org -Link: https://lkml.kernel.org/r/20220622023501.517125-1-senozhatsky@chromium.org -Signed-off-by: Sergey Senozhatsky -Cc: Minchan Kim -Cc: Nitin Gupta -Signed-off-by: Andrew Morton -Signed-off-by: Coly Li - ---- - drivers/block/zram/zcomp.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c -index 052aa3f65514..0916de952e09 100644 ---- a/drivers/block/zram/zcomp.c -+++ b/drivers/block/zram/zcomp.c -@@ -63,12 +63,6 @@ static int zcomp_strm_init(struct zcomp_strm *zstrm, struct zcomp *comp) - - bool zcomp_available_algorithm(const char *comp) - { -- int i; -- -- i = sysfs_match_string(backends, comp); -- if (i >= 0) -- return true; -- - /* - * Crypto does not ignore a trailing new line symbol, - * so make sure you don't supply a string containing -@@ -217,6 +211,11 @@ struct zcomp *zcomp_create(const char *compress) - struct zcomp *comp; - int error; - -+ /* -+ * Crypto API will execute /sbin/modprobe if the compression module -+ * is not loaded yet. We must do it here, otherwise we are about to -+ * call /sbin/modprobe under CPU hot-plug lock. -+ */ - if (!zcomp_available_algorithm(compress)) - return ERR_PTR(-EINVAL); - --- -2.35.3 - diff --git a/patches.suse/ARM-dts-imx-Fix-pca9547-i2c-mux-node-name.patch b/patches.suse/ARM-dts-imx-Fix-pca9547-i2c-mux-node-name.patch new file mode 100644 index 0000000..1a050a3 --- /dev/null +++ b/patches.suse/ARM-dts-imx-Fix-pca9547-i2c-mux-node-name.patch @@ -0,0 +1,43 @@ +From f78985f9f58380eec37f82c8a2c765aa7670fc29 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Fri, 2 Dec 2022 17:49:18 +0100 +Subject: [PATCH] ARM: dts: imx: Fix pca9547 i2c-mux node name +Git-commit: f78985f9f58380eec37f82c8a2c765aa7670fc29 +Patch-mainline: v6.2-rc5 +References: git-fixes + +"make dtbs_check": + + arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: $nodename:0: 'i2c-switch@70' does not match '^(i2c-?)?mux' + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4', 'i2c@5', 'i2c@6', 'i2c@7' were unexpected) + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + +Fix this by renaming the PCA9547 node to "i2c-mux", to match the I2C bus +multiplexer/switch DT bindings and the Generic Names Recommendation in +the Devicetree Specification. + +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Shawn Guo +Acked-by: Takashi Iwai + +--- + arch/arm/boot/dts/imx53-ppd.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts +index 37d0cffea99c..70c4a4852256 100644 +--- a/arch/arm/boot/dts/imx53-ppd.dts ++++ b/arch/arm/boot/dts/imx53-ppd.dts +@@ -488,7 +488,7 @@ &i2c1 { + scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>; + status = "okay"; + +- i2c-switch@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9547"; + #address-cells = <1>; + #size-cells = <0>; +-- +2.35.3 + diff --git a/patches.suse/ARM-dts-vf610-Fix-pca9548-i2c-mux-node-names.patch b/patches.suse/ARM-dts-vf610-Fix-pca9548-i2c-mux-node-names.patch new file mode 100644 index 0000000..cbe7613 --- /dev/null +++ b/patches.suse/ARM-dts-vf610-Fix-pca9548-i2c-mux-node-names.patch @@ -0,0 +1,58 @@ +From 42825d1f269355d63554ab3c3762611e4d8053e9 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Fri, 2 Dec 2022 17:49:21 +0100 +Subject: [PATCH] ARM: dts: vf610: Fix pca9548 i2c-mux node names +Git-commit: 42825d1f269355d63554ab3c3762611e4d8053e9 +Patch-mainline: v6.2-rc5 +References: git-fixes + +"make dtbs_check": + + arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: $nodename:0: 'tca9548@70' does not match '^(i2c-?)?mux' + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4' were unexpected) + From schema: /scratch/geert/linux/linux-renesas/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + ... + +Fix this by renaming PCA9548 nodes to "i2c-mux", to match the I2C bus +multiplexer/switch DT bindings and the Generic Names Recommendation in +the Devicetree Specification. + +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Shawn Guo +Acked-by: Takashi Iwai + +--- + arch/arm/boot/dts/vf610-zii-dev-rev-b.dts | 2 +- + arch/arm/boot/dts/vf610-zii-dev-rev-c.dts | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +index 42ed4a04a12e..6280c5e86a12 100644 +--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts ++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +@@ -345,7 +345,7 @@ gpio6: io-expander@22 { + }; + + &i2c2 { +- tca9548@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9548"; + pinctrl-0 = <&pinctrl_i2c_mux_reset>; + pinctrl-names = "default"; +diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts +index f892977da9e4..c00d39562a10 100644 +--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts ++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts +@@ -340,7 +340,7 @@ eeprom@50 { + }; + + &i2c2 { +- tca9548@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9548"; + pinctrl-0 = <&pinctrl_i2c_mux_reset>; + pinctrl-names = "default"; +-- +2.35.3 + diff --git a/patches.suse/HID-playstation-sanity-check-DualSense-calibration-d.patch b/patches.suse/HID-playstation-sanity-check-DualSense-calibration-d.patch new file mode 100644 index 0000000..a2e160b --- /dev/null +++ b/patches.suse/HID-playstation-sanity-check-DualSense-calibration-d.patch @@ -0,0 +1,87 @@ +From ccf1e1626d37745d0a697db67407beec9ae9d4b8 Mon Sep 17 00:00:00 2001 +From: Roderick Colenbrander +Date: Thu, 5 Jan 2023 17:59:08 -0800 +Subject: [PATCH] HID: playstation: sanity check DualSense calibration data. +Git-commit: ccf1e1626d37745d0a697db67407beec9ae9d4b8 +Patch-mainline: v6.2-rc5 +References: git-fixes + +Make sure calibration values are defined to prevent potential kernel +crashes. This fixes a hypothetical issue for virtual or clone devices +inspired by a similar fix for DS4. + +Signed-off-by: Roderick Colenbrander +Signed-off-by: Jiri Kosina +Acked-by: Takashi Iwai + +--- + drivers/hid/hid-playstation.c | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c +index 1eba50b45cb1..27c40894acab 100644 +--- a/drivers/hid/hid-playstation.c ++++ b/drivers/hid/hid-playstation.c +@@ -944,6 +944,7 @@ ATTRIBUTE_GROUPS(ps_device); + + static int dualsense_get_calibration_data(struct dualsense *ds) + { ++ struct hid_device *hdev = ds->base.hdev; + short gyro_pitch_bias, gyro_pitch_plus, gyro_pitch_minus; + short gyro_yaw_bias, gyro_yaw_plus, gyro_yaw_minus; + short gyro_roll_bias, gyro_roll_plus, gyro_roll_minus; +@@ -954,6 +955,7 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + int speed_2x; + int range_2g; + int ret = 0; ++ int i; + uint8_t *buf; + + buf = kzalloc(DS_FEATURE_REPORT_CALIBRATION_SIZE, GFP_KERNEL); +@@ -1005,6 +1007,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + ds->gyro_calib_data[2].sens_numer = speed_2x*DS_GYRO_RES_PER_DEG_S; + ds->gyro_calib_data[2].sens_denom = gyro_roll_plus - gyro_roll_minus; + ++ /* ++ * Sanity check gyro calibration data. This is needed to prevent crashes ++ * during report handling of virtual, clone or broken devices not implementing ++ * calibration data properly. ++ */ ++ for (i = 0; i < ARRAY_SIZE(ds->gyro_calib_data); i++) { ++ if (ds->gyro_calib_data[i].sens_denom == 0) { ++ hid_warn(hdev, "Invalid gyro calibration data for axis (%d), disabling calibration.", ++ ds->gyro_calib_data[i].abs_code); ++ ds->gyro_calib_data[i].bias = 0; ++ ds->gyro_calib_data[i].sens_numer = DS_GYRO_RANGE; ++ ds->gyro_calib_data[i].sens_denom = S16_MAX; ++ } ++ } ++ + /* + * Set accelerometer calibration and normalization parameters. + * Data values will be normalized to 1/DS_ACC_RES_PER_G g. +@@ -1027,6 +1044,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + ds->accel_calib_data[2].sens_numer = 2*DS_ACC_RES_PER_G; + ds->accel_calib_data[2].sens_denom = range_2g; + ++ /* ++ * Sanity check accelerometer calibration data. This is needed to prevent crashes ++ * during report handling of virtual, clone or broken devices not implementing calibration ++ * data properly. ++ */ ++ for (i = 0; i < ARRAY_SIZE(ds->accel_calib_data); i++) { ++ if (ds->accel_calib_data[i].sens_denom == 0) { ++ hid_warn(hdev, "Invalid accelerometer calibration data for axis (%d), disabling calibration.", ++ ds->accel_calib_data[i].abs_code); ++ ds->accel_calib_data[i].bias = 0; ++ ds->accel_calib_data[i].sens_numer = DS_ACC_RANGE; ++ ds->accel_calib_data[i].sens_denom = S16_MAX; ++ } ++ } ++ + err_free: + kfree(buf); + return ret; +-- +2.35.3 + diff --git a/patches.suse/IB-hfi1-Fix-expected-receive-setup-error-exit-issues.patch b/patches.suse/IB-hfi1-Fix-expected-receive-setup-error-exit-issues.patch new file mode 100644 index 0000000..6a1c687 --- /dev/null +++ b/patches.suse/IB-hfi1-Fix-expected-receive-setup-error-exit-issues.patch @@ -0,0 +1,169 @@ +From e0c4a422f5246abefbf7c178ef99a1f2dc3c5f62 Mon Sep 17 00:00:00 2001 +From: Dean Luick +Date: Mon, 9 Jan 2023 12:31:21 -0500 +Subject: [PATCH 1/1] IB/hfi1: Fix expected receive setup error exit issues +Git-commit: e0c4a422f5246abefbf7c178ef99a1f2dc3c5f62 +Patch-mainline: v6.2-rc5 +References: git-fixes + +Fix three error exit issues in expected receive setup. +Re-arrange error exits to increase readability. + +Issues and fixes: +1. Possible missed page unpin if tidlist copyout fails and + not all pinned pages where made part of a TID. + Fix: Unpin the unused pages. + +2. Return success with unset return values tidcnt and length + when no pages were pinned. + Fix: Return -ENOSPC if no pages were pinned. + +3. Return success with unset return values tidcnt and length when + no rcvarray entries available. + Fix: Return -ENOSPC if no rcvarray entries are available. + +Fixes: 7e7a436ecb6e ("staging/hfi1: Add TID entry program function body") +Fixes: 97736f36dbeb ("IB/hfi1: Validate page aligned for a given virtual addres") +Fixes: f404ca4c7ea8 ("IB/hfi1: Refactor hfi_user_exp_rcv_setup() IOCTL") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167328548150.1472310.1492305874804187634.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/hfi1/user_exp_rcv.c | 83 ++++++++++++++--------- + 1 file changed, 50 insertions(+), 33 deletions(-) + +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +index d7487555d109..88df8ca4bb57 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +@@ -268,15 +268,14 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets), + GFP_KERNEL); + if (!tidbuf->psets) { +- kfree(tidbuf); +- return -ENOMEM; ++ ret = -ENOMEM; ++ goto fail_release_mem; + } + + pinned = pin_rcv_pages(fd, tidbuf); + if (pinned <= 0) { +- kfree(tidbuf->psets); +- kfree(tidbuf); +- return pinned; ++ ret = (pinned < 0) ? pinned : -ENOSPC; ++ goto fail_unpin; + } + + /* Find sets of physically contiguous pages */ +@@ -291,14 +290,16 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + fd->tid_used += pageset_count; + spin_unlock(&fd->tid_lock); + +- if (!pageset_count) +- goto bail; ++ if (!pageset_count) { ++ ret = -ENOSPC; ++ goto fail_unreserve; ++ } + + ngroups = pageset_count / dd->rcv_entries.group_size; + tidlist = kcalloc(pageset_count, sizeof(*tidlist), GFP_KERNEL); + if (!tidlist) { + ret = -ENOMEM; +- goto nomem; ++ goto fail_unreserve; + } + + tididx = 0; +@@ -394,44 +395,60 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + } + unlock: + mutex_unlock(&uctxt->exp_mutex); +-nomem: + hfi1_cdbg(TID, "total mapped: tidpairs:%u pages:%u (%d)", tididx, + mapped_pages, ret); ++ ++ /* fail if nothing was programmed, set error if none provided */ ++ if (tididx == 0) { ++ if (ret >= 0) ++ ret = -ENOSPC; ++ goto fail_unreserve; ++ } ++ + /* adjust reserved tid_used to actual count */ + spin_lock(&fd->tid_lock); + fd->tid_used -= pageset_count - tididx; + spin_unlock(&fd->tid_lock); +- if (tididx) { +- tinfo->tidcnt = tididx; +- tinfo->length = mapped_pages * PAGE_SIZE; + +- if (copy_to_user(u64_to_user_ptr(tinfo->tidlist), +- tidlist, sizeof(tidlist[0]) * tididx)) { +- /* +- * On failure to copy to the user level, we need to undo +- * everything done so far so we don't leak resources. +- */ +- tinfo->tidlist = (unsigned long)&tidlist; +- hfi1_user_exp_rcv_clear(fd, tinfo); +- tinfo->tidlist = 0; +- ret = -EFAULT; +- goto bail; +- } ++ /* unpin all pages not covered by a TID */ ++ unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages, pinned - mapped_pages, ++ false); ++ ++ tinfo->tidcnt = tididx; ++ tinfo->length = mapped_pages * PAGE_SIZE; ++ ++ if (copy_to_user(u64_to_user_ptr(tinfo->tidlist), ++ tidlist, sizeof(tidlist[0]) * tididx)) { ++ ret = -EFAULT; ++ goto fail_unprogram; + } + +- /* +- * If not everything was mapped (due to insufficient RcvArray entries, +- * for example), unpin all unmapped pages so we can pin them nex time. +- */ +- if (mapped_pages != pinned) +- unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages, +- (pinned - mapped_pages), false); +-bail: ++ kfree(tidbuf->pages); + kfree(tidbuf->psets); ++ kfree(tidbuf); + kfree(tidlist); ++ return 0; ++ ++fail_unprogram: ++ /* unprogram, unmap, and unpin all allocated TIDs */ ++ tinfo->tidlist = (unsigned long)tidlist; ++ hfi1_user_exp_rcv_clear(fd, tinfo); ++ tinfo->tidlist = 0; ++ pinned = 0; /* nothing left to unpin */ ++ pageset_count = 0; /* nothing left reserved */ ++fail_unreserve: ++ spin_lock(&fd->tid_lock); ++ fd->tid_used -= pageset_count; ++ spin_unlock(&fd->tid_lock); ++fail_unpin: ++ if (pinned > 0) ++ unpin_rcv_pages(fd, tidbuf, NULL, 0, pinned, false); ++fail_release_mem: + kfree(tidbuf->pages); ++ kfree(tidbuf->psets); + kfree(tidbuf); +- return ret > 0 ? 0 : ret; ++ kfree(tidlist); ++ return ret; + } + + int hfi1_user_exp_rcv_clear(struct hfi1_filedata *fd, +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/IB-hfi1-Immediately-remove-invalid-memory-from-hardw.patch b/patches.suse/IB-hfi1-Immediately-remove-invalid-memory-from-hardw.patch new file mode 100644 index 0000000..bf1e90c --- /dev/null +++ b/patches.suse/IB-hfi1-Immediately-remove-invalid-memory-from-hardw.patch @@ -0,0 +1,149 @@ +From 1c7edde1b5720ddb0aff5ca8c7f605a0f92526eb Mon Sep 17 00:00:00 2001 +From: Dean Luick +Date: Mon, 9 Jan 2023 12:31:26 -0500 +Subject: [PATCH 1/1] IB/hfi1: Immediately remove invalid memory from hardware +Git-commit: 1c7edde1b5720ddb0aff5ca8c7f605a0f92526eb +Patch-mainline: v6.2-rc5 +References: git-fixes + +When a user expected receive page is unmapped, it should be +immediately removed from hardware rather than depend on a +reaction from user space. + +Fixes: 2677a7680e77 ("IB/hfi1: Fix memory leak during unexpected shutdown") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167328548663.1472310.7871808081861622659.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/hfi1/user_exp_rcv.c | 43 +++++++++++++++-------- + drivers/infiniband/hw/hfi1/user_exp_rcv.h | 1 + + 2 files changed, 30 insertions(+), 14 deletions(-) + +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +index 88df8ca4bb57..f402af1e2903 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +@@ -28,8 +28,9 @@ static int program_rcvarray(struct hfi1_filedata *fd, struct tid_user_buf *, + unsigned int start, u16 count, + u32 *tidlist, unsigned int *tididx, + unsigned int *pmapped); +-static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo, +- struct tid_group **grp); ++static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo); ++static void __clear_tid_node(struct hfi1_filedata *fd, ++ struct tid_rb_node *node); + static void clear_tid_node(struct hfi1_filedata *fd, struct tid_rb_node *node); + + static const struct mmu_interval_notifier_ops tid_mn_ops = { +@@ -469,7 +470,7 @@ int hfi1_user_exp_rcv_clear(struct hfi1_filedata *fd, + + mutex_lock(&uctxt->exp_mutex); + for (tididx = 0; tididx < tinfo->tidcnt; tididx++) { +- ret = unprogram_rcvarray(fd, tidinfo[tididx], NULL); ++ ret = unprogram_rcvarray(fd, tidinfo[tididx]); + if (ret) { + hfi1_cdbg(TID, "Failed to unprogram rcv array %d", + ret); +@@ -723,6 +724,7 @@ static int set_rcvarray_entry(struct hfi1_filedata *fd, + } + + node->fdata = fd; ++ mutex_init(&node->invalidate_mutex); + node->phys = page_to_phys(pages[0]); + node->npages = npages; + node->rcventry = rcventry; +@@ -762,8 +764,7 @@ out_unmap: + return -EFAULT; + } + +-static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo, +- struct tid_group **grp) ++static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo) + { + struct hfi1_ctxtdata *uctxt = fd->uctxt; + struct hfi1_devdata *dd = uctxt->dd; +@@ -786,9 +787,6 @@ static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo, + if (!node || node->rcventry != (uctxt->expected_base + rcventry)) + return -EBADF; + +- if (grp) +- *grp = node->grp; +- + if (fd->use_mn) + mmu_interval_notifier_remove(&node->notifier); + cacheless_tid_rb_remove(fd, node); +@@ -796,23 +794,34 @@ static int unprogram_rcvarray(struct hfi1_filedata *fd, u32 tidinfo, + return 0; + } + +-static void clear_tid_node(struct hfi1_filedata *fd, struct tid_rb_node *node) ++static void __clear_tid_node(struct hfi1_filedata *fd, struct tid_rb_node *node) + { + struct hfi1_ctxtdata *uctxt = fd->uctxt; + struct hfi1_devdata *dd = uctxt->dd; + ++ mutex_lock(&node->invalidate_mutex); ++ if (node->freed) ++ goto done; ++ node->freed = true; ++ + trace_hfi1_exp_tid_unreg(uctxt->ctxt, fd->subctxt, node->rcventry, + node->npages, + node->notifier.interval_tree.start, node->phys, + node->dma_addr); + +- /* +- * Make sure device has seen the write before we unpin the +- * pages. +- */ ++ /* Make sure device has seen the write before pages are unpinned */ + hfi1_put_tid(dd, node->rcventry, PT_INVALID_FLUSH, 0, 0); + + unpin_rcv_pages(fd, NULL, node, 0, node->npages, true); ++done: ++ mutex_unlock(&node->invalidate_mutex); ++} ++ ++static void clear_tid_node(struct hfi1_filedata *fd, struct tid_rb_node *node) ++{ ++ struct hfi1_ctxtdata *uctxt = fd->uctxt; ++ ++ __clear_tid_node(fd, node); + + node->grp->used--; + node->grp->map &= ~(1 << (node->rcventry - node->grp->base)); +@@ -871,10 +880,16 @@ static bool tid_rb_invalidate(struct mmu_interval_notifier *mni, + if (node->freed) + return true; + ++ /* take action only if unmapping */ ++ if (range->event != MMU_NOTIFY_UNMAP) ++ return true; ++ + trace_hfi1_exp_tid_inval(uctxt->ctxt, fdata->subctxt, + node->notifier.interval_tree.start, + node->rcventry, node->npages, node->dma_addr); +- node->freed = true; ++ ++ /* clear the hardware rcvarray entry */ ++ __clear_tid_node(fdata, node); + + spin_lock(&fdata->invalid_lock); + if (fdata->invalid_tid_idx < uctxt->expected_count) { +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.h b/drivers/infiniband/hw/hfi1/user_exp_rcv.h +index 8c53e416bf84..2ddb3dac7d91 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.h ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.h +@@ -27,6 +27,7 @@ struct tid_user_buf { + struct tid_rb_node { + struct mmu_interval_notifier notifier; + struct hfi1_filedata *fdata; ++ struct mutex invalidate_mutex; /* covers hw removal */ + unsigned long phys; + struct tid_group *grp; + u32 rcventry; +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/IB-hfi1-Reject-a-zero-length-user-expected-buffer.patch b/patches.suse/IB-hfi1-Reject-a-zero-length-user-expected-buffer.patch new file mode 100644 index 0000000..f59ac7b --- /dev/null +++ b/patches.suse/IB-hfi1-Reject-a-zero-length-user-expected-buffer.patch @@ -0,0 +1,38 @@ +From 0a0a6e80472c98947d73c3d13bcd7d101895f55d Mon Sep 17 00:00:00 2001 +From: Dean Luick +Date: Mon, 9 Jan 2023 12:31:11 -0500 +Subject: [PATCH 1/1] IB/hfi1: Reject a zero-length user expected buffer +Git-commit: 0a0a6e80472c98947d73c3d13bcd7d101895f55d +Patch-mainline: v6.2-rc5 +References: git-fixes + +A zero length user buffer makes no sense and the code +does not handle it correctly. Instead, reject a +zero length as invalid. + +Fixes: 97736f36dbeb ("IB/hfi1: Validate page aligned for a given virtual addres") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167328547120.1472310.6362802432127399257.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/hfi1/user_exp_rcv.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +index 186d30291260..3c609b11e71c 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +@@ -256,6 +256,8 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + + if (!PAGE_ALIGNED(tinfo->vaddr)) + return -EINVAL; ++ if (tinfo->length == 0) ++ return -EINVAL; + + tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL); + if (!tidbuf) +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/IB-hfi1-Remove-user-expected-buffer-invalidate-race.patch b/patches.suse/IB-hfi1-Remove-user-expected-buffer-invalidate-race.patch new file mode 100644 index 0000000..be2d144 --- /dev/null +++ b/patches.suse/IB-hfi1-Remove-user-expected-buffer-invalidate-race.patch @@ -0,0 +1,173 @@ +From b3deec25847bda34e34d5d7be02f633caf000bd8 Mon Sep 17 00:00:00 2001 +From: Dean Luick +Date: Mon, 9 Jan 2023 12:31:31 -0500 +Subject: [PATCH 1/1] IB/hfi1: Remove user expected buffer invalidate race +Git-commit: b3deec25847bda34e34d5d7be02f633caf000bd8 +Patch-mainline: v6.2-rc5 +References: git-fixes + +During setup, there is a possible race between a page invalidate +and hardware programming. Add a covering invalidate over the user +target range during setup. If anything within that range is +invalidated during setup, fail the setup. Once set up, each +TID will have its own invalidate callback and invalidate. + +Fixes: 3889551db212 ("RDMA/hfi1: Use mmu_interval_notifier_insert for user_exp_rcv") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167328549178.1472310.9867497376936699488.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/hfi1/user_exp_rcv.c | 58 +++++++++++++++++++++-- + drivers/infiniband/hw/hfi1/user_exp_rcv.h | 2 + + 2 files changed, 55 insertions(+), 5 deletions(-) + +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +index f402af1e2903..b02f2f0809c8 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +@@ -23,6 +23,9 @@ static void cacheless_tid_rb_remove(struct hfi1_filedata *fdata, + static bool tid_rb_invalidate(struct mmu_interval_notifier *mni, + const struct mmu_notifier_range *range, + unsigned long cur_seq); ++static bool tid_cover_invalidate(struct mmu_interval_notifier *mni, ++ const struct mmu_notifier_range *range, ++ unsigned long cur_seq); + static int program_rcvarray(struct hfi1_filedata *fd, struct tid_user_buf *, + struct tid_group *grp, + unsigned int start, u16 count, +@@ -36,6 +39,9 @@ static void clear_tid_node(struct hfi1_filedata *fd, struct tid_rb_node *node); + static const struct mmu_interval_notifier_ops tid_mn_ops = { + .invalidate = tid_rb_invalidate, + }; ++static const struct mmu_interval_notifier_ops tid_cover_ops = { ++ .invalidate = tid_cover_invalidate, ++}; + + /* + * Initialize context and file private data needed for Expected +@@ -254,6 +260,7 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + tididx = 0, mapped, mapped_pages = 0; + u32 *tidlist = NULL; + struct tid_user_buf *tidbuf; ++ unsigned long mmu_seq = 0; + + if (!PAGE_ALIGNED(tinfo->vaddr)) + return -EINVAL; +@@ -264,6 +271,7 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + if (!tidbuf) + return -ENOMEM; + ++ mutex_init(&tidbuf->cover_mutex); + tidbuf->vaddr = tinfo->vaddr; + tidbuf->length = tinfo->length; + tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets), +@@ -273,6 +281,16 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + goto fail_release_mem; + } + ++ if (fd->use_mn) { ++ ret = mmu_interval_notifier_insert( ++ &tidbuf->notifier, current->mm, ++ tidbuf->vaddr, tidbuf->npages * PAGE_SIZE, ++ &tid_cover_ops); ++ if (ret) ++ goto fail_release_mem; ++ mmu_seq = mmu_interval_read_begin(&tidbuf->notifier); ++ } ++ + pinned = pin_rcv_pages(fd, tidbuf); + if (pinned <= 0) { + ret = (pinned < 0) ? pinned : -ENOSPC; +@@ -415,6 +433,20 @@ unlock: + unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages, pinned - mapped_pages, + false); + ++ if (fd->use_mn) { ++ /* check for an invalidate during setup */ ++ bool fail = false; ++ ++ mutex_lock(&tidbuf->cover_mutex); ++ fail = mmu_interval_read_retry(&tidbuf->notifier, mmu_seq); ++ mutex_unlock(&tidbuf->cover_mutex); ++ ++ if (fail) { ++ ret = -EBUSY; ++ goto fail_unprogram; ++ } ++ } ++ + tinfo->tidcnt = tididx; + tinfo->length = mapped_pages * PAGE_SIZE; + +@@ -424,6 +456,8 @@ unlock: + goto fail_unprogram; + } + ++ if (fd->use_mn) ++ mmu_interval_notifier_remove(&tidbuf->notifier); + kfree(tidbuf->pages); + kfree(tidbuf->psets); + kfree(tidbuf); +@@ -442,6 +476,8 @@ fail_unreserve: + fd->tid_used -= pageset_count; + spin_unlock(&fd->tid_lock); + fail_unpin: ++ if (fd->use_mn) ++ mmu_interval_notifier_remove(&tidbuf->notifier); + if (pinned > 0) + unpin_rcv_pages(fd, tidbuf, NULL, 0, pinned, false); + fail_release_mem: +@@ -740,11 +776,6 @@ static int set_rcvarray_entry(struct hfi1_filedata *fd, + &tid_mn_ops); + if (ret) + goto out_unmap; +- /* +- * FIXME: This is in the wrong order, the notifier should be +- * established before the pages are pinned by pin_rcv_pages. +- */ +- mmu_interval_read_begin(&node->notifier); + } + fd->entry_to_rb[node->rcventry - uctxt->expected_base] = node; + +@@ -919,6 +950,23 @@ static bool tid_rb_invalidate(struct mmu_interval_notifier *mni, + return true; + } + ++static bool tid_cover_invalidate(struct mmu_interval_notifier *mni, ++ const struct mmu_notifier_range *range, ++ unsigned long cur_seq) ++{ ++ struct tid_user_buf *tidbuf = ++ container_of(mni, struct tid_user_buf, notifier); ++ ++ /* take action only if unmapping */ ++ if (range->event == MMU_NOTIFY_UNMAP) { ++ mutex_lock(&tidbuf->cover_mutex); ++ mmu_interval_set_seq(mni, cur_seq); ++ mutex_unlock(&tidbuf->cover_mutex); ++ } ++ ++ return true; ++} ++ + static void cacheless_tid_rb_remove(struct hfi1_filedata *fdata, + struct tid_rb_node *tnode) + { +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.h b/drivers/infiniband/hw/hfi1/user_exp_rcv.h +index 2ddb3dac7d91..f8ee997d0050 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.h ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.h +@@ -16,6 +16,8 @@ struct tid_pageset { + }; + + struct tid_user_buf { ++ struct mmu_interval_notifier notifier; ++ struct mutex cover_mutex; + unsigned long vaddr; + unsigned long length; + unsigned int npages; +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/IB-hfi1-Reserve-user-expected-TIDs.patch b/patches.suse/IB-hfi1-Reserve-user-expected-TIDs.patch new file mode 100644 index 0000000..b5d22ad --- /dev/null +++ b/patches.suse/IB-hfi1-Reserve-user-expected-TIDs.patch @@ -0,0 +1,62 @@ +From ecf91551cdd2925ed6d9a9d99074fa5f67b90596 Mon Sep 17 00:00:00 2001 +From: Dean Luick +Date: Mon, 9 Jan 2023 12:31:16 -0500 +Subject: [PATCH 1/1] IB/hfi1: Reserve user expected TIDs +Git-commit: ecf91551cdd2925ed6d9a9d99074fa5f67b90596 +Patch-mainline: v6.2-rc5 +References: git-fixes + +To avoid a race, reserve the number of user expected +TIDs before setup. + +Fixes: 7e7a436ecb6e ("staging/hfi1: Add TID entry program function body") +Signed-off-by: Dean Luick +Signed-off-by: Dennis Dalessandro +Link: https://lore.kernel.org/r/167328547636.1472310.7419712824785353905.stgit@awfm-02.cornelisnetworks.com +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/hfi1/user_exp_rcv.c | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +index 3c609b11e71c..d7487555d109 100644 +--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c ++++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c +@@ -282,16 +282,13 @@ int hfi1_user_exp_rcv_setup(struct hfi1_filedata *fd, + /* Find sets of physically contiguous pages */ + tidbuf->n_psets = find_phys_blocks(tidbuf, pinned); + +- /* +- * We don't need to access this under a lock since tid_used is per +- * process and the same process cannot be in hfi1_user_exp_rcv_clear() +- * and hfi1_user_exp_rcv_setup() at the same time. +- */ ++ /* Reserve the number of expected tids to be used. */ + spin_lock(&fd->tid_lock); + if (fd->tid_used + tidbuf->n_psets > fd->tid_limit) + pageset_count = fd->tid_limit - fd->tid_used; + else + pageset_count = tidbuf->n_psets; ++ fd->tid_used += pageset_count; + spin_unlock(&fd->tid_lock); + + if (!pageset_count) +@@ -400,10 +397,11 @@ unlock: + nomem: + hfi1_cdbg(TID, "total mapped: tidpairs:%u pages:%u (%d)", tididx, + mapped_pages, ret); ++ /* adjust reserved tid_used to actual count */ ++ spin_lock(&fd->tid_lock); ++ fd->tid_used -= pageset_count - tididx; ++ spin_unlock(&fd->tid_lock); + if (tididx) { +- spin_lock(&fd->tid_lock); +- fd->tid_used += tididx; +- spin_unlock(&fd->tid_lock); + tinfo->tidcnt = tididx; + tinfo->length = mapped_pages * PAGE_SIZE; + +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/RDMA-core-Fix-ib-block-iterator-counter-overflow.patch b/patches.suse/RDMA-core-Fix-ib-block-iterator-counter-overflow.patch new file mode 100644 index 0000000..b5e5cd9 --- /dev/null +++ b/patches.suse/RDMA-core-Fix-ib-block-iterator-counter-overflow.patch @@ -0,0 +1,73 @@ +From: Yonatan Nachum +Date: Mon, 9 Jan 2023 13:37:11 +0000 +Subject: RDMA/core: Fix ib block iterator counter overflow +Patch-mainline: v6.2-rc5 +Git-commit: 0afec5e9cea732cb47014655685a2a47fb180c31 +References: bsc#1207878 + +When registering a new DMA MR after selecting the best aligned page size +for it, we iterate over the given sglist to split each entry to smaller, +aligned to the selected page size, DMA blocks. + +In given circumstances where the sg entry and page size fit certain +sizes and the sg entry is not aligned to the selected page size, the +total size of the aligned pages we need to cover the sg entry is >= 4GB. +Under this circumstances, while iterating page aligned blocks, the +counter responsible for counting how much we advanced from the start of +the sg entry is overflowed because its type is u32 and we pass 4GB in +size. This can lead to an infinite loop inside the iterator function +because the overflow prevents the counter to be larger +than the size of the sg entry. + +Fix the presented problem by changing the advancement condition to +eliminate overflow. + +Backtrace: +[ 192.374329] efa_reg_user_mr_dmabuf +[ 192.376783] efa_register_mr +[ 192.382579] pgsz_bitmap 0xfffff000 rounddown 0x80000000 +[ 192.386423] pg_sz [0x80000000] umem_length[0xc0000000] +[ 192.392657] start 0x0 length 0xc0000000 params.page_shift 31 params.page_num 3 +[ 192.399559] hp_cnt[3], pages_in_hp[524288] +[ 192.403690] umem->sgt_append.sgt.nents[1] +[ 192.407905] number entries: [1], pg_bit: [31] +[ 192.411397] biter->__sg_nents [1] biter->__sg [0000000008b0c5d8] +[ 192.415601] biter->__sg_advance [665837568] sg_dma_len[3221225472] +[ 192.419823] biter->__sg_nents [1] biter->__sg [0000000008b0c5d8] +[ 192.423976] biter->__sg_advance [2813321216] sg_dma_len[3221225472] +[ 192.428243] biter->__sg_nents [1] biter->__sg [0000000008b0c5d8] +[ 192.432397] biter->__sg_advance [665837568] sg_dma_len[3221225472] + +Fixes: a808273a495c ("RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks") +Signed-off-by: Yonatan Nachum +Link: https://lore.kernel.org/r/20230109133711.13678-1-ynachum@amazon.com +Signed-off-by: Leon Romanovsky +Acked-by: Thomas Bogendoerfer +Acked-by: Nicolas Morey +--- + drivers/infiniband/core/verbs.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/drivers/infiniband/core/verbs.c ++++ b/drivers/infiniband/core/verbs.c +@@ -2965,15 +2965,18 @@ EXPORT_SYMBOL(__rdma_block_iter_start); + bool __rdma_block_iter_next(struct ib_block_iter *biter) + { + unsigned int block_offset; ++ unsigned int sg_delta; + + if (!biter->__sg_nents || !biter->__sg) + return false; + + biter->__dma_addr = sg_dma_address(biter->__sg) + biter->__sg_advance; + block_offset = biter->__dma_addr & (BIT_ULL(biter->__pg_bit) - 1); +- biter->__sg_advance += BIT_ULL(biter->__pg_bit) - block_offset; ++ sg_delta = BIT_ULL(biter->__pg_bit) - block_offset; + +- if (biter->__sg_advance >= sg_dma_len(biter->__sg)) { ++ if (sg_dma_len(biter->__sg) - biter->__sg_advance > sg_delta) { ++ biter->__sg_advance += sg_delta; ++ } else { + biter->__sg_advance = 0; + biter->__sg = sg_next(biter->__sg); + biter->__sg_nents--; diff --git a/patches.suse/RDMA-mlx5-Fix-mlx5_ib_get_hw_stats-when-used-for-dev.patch b/patches.suse/RDMA-mlx5-Fix-mlx5_ib_get_hw_stats-when-used-for-dev.patch new file mode 100644 index 0000000..2caf634 --- /dev/null +++ b/patches.suse/RDMA-mlx5-Fix-mlx5_ib_get_hw_stats-when-used-for-dev.patch @@ -0,0 +1,111 @@ +From 38b50aa44495d5eb4218f0b82fc2da76505cec53 Mon Sep 17 00:00:00 2001 +From: Shay Drory +Date: Wed, 28 Dec 2022 14:56:09 +0200 +Subject: [PATCH 1/1] RDMA/mlx5: Fix mlx5_ib_get_hw_stats when used for device +Git-commit: 38b50aa44495d5eb4218f0b82fc2da76505cec53 +Patch-mainline: v6.2-rc3 +References: git-fixes + +Currently, when mlx5_ib_get_hw_stats() is used for device (port_num = 0), +there is a special handling in order to use the correct counters, but, +port_num is being passed down the stack without any change. Also, some +functions assume that port_num >=1. As a result, the following oops can +occur. + + BUG: unable to handle page fault for address: ffff89510294f1a8 + #PF: supervisor write access in kernel mode + #PF: error_code(0x0002) - not-present page + PGD 0 P4D 0 + Oops: 0002 [#1] SMP + CPU: 8 PID: 1382 Comm: devlink Tainted: G W 6.1.0-rc4_for_upstream_base_2022_11_10_16_12 #1 + Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 + RIP: 0010:_raw_spin_lock+0xc/0x20 + Call Trace: + + mlx5_ib_get_native_port_mdev+0x73/0xe0 [mlx5_ib] + do_get_hw_stats.constprop.0+0x109/0x160 [mlx5_ib] + mlx5_ib_get_hw_stats+0xad/0x180 [mlx5_ib] + ib_setup_device_attrs+0xf0/0x290 [ib_core] + ib_register_device+0x3bb/0x510 [ib_core] + ? atomic_notifier_chain_register+0x67/0x80 + __mlx5_ib_add+0x2b/0x80 [mlx5_ib] + mlx5r_probe+0xb8/0x150 [mlx5_ib] + ? auxiliary_match_id+0x6a/0x90 + auxiliary_bus_probe+0x3c/0x70 + ? driver_sysfs_add+0x6b/0x90 + really_probe+0xcd/0x380 + __driver_probe_device+0x80/0x170 + driver_probe_device+0x1e/0x90 + __device_attach_driver+0x7d/0x100 + ? driver_allows_async_probing+0x60/0x60 + ? driver_allows_async_probing+0x60/0x60 + bus_for_each_drv+0x7b/0xc0 + __device_attach+0xbc/0x200 + bus_probe_device+0x87/0xa0 + device_add+0x404/0x940 + ? dev_set_name+0x53/0x70 + __auxiliary_device_add+0x43/0x60 + add_adev+0x99/0xe0 [mlx5_core] + mlx5_attach_device+0xc8/0x120 [mlx5_core] + mlx5_load_one_devl_locked+0xb2/0xe0 [mlx5_core] + devlink_reload+0x133/0x250 + devlink_nl_cmd_reload+0x480/0x570 + ? devlink_nl_pre_doit+0x44/0x2b0 + genl_family_rcv_msg_doit.isra.0+0xc2/0x110 + genl_rcv_msg+0x180/0x2b0 + ? devlink_nl_cmd_region_read_dumpit+0x540/0x540 + ? devlink_reload+0x250/0x250 + ? devlink_put+0x50/0x50 + ? genl_family_rcv_msg_doit.isra.0+0x110/0x110 + netlink_rcv_skb+0x54/0x100 + genl_rcv+0x24/0x40 + netlink_unicast+0x1f6/0x2c0 + netlink_sendmsg+0x237/0x490 + sock_sendmsg+0x33/0x40 + __sys_sendto+0x103/0x160 + ? handle_mm_fault+0x10e/0x290 + ? do_user_addr_fault+0x1c0/0x5f0 + __x64_sys_sendto+0x25/0x30 + do_syscall_64+0x3d/0x90 + entry_SYSCALL_64_after_hwframe+0x46/0xb0 + +Fix it by setting port_num to 1 in order to get device status and remove +unused variable. + +Fixes: aac4492ef23a ("IB/mlx5: Update counter implementation for dual port RoCE") +Link: https://lore.kernel.org/r/98b82994c3cd3fa593b8a75ed3f3901e208beb0f.1672231736.git.leonro@nvidia.com +Signed-off-by: Shay Drory +Reviewed-by: Patrisious Haddad +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/mlx5/counters.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx5/counters.c b/drivers/infiniband/hw/mlx5/counters.c +index 945758f39523..3e1272695d99 100644 +--- a/drivers/infiniband/hw/mlx5/counters.c ++++ b/drivers/infiniband/hw/mlx5/counters.c +@@ -278,7 +278,6 @@ static int do_get_hw_stats(struct ib_device *ibdev, + const struct mlx5_ib_counters *cnts = get_counters(dev, port_num - 1); + struct mlx5_core_dev *mdev; + int ret, num_counters; +- u32 mdev_port_num; + + if (!stats) + return -EINVAL; +@@ -299,8 +298,9 @@ static int do_get_hw_stats(struct ib_device *ibdev, + } + + if (MLX5_CAP_GEN(dev->mdev, cc_query_allowed)) { +- mdev = mlx5_ib_get_native_port_mdev(dev, port_num, +- &mdev_port_num); ++ if (!port_num) ++ port_num = 1; ++ mdev = mlx5_ib_get_native_port_mdev(dev, port_num, NULL); + if (!mdev) { + /* If port is not affiliated yet, its in down state + * which doesn't have any counters yet, so it would be +-- +2.38.0.1.gee35aeee4b76 + diff --git a/patches.suse/RDMA-mlx5-Fix-validation-of-max_rd_atomic-caps-for-D.patch b/patches.suse/RDMA-mlx5-Fix-validation-of-max_rd_atomic-caps-for-D.patch new file mode 100644 index 0000000..78a0980 --- /dev/null +++ b/patches.suse/RDMA-mlx5-Fix-validation-of-max_rd_atomic-caps-for-D.patch @@ -0,0 +1,94 @@ +From 8de8482fe5732fbef4f5af82bc0c0362c804cd1f Mon Sep 17 00:00:00 2001 +From: Maor Gottlieb +Date: Wed, 28 Dec 2022 14:56:10 +0200 +Subject: [PATCH 1/1] RDMA/mlx5: Fix validation of max_rd_atomic caps for DC +Git-commit: 8de8482fe5732fbef4f5af82bc0c0362c804cd1f +Patch-mainline: v6.2-rc3 +References: git-fixes + +Currently, when modifying DC, we validate max_rd_atomic user attribute +against the RC cap, validate against DC. RC and DC QP types have different +device limitations. + +This can cause userspace created DC QPs to malfunction. + +Fixes: c32a4f296e1d ("IB/mlx5: Add support for DC Initiator QP") +Link: https://lore.kernel.org/r/0c5aee72cea188c3bb770f4207cce7abc9b6fc74.1672231736.git.leonro@nvidia.com +Signed-off-by: Maor Gottlieb +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/hw/mlx5/qp.c | 49 +++++++++++++++++++++++---------- + 1 file changed, 35 insertions(+), 14 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c +index 40d9410ec303..cf953d23d18d 100644 +--- a/drivers/infiniband/hw/mlx5/qp.c ++++ b/drivers/infiniband/hw/mlx5/qp.c +@@ -4502,6 +4502,40 @@ static bool mlx5_ib_modify_qp_allowed(struct mlx5_ib_dev *dev, + return false; + } + ++static int validate_rd_atomic(struct mlx5_ib_dev *dev, struct ib_qp_attr *attr, ++ int attr_mask, enum ib_qp_type qp_type) ++{ ++ int log_max_ra_res; ++ int log_max_ra_req; ++ ++ if (qp_type == MLX5_IB_QPT_DCI) { ++ log_max_ra_res = 1 << MLX5_CAP_GEN(dev->mdev, ++ log_max_ra_res_dc); ++ log_max_ra_req = 1 << MLX5_CAP_GEN(dev->mdev, ++ log_max_ra_req_dc); ++ } else { ++ log_max_ra_res = 1 << MLX5_CAP_GEN(dev->mdev, ++ log_max_ra_res_qp); ++ log_max_ra_req = 1 << MLX5_CAP_GEN(dev->mdev, ++ log_max_ra_req_qp); ++ } ++ ++ if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC && ++ attr->max_rd_atomic > log_max_ra_res) { ++ mlx5_ib_dbg(dev, "invalid max_rd_atomic value %d\n", ++ attr->max_rd_atomic); ++ return false; ++ } ++ ++ if (attr_mask & IB_QP_MAX_DEST_RD_ATOMIC && ++ attr->max_dest_rd_atomic > log_max_ra_req) { ++ mlx5_ib_dbg(dev, "invalid max_dest_rd_atomic value %d\n", ++ attr->max_dest_rd_atomic); ++ return false; ++ } ++ return true; ++} ++ + int mlx5_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + int attr_mask, struct ib_udata *udata) + { +@@ -4589,21 +4623,8 @@ int mlx5_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC && +- attr->max_rd_atomic > +- (1 << MLX5_CAP_GEN(dev->mdev, log_max_ra_res_qp))) { +- mlx5_ib_dbg(dev, "invalid max_rd_atomic value %d\n", +- attr->max_rd_atomic); +- goto out; +- } +- +- if (attr_mask & IB_QP_MAX_DEST_RD_ATOMIC && +- attr->max_dest_rd_atomic > +- (1 << MLX5_CAP_GEN(dev->mdev, log_max_ra_req_qp))) { +- mlx5_ib_dbg(dev, "invalid max_dest_rd_atomic value %d\n", +- attr->max_dest_rd_atomic); ++ if (!validate_rd_atomic(dev, attr, attr_mask, qp_type)) + goto out; +- } + + if (cur_state == new_state && cur_state == IB_QPS_RESET) { + err = 0; +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/RDMA-rxe-Prevent-faulty-rkey-generation.patch b/patches.suse/RDMA-rxe-Prevent-faulty-rkey-generation.patch new file mode 100644 index 0000000..dcbb4d5 --- /dev/null +++ b/patches.suse/RDMA-rxe-Prevent-faulty-rkey-generation.patch @@ -0,0 +1,52 @@ +From 1aefe5c177c1922119afb4ee443ddd6ac3140b37 Mon Sep 17 00:00:00 2001 +From: Daisuke Matsuda +Date: Tue, 20 Dec 2022 17:08:48 +0900 +Subject: [PATCH 1/1] RDMA/rxe: Prevent faulty rkey generation +Git-commit: 1aefe5c177c1922119afb4ee443ddd6ac3140b37 +Patch-mainline: v6.2-rc5 +References: git-fixes + +If you create MRs more than 0x10000 times after loading the module, +responder starts to reply NAKs for RDMA/Atomic operations because of rkey +violation detected in check_rkey(). The root cause is that rkeys are +incremented each time a new MR is created and the value overflows into the +range reserved for MWs. + +This commit also increases the value of RXE_MAX_MW that has been limited +unlike other parameters. + +Fixes: 0994a1bcd5f7 ("RDMA/rxe: Bump up default maximum values used via uverbs") +Link: https://lore.kernel.org/r/20221220080848.253785-2-matsuda-daisuke@fujitsu.com +Signed-off-by: Daisuke Matsuda +Tested-by: Li Zhijian +Reviewed-by: Li Zhijian +Signed-off-by: Jason Gunthorpe +Acked-by: Nicolas Morey +--- + drivers/infiniband/sw/rxe/rxe_param.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/infiniband/sw/rxe/rxe_param.h b/drivers/infiniband/sw/rxe/rxe_param.h +index a754fc902e3d..7b41d79e72b2 100644 +--- a/drivers/infiniband/sw/rxe/rxe_param.h ++++ b/drivers/infiniband/sw/rxe/rxe_param.h +@@ -98,11 +98,11 @@ enum rxe_device_param { + RXE_MAX_SRQ = DEFAULT_MAX_VALUE - RXE_MIN_SRQ_INDEX, + + RXE_MIN_MR_INDEX = 0x00000001, +- RXE_MAX_MR_INDEX = DEFAULT_MAX_VALUE, +- RXE_MAX_MR = DEFAULT_MAX_VALUE - RXE_MIN_MR_INDEX, +- RXE_MIN_MW_INDEX = 0x00010001, +- RXE_MAX_MW_INDEX = 0x00020000, +- RXE_MAX_MW = 0x00001000, ++ RXE_MAX_MR_INDEX = DEFAULT_MAX_VALUE >> 1, ++ RXE_MAX_MR = RXE_MAX_MR_INDEX - RXE_MIN_MR_INDEX, ++ RXE_MIN_MW_INDEX = RXE_MAX_MR_INDEX + 1, ++ RXE_MAX_MW_INDEX = DEFAULT_MAX_VALUE, ++ RXE_MAX_MW = RXE_MAX_MW_INDEX - RXE_MIN_MW_INDEX, + + RXE_MAX_PKT_PER_ACK = 64, + +-- +2.39.1.1.gbe015eda0162 + diff --git a/patches.suse/RDMA-srp-Move-large-values-to-a-new-enum-for-gcc13.patch b/patches.suse/RDMA-srp-Move-large-values-to-a-new-enum-for-gcc13.patch new file mode 100644 index 0000000..f6d1257 --- /dev/null +++ b/patches.suse/RDMA-srp-Move-large-values-to-a-new-enum-for-gcc13.patch @@ -0,0 +1,65 @@ +From 56c5dab20a6391604df9521f812c01d1e3fe1bd0 Mon Sep 17 00:00:00 2001 +From: "Jiri Slaby (SUSE)" +Date: Mon, 12 Dec 2022 13:04:11 +0100 +Subject: [PATCH 1/1] RDMA/srp: Move large values to a new enum for gcc13 +Git-commit: 56c5dab20a6391604df9521f812c01d1e3fe1bd0 +Patch-mainline: v6.2-rc3 +References: git-fixes + +Since gcc13, each member of an enum has the same type as the enum [1]. And +that is inherited from its members. Provided these two: + SRP_TAG_NO_REQ = ~0U, + SRP_TAG_TSK_MGMT = 1U << 31 +all other members are unsigned ints. + +Esp. with SRP_MAX_SGE and SRP_TSK_MGMT_SQ_SIZE and their use in min(), +this results in the following warnings: + include/linux/minmax.h:20:35: error: comparison of distinct pointer types lacks a cast + drivers/infiniband/ulp/srp/ib_srp.c:563:42: note: in expansion of macro 'min' + + include/linux/minmax.h:20:35: error: comparison of distinct pointer types lacks a cast + drivers/infiniband/ulp/srp/ib_srp.c:2369:27: note: in expansion of macro 'min' + +So move the large values away to a separate enum, so that they don't +affect other members. + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36113 + +Link: https://lore.kernel.org/r/20221212120411.13750-1-jirislaby@kernel.org +Signed-off-by: Jiri Slaby (SUSE) +Reviewed-by: Bart Van Assche +Signed-off-by: Leon Romanovsky +Acked-by: Nicolas Morey +--- + drivers/infiniband/ulp/srp/ib_srp.h | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/infiniband/ulp/srp/ib_srp.h b/drivers/infiniband/ulp/srp/ib_srp.h +index 00b0068fda20..5d94db453df3 100644 +--- a/drivers/infiniband/ulp/srp/ib_srp.h ++++ b/drivers/infiniband/ulp/srp/ib_srp.h +@@ -62,9 +62,6 @@ enum { + SRP_DEFAULT_CMD_SQ_SIZE = SRP_DEFAULT_QUEUE_SIZE - SRP_RSP_SQ_SIZE - + SRP_TSK_MGMT_SQ_SIZE, + +- SRP_TAG_NO_REQ = ~0U, +- SRP_TAG_TSK_MGMT = 1U << 31, +- + SRP_MAX_PAGES_PER_MR = 512, + + SRP_MAX_ADD_CDB_LEN = 16, +@@ -79,6 +76,11 @@ enum { + sizeof(struct srp_imm_buf), + }; + ++enum { ++ SRP_TAG_NO_REQ = ~0U, ++ SRP_TAG_TSK_MGMT = BIT(31), ++}; ++ + enum srp_target_state { + SRP_TARGET_SCANNING, + SRP_TARGET_LIVE, +-- +2.38.0.1.gee35aeee4b76 + diff --git a/patches.suse/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-SDHC.patch b/patches.suse/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-SDHC.patch new file mode 100644 index 0000000..7c833a1 --- /dev/null +++ b/patches.suse/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-SDHC.patch @@ -0,0 +1,44 @@ +From ef10d57936ead5e817ef7cea6a87531085e77773 Mon Sep 17 00:00:00 2001 +From: Krzysztof Kozlowski +Date: Sun, 4 Dec 2022 10:44:17 +0100 +Subject: [PATCH] arm64: dts: imx8mq-thor96: fix no-mmc property for SDHCI +Git-commit: ef10d57936ead5e817ef7cea6a87531085e77773 +Patch-mainline: v6.2-rc5 +References: git-fixes + +There is no "no-emmc" property, so intention for SD/SDIO only nodes was +to use "no-mmc". + +Signed-off-by: Krzysztof Kozlowski +Signed-off-by: Shawn Guo +Acked-by: Takashi Iwai + +--- + arch/arm64/boot/dts/freescale/imx8mq-thor96.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts +index 5d5aa6537225..6e6182709d22 100644 +--- a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts ++++ b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts +@@ -339,7 +339,7 @@ &usdhc1 { + bus-width = <4>; + non-removable; + no-sd; +- no-emmc; ++ no-mmc; + status = "okay"; + + brcmf: wifi@1 { +@@ -359,7 +359,7 @@ &usdhc2 { + cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; + bus-width = <4>; + no-sdio; +- no-emmc; ++ no-mmc; + disable-wp; + status = "okay"; + }; +-- +2.35.3 + diff --git a/patches.suse/dmaengine-imx-sdma-Fix-a-possible-memory-leak-in-sdm.patch b/patches.suse/dmaengine-imx-sdma-Fix-a-possible-memory-leak-in-sdm.patch new file mode 100644 index 0000000..e024f00 --- /dev/null +++ b/patches.suse/dmaengine-imx-sdma-Fix-a-possible-memory-leak-in-sdm.patch @@ -0,0 +1,49 @@ +From 1417f59ac0b02130ee56c0c50794b9b257be3d17 Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Wed, 30 Nov 2022 17:08:00 +0800 +Subject: [PATCH] dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init +Git-commit: 1417f59ac0b02130ee56c0c50794b9b257be3d17 +Patch-mainline: v6.2-rc5 +References: git-fixes + +If the function sdma_load_context() fails, the sdma_desc will be +freed, but the allocated desc->bd is forgot to be freed. + +We already met the sdma_load_context() failure case and the log as +Below: +[ 450.699064] imx-sdma 30bd0000.dma-controller: Timeout waiting for CH0 ready +... + +In this case, the desc->bd will not be freed without this change. + +Signed-off-by: Hui Wang +Reviewed-by: Sascha Hauer +Link: https://lore.kernel.org/r/20221130090800.102035-1-hui.wang@canonical.com +Signed-off-by: Vinod Koul +Acked-by: Takashi Iwai + +--- + drivers/dma/imx-sdma.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c +index fbea5f62dd98..b926abe4fa43 100644 +--- a/drivers/dma/imx-sdma.c ++++ b/drivers/dma/imx-sdma.c +@@ -1521,10 +1521,12 @@ static struct sdma_desc *sdma_transfer_init(struct sdma_channel *sdmac, + sdma_config_ownership(sdmac, false, true, false); + + if (sdma_load_context(sdmac)) +- goto err_desc_out; ++ goto err_bd_out; + + return desc; + ++err_bd_out: ++ sdma_free_bd(desc); + err_desc_out: + kfree(desc); + err_out: +-- +2.35.3 + diff --git a/patches.suse/extcon-usbc-tusb320-fix-kernel-doc-warning.patch b/patches.suse/extcon-usbc-tusb320-fix-kernel-doc-warning.patch new file mode 100644 index 0000000..2abab1a --- /dev/null +++ b/patches.suse/extcon-usbc-tusb320-fix-kernel-doc-warning.patch @@ -0,0 +1,36 @@ +From 08099ecd9216219f51cc82637f06797cf81890b6 Mon Sep 17 00:00:00 2001 +From: Rong Chen +Date: Tue, 6 Sep 2022 12:04:29 +0800 +Subject: [PATCH] extcon: usbc-tusb320: fix kernel-doc warning +Git-commit: 08099ecd9216219f51cc82637f06797cf81890b6 +Patch-mainline: v6.1-rc1 +References: git-fixes + +Fix the warning: +drivers/extcon/extcon-usbc-tusb320.c:19: warning: expecting prototype +for drivers/extcon/extcon-tusb320.c(). Prototype was for TUSB320_REG8() +instead + +Reported-by: kernel test robot +Signed-off-by: Rong Chen +Signed-off-by: Chanwoo Choi +Acked-by: Takashi Iwai + +--- + drivers/extcon/extcon-usbc-tusb320.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/extcon/extcon-usbc-tusb320.c b/drivers/extcon/extcon-usbc-tusb320.c +index edb8c3f997c9..41041ff0fadb 100644 +--- a/drivers/extcon/extcon-usbc-tusb320.c ++++ b/drivers/extcon/extcon-usbc-tusb320.c +@@ -1,5 +1,5 @@ + // SPDX-License-Identifier: GPL-2.0 +-/** ++/* + * drivers/extcon/extcon-tusb320.c - TUSB320 extcon driver + * + * Copyright (C) 2020 National Instruments Corporation +-- +2.35.3 + diff --git a/patches.suse/fbcon-Check-font-dimension-limits.patch b/patches.suse/fbcon-Check-font-dimension-limits.patch new file mode 100644 index 0000000..dd24580 --- /dev/null +++ b/patches.suse/fbcon-Check-font-dimension-limits.patch @@ -0,0 +1,55 @@ +From 2b09d5d364986f724f17001ccfe4126b9b43a0be Mon Sep 17 00:00:00 2001 +From: Samuel Thibault +Date: Sun, 29 Jan 2023 16:17:40 +0100 +Subject: [PATCH] fbcon: Check font dimension limits +Git-commit: 2b09d5d364986f724f17001ccfe4126b9b43a0be +Patch-mainline: v6.2-rc7 +References: git-fixes + +blit_x and blit_y are u32, so fbcon currently cannot support fonts +larger than 32x32. + +The 32x32 case also needs shifting an unsigned int, to properly set bit +31, otherwise we get "UBSAN: shift-out-of-bounds in fbcon_set_font", +as reported on: + +http://lore.kernel.org/all/IA1PR07MB98308653E259A6F2CE94A4AFABCE9@IA1PR07MB9830.namprd07.prod.outlook.com +Kernel Branch: 6.2.0-rc5-next-20230124 +Kernel config: https://drive.google.com/file/d/1F-LszDAizEEH0ZX0HcSR06v5q8FPl2Uv/view?usp=sharing +Reproducer: https://drive.google.com/file/d/1mP1jcLBY7vWCNM60OMf-ogw-urQRjNrm/view?usp=sharing + +Reported-by: Sanan Hasanov +Signed-off-by: Samuel Thibault +Fixes: 2d2699d98492 ("fbcon: font setting should check limitation of driver") +Cc: stable@vger.kernel.org +Tested-by: Miko Larsson +Reviewed-by: Greg Kroah-Hartman +Signed-off-by: Helge Deller +Acked-by: Takashi Iwai + +--- + drivers/video/fbdev/core/fbcon.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c +index 14a7d404062c..1b14c21af2b7 100644 +--- a/drivers/video/fbdev/core/fbcon.c ++++ b/drivers/video/fbdev/core/fbcon.c +@@ -2495,9 +2495,12 @@ static int fbcon_set_font(struct vc_data *vc, struct console_font *font, + h > FBCON_SWAP(info->var.rotate, info->var.yres, info->var.xres)) + return -EINVAL; + ++ if (font->width > 32 || font->height > 32) ++ return -EINVAL; ++ + /* Make sure drawing engine can handle the font */ +- if (!(info->pixmap.blit_x & (1 << (font->width - 1))) || +- !(info->pixmap.blit_y & (1 << (font->height - 1)))) ++ if (!(info->pixmap.blit_x & BIT(font->width - 1)) || ++ !(info->pixmap.blit_y & BIT(font->height - 1))) + return -EINVAL; + + /* Make sure driver can handle the font length */ +-- +2.35.3 + diff --git a/patches.suse/fpga-stratix10-soc-Fix-return-value-check-in-s10_ops.patch b/patches.suse/fpga-stratix10-soc-Fix-return-value-check-in-s10_ops.patch new file mode 100644 index 0000000..2c591f9 --- /dev/null +++ b/patches.suse/fpga-stratix10-soc-Fix-return-value-check-in-s10_ops.patch @@ -0,0 +1,44 @@ +From 65ea840afd508194b0ee903256162aa87e46ec30 Mon Sep 17 00:00:00 2001 +From: Zheng Yongjun +Date: Sat, 26 Nov 2022 07:14:30 +0000 +Subject: [PATCH] fpga: stratix10-soc: Fix return value check in s10_ops_write_init() +Git-commit: 65ea840afd508194b0ee903256162aa87e46ec30 +Patch-mainline: v6.2-rc7 +References: git-fixes + +In case of error, the function stratix10_svc_allocate_memory() +returns ERR_PTR() and never returns NULL. The NULL test in the +return value check should be replaced with IS_ERR(). + +Fixes: e7eef1d7633a ("fpga: add intel stratix10 soc fpga manager driver") +Signed-off-by: Zheng Yongjun +Reviewed-by: Russ Weight +Cc: stable@vger.kernel.org +Acked-by: Xu Yilun +Link: https://lore.kernel.org/r/20221126071430.19540-1-zhengyongjun3@huawei.com +Signed-off-by: Xu Yilun +Acked-by: Takashi Iwai + +--- + drivers/fpga/stratix10-soc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/fpga/stratix10-soc.c b/drivers/fpga/stratix10-soc.c +index 357cea58ec98..f7f01982a512 100644 +--- a/drivers/fpga/stratix10-soc.c ++++ b/drivers/fpga/stratix10-soc.c +@@ -213,9 +213,9 @@ static int s10_ops_write_init(struct fpga_manager *mgr, + /* Allocate buffers from the service layer's pool. */ + for (i = 0; i < NUM_SVC_BUFS; i++) { + kbuf = stratix10_svc_allocate_memory(priv->chan, SVC_BUF_SIZE); +- if (!kbuf) { ++ if (IS_ERR(kbuf)) { + s10_free_buffers(mgr); +- ret = -ENOMEM; ++ ret = PTR_ERR(kbuf); + goto init_done; + } + +-- +2.35.3 + diff --git a/patches.suse/iio-adc-berlin2-adc-Add-missing-of_node_put-in-error.patch b/patches.suse/iio-adc-berlin2-adc-Add-missing-of_node_put-in-error.patch new file mode 100644 index 0000000..51918f0 --- /dev/null +++ b/patches.suse/iio-adc-berlin2-adc-Add-missing-of_node_put-in-error.patch @@ -0,0 +1,37 @@ +From cbd3a0153cd18a2cbef6bf3cf31bb406c3fc9f55 Mon Sep 17 00:00:00 2001 +From: Xiongfeng Wang +Date: Tue, 29 Nov 2022 10:03:16 +0800 +Subject: [PATCH] iio: adc: berlin2-adc: Add missing of_node_put() in error path +Git-commit: cbd3a0153cd18a2cbef6bf3cf31bb406c3fc9f55 +Patch-mainline: v6.2-rc7 +References: git-fixes + +of_get_parent() will return a device_node pointer with refcount +incremented. We need to use of_node_put() on it when done. Add the +missing of_node_put() in the error path of berlin2_adc_probe(); + +Fixes: 70f1937911ca ("iio: adc: add support for Berlin") +Signed-off-by: Xiongfeng Wang +Link: https://lore.kernel.org/r/20221129020316.191731-1-wangxiongfeng2@huawei.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/adc/berlin2-adc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/iio/adc/berlin2-adc.c ++++ b/drivers/iio/adc/berlin2-adc.c +@@ -289,8 +289,10 @@ static int berlin2_adc_probe(struct plat + int ret; + + indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv)); +- if (!indio_dev) ++ if (!indio_dev) { ++ of_node_put(parent_np); + return -ENOMEM; ++ } + + priv = iio_priv(indio_dev); + platform_set_drvdata(pdev, indio_dev); diff --git a/patches.suse/iio-adc-stm32-dfsdm-fill-module-aliases.patch b/patches.suse/iio-adc-stm32-dfsdm-fill-module-aliases.patch new file mode 100644 index 0000000..868780a --- /dev/null +++ b/patches.suse/iio-adc-stm32-dfsdm-fill-module-aliases.patch @@ -0,0 +1,37 @@ +From cc3304052a89ab6ac887ed9224420a27e3d354e1 Mon Sep 17 00:00:00 2001 +From: Olivier Moysan +Date: Fri, 2 Dec 2022 16:28:48 +0100 +Subject: [PATCH] iio: adc: stm32-dfsdm: fill module aliases +Git-commit: cc3304052a89ab6ac887ed9224420a27e3d354e1 +Patch-mainline: v6.2-rc7 +References: git-fixes + +When STM32 DFSDM driver is built as module, no modalias information +is available. This prevents module to be loaded by udev. +Add MODULE_DEVICE_TABLE() to fill module aliases. + +Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support") +Signed-off-by: Olivier Moysan +Link: https://lore.kernel.org/r/20221202152848.45585-1-olivier.moysan@foss.st.com +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/adc/stm32-dfsdm-adc.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c +index 6d21ea84fa82..a428bdb567d5 100644 +--- a/drivers/iio/adc/stm32-dfsdm-adc.c ++++ b/drivers/iio/adc/stm32-dfsdm-adc.c +@@ -1520,6 +1520,7 @@ static const struct of_device_id stm32_dfsdm_adc_match[] = { + }, + {} + }; ++MODULE_DEVICE_TABLE(of, stm32_dfsdm_adc_match); + + static int stm32_dfsdm_adc_probe(struct platform_device *pdev) + { +-- +2.35.3 + diff --git a/patches.suse/iio-adc-twl6030-Enable-measurement-of-VAC.patch b/patches.suse/iio-adc-twl6030-Enable-measurement-of-VAC.patch new file mode 100644 index 0000000..8a755a6 --- /dev/null +++ b/patches.suse/iio-adc-twl6030-Enable-measurement-of-VAC.patch @@ -0,0 +1,39 @@ +From bffb7d9d1a3dbd09e083b88aefd093b3b10abbfb Mon Sep 17 00:00:00 2001 +From: Andreas Kemnade +Date: Sat, 17 Dec 2022 23:13:05 +0100 +Subject: [PATCH] iio:adc:twl6030: Enable measurement of VAC +Git-commit: bffb7d9d1a3dbd09e083b88aefd093b3b10abbfb +Patch-mainline: v6.2-rc7 +References: git-fixes + +VAC needs to be wired up to produce proper measurements, +without this change only near zero values are reported. + +Reported-by: kernel test robot +Reported-by: Julia Lawall +Fixes: 1696f36482e7 ("iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver") +Signed-off-by: Andreas Kemnade +Link: https://lore.kernel.org/r/20221217221305.671117-1-andreas@kemnade.info +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/adc/twl6030-gpadc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c +index 40438e5b4970..32873fb5f367 100644 +--- a/drivers/iio/adc/twl6030-gpadc.c ++++ b/drivers/iio/adc/twl6030-gpadc.c +@@ -952,7 +952,7 @@ static int twl6030_gpadc_probe(struct platform_device *pdev) + } + + ret = twl_i2c_write_u8(TWL6030_MODULE_ID0, +- VBAT_MEAS | BB_MEAS | BB_MEAS, ++ VBAT_MEAS | BB_MEAS | VAC_MEAS, + TWL6030_MISC1); + if (ret < 0) { + dev_err(dev, "failed to wire up inputs\n"); +-- +2.35.3 + diff --git a/patches.suse/iio-adc-twl6030-Enable-measurements-of-VUSB-VBAT-and.patch b/patches.suse/iio-adc-twl6030-Enable-measurements-of-VUSB-VBAT-and.patch new file mode 100644 index 0000000..f2f8d3b --- /dev/null +++ b/patches.suse/iio-adc-twl6030-Enable-measurements-of-VUSB-VBAT-and.patch @@ -0,0 +1,75 @@ +From f804bd0dc28683a93a60f271aaefb2fc5b0853dd Mon Sep 17 00:00:00 2001 +From: Andreas Kemnade +Date: Thu, 1 Dec 2022 19:16:35 +0100 +Subject: [PATCH] iio:adc:twl6030: Enable measurements of VUSB, VBAT and others +Git-commit: f804bd0dc28683a93a60f271aaefb2fc5b0853dd +Patch-mainline: v6.2-rc7 +References: git-fixes + +Some inputs need to be wired up to produce proper measurements, +without this change only near zero values are reported. + +Signed-off-by: Andreas Kemnade +Fixes: 1696f36482e70 ("iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver") +Link: https://lore.kernel.org/r/20221201181635.3522962-1-andreas@kemnade.info +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/adc/twl6030-gpadc.c | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c +index f53e8558b560..40438e5b4970 100644 +--- a/drivers/iio/adc/twl6030-gpadc.c ++++ b/drivers/iio/adc/twl6030-gpadc.c +@@ -57,6 +57,18 @@ + #define TWL6030_GPADCS BIT(1) + #define TWL6030_GPADCR BIT(0) + ++#define USB_VBUS_CTRL_SET 0x04 ++#define USB_ID_CTRL_SET 0x06 ++ ++#define TWL6030_MISC1 0xE4 ++#define VBUS_MEAS 0x01 ++#define ID_MEAS 0x01 ++ ++#define VAC_MEAS 0x04 ++#define VBAT_MEAS 0x02 ++#define BB_MEAS 0x01 ++ ++ + /** + * struct twl6030_chnl_calib - channel calibration + * @gain: slope coefficient for ideal curve +@@ -927,6 +939,26 @@ static int twl6030_gpadc_probe(struct platform_device *pdev) + return ret; + } + ++ ret = twl_i2c_write_u8(TWL_MODULE_USB, VBUS_MEAS, USB_VBUS_CTRL_SET); ++ if (ret < 0) { ++ dev_err(dev, "failed to wire up inputs\n"); ++ return ret; ++ } ++ ++ ret = twl_i2c_write_u8(TWL_MODULE_USB, ID_MEAS, USB_ID_CTRL_SET); ++ if (ret < 0) { ++ dev_err(dev, "failed to wire up inputs\n"); ++ return ret; ++ } ++ ++ ret = twl_i2c_write_u8(TWL6030_MODULE_ID0, ++ VBAT_MEAS | BB_MEAS | BB_MEAS, ++ TWL6030_MISC1); ++ if (ret < 0) { ++ dev_err(dev, "failed to wire up inputs\n"); ++ return ret; ++ } ++ + indio_dev->name = DRIVER_NAME; + indio_dev->info = &twl6030_gpadc_iio_info; + indio_dev->modes = INDIO_DIRECT_MODE; +-- +2.35.3 + diff --git a/patches.suse/iio-hid-fix-the-retval-in-accel_3d_capture_sample.patch b/patches.suse/iio-hid-fix-the-retval-in-accel_3d_capture_sample.patch new file mode 100644 index 0000000..e22c30b --- /dev/null +++ b/patches.suse/iio-hid-fix-the-retval-in-accel_3d_capture_sample.patch @@ -0,0 +1,37 @@ +From f7b23d1c35d8b8de1425bdfccaefd01f3b7c9d1c Mon Sep 17 00:00:00 2001 +From: Dmitry Perchanov +Date: Wed, 11 Jan 2023 14:22:10 +0200 +Subject: [PATCH] iio: hid: fix the retval in accel_3d_capture_sample +Git-commit: f7b23d1c35d8b8de1425bdfccaefd01f3b7c9d1c +Patch-mainline: v6.2-rc7 +References: git-fixes + +Return value should be zero for success. This was forgotten for timestamp +feature. Verified on RealSense cameras. + +Fixes: a96cd0f901ee ("iio: accel: hid-sensor-accel-3d: Add timestamp") +Signed-off-by: Dmitry Perchanov +Link: https://lore.kernel.org/r/a6dc426498221c81fa71045b41adf782ebd42136.camel@intel.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index a2def6f9380a..5eac7ea19993 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -280,6 +280,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; +-- +2.35.3 + diff --git a/patches.suse/iio-hid-fix-the-retval-in-gyro_3d_capture_sample.patch b/patches.suse/iio-hid-fix-the-retval-in-gyro_3d_capture_sample.patch new file mode 100644 index 0000000..eae26f3 --- /dev/null +++ b/patches.suse/iio-hid-fix-the-retval-in-gyro_3d_capture_sample.patch @@ -0,0 +1,37 @@ +From eb50cd5bfdac61627a5026566cf3b90ced7b141c Mon Sep 17 00:00:00 2001 +From: Dmitry Perchanov +Date: Wed, 11 Jan 2023 14:24:25 +0200 +Subject: [PATCH] iio: hid: fix the retval in gyro_3d_capture_sample +Git-commit: eb50cd5bfdac61627a5026566cf3b90ced7b141c +Patch-mainline: v6.2-rc7 +References: git-fixes + +Return value should be zero for success. This was forgotten for timestamp +feature. Verified on RealSense cameras. + +Fixes: 4648cbd8fb92 ("iio: hid-sensor-gyro-3d: Add timestamp channel") +Signed-off-by: Dmitry Perchanov +Link: https://lore.kernel.org/r/7c1809dc74eb2f58a20595f4d02e76934f8e9219.camel@intel.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/gyro/hid-sensor-gyro-3d.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c +index 8f0ad022c7f1..698c50da1f10 100644 +--- a/drivers/iio/gyro/hid-sensor-gyro-3d.c ++++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c +@@ -231,6 +231,7 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + gyro_state->timestamp = + hid_sensor_convert_timestamp(&gyro_state->common_attributes, + *(s64 *)raw_data); ++ ret = 0; + break; + default: + break; +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-ACCEL-measurement-range-selecti.patch b/patches.suse/iio-imu-fxos8700-fix-ACCEL-measurement-range-selecti.patch new file mode 100644 index 0000000..0a6f4b1 --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-ACCEL-measurement-range-selecti.patch @@ -0,0 +1,107 @@ +From 9d61c1820598a5ea474576ed55318a6dadee37ed Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Thu, 8 Dec 2022 15:19:09 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix ACCEL measurement range selection +Git-commit: 9d61c1820598a5ea474576ed55318a6dadee37ed +Patch-mainline: v6.2-rc7 +References: git-fixes + +When device is in active mode, it fails to set an ACCEL full-scale +range(2g/4g/8g) in FXOS8700_XYZ_DATA_CFG. This is not align with the +datasheet, but it is a fxos8700 chip behavior. + +Keep the device in standby mode before setting ACCEL full-scale range +into FXOS8700_XYZ_DATA_CFG in chip initialization phase and setting +scale phase. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20221208071911.2405922-6-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 41 +++++++++++++++++++++++++++------ + 1 file changed, 34 insertions(+), 7 deletions(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 06948a8cc315..ec622123ccac 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -345,7 +345,8 @@ static int fxos8700_set_active_mode(struct fxos8700_data *data, + static int fxos8700_set_scale(struct fxos8700_data *data, + enum fxos8700_sensor t, int uscale) + { +- int i; ++ int i, ret, val; ++ bool active_mode; + static const int scale_num = ARRAY_SIZE(fxos8700_accel_scale); + struct device *dev = regmap_get_device(data->regmap); + +@@ -354,6 +355,25 @@ static int fxos8700_set_scale(struct fxos8700_data *data, + return -EINVAL; + } + ++ /* ++ * When device is in active mode, it failed to set an ACCEL ++ * full-scale range(2g/4g/8g) in FXOS8700_XYZ_DATA_CFG. ++ * This is not align with the datasheet, but it is a fxos8700 ++ * chip behavier. Set the device in standby mode before setting ++ * an ACCEL full-scale range. ++ */ ++ ret = regmap_read(data->regmap, FXOS8700_CTRL_REG1, &val); ++ if (ret) ++ return ret; ++ ++ active_mode = val & FXOS8700_ACTIVE; ++ if (active_mode) { ++ ret = regmap_write(data->regmap, FXOS8700_CTRL_REG1, ++ val & ~FXOS8700_ACTIVE); ++ if (ret) ++ return ret; ++ } ++ + for (i = 0; i < scale_num; i++) + if (fxos8700_accel_scale[i].uscale == uscale) + break; +@@ -361,8 +381,12 @@ static int fxos8700_set_scale(struct fxos8700_data *data, + if (i == scale_num) + return -EINVAL; + +- return regmap_write(data->regmap, FXOS8700_XYZ_DATA_CFG, ++ ret = regmap_write(data->regmap, FXOS8700_XYZ_DATA_CFG, + fxos8700_accel_scale[i].bits); ++ if (ret) ++ return ret; ++ return regmap_write(data->regmap, FXOS8700_CTRL_REG1, ++ active_mode); + } + + static int fxos8700_get_scale(struct fxos8700_data *data, +@@ -631,14 +655,17 @@ static int fxos8700_chip_init(struct fxos8700_data *data, bool use_spi) + if (ret) + return ret; + +- /* Max ODR (800Hz individual or 400Hz hybrid), active mode */ +- ret = regmap_write(data->regmap, FXOS8700_CTRL_REG1, +- FXOS8700_CTRL_ODR_MAX | FXOS8700_ACTIVE); ++ /* ++ * Set max full-scale range (+/-8G) for ACCEL sensor in chip ++ * initialization then activate the device. ++ */ ++ ret = regmap_write(data->regmap, FXOS8700_XYZ_DATA_CFG, MODE_8G); + if (ret) + return ret; + +- /* Set for max full-scale range (+/-8G) */ +- return regmap_write(data->regmap, FXOS8700_XYZ_DATA_CFG, MODE_8G); ++ /* Max ODR (800Hz individual or 400Hz hybrid), active mode */ ++ return regmap_write(data->regmap, FXOS8700_CTRL_REG1, ++ FXOS8700_CTRL_ODR_MAX | FXOS8700_ACTIVE); + } + + static void fxos8700_chip_uninit(void *data) +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-IMU-data-bits-returned-to-user-.patch b/patches.suse/iio-imu-fxos8700-fix-IMU-data-bits-returned-to-user-.patch new file mode 100644 index 0000000..55fe18d --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-IMU-data-bits-returned-to-user-.patch @@ -0,0 +1,78 @@ +From a53f945879c0cb9de3a4c05a665f5157884b5208 Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Thu, 8 Dec 2022 15:19:08 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix IMU data bits returned to user space +Git-commit: a53f945879c0cb9de3a4c05a665f5157884b5208 +Patch-mainline: v6.2-rc7 +References: git-fixes + +ACCEL output data registers contain the X-axis, Y-axis, and Z-axis +14-bit left-justified sample data and MAGN output data registers +contain the X-axis, Y-axis, and Z-axis 16-bit sample data. The ACCEL +raw register output data should be divided by 4 before sent to +userspace. + +Apply a 2 bits signed right shift to the raw data from ACCEL output +data register but keep that from MAGN sensor as the origin. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20221208071911.2405922-5-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index b62bc92bbacc..06948a8cc315 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -394,6 +394,7 @@ static int fxos8700_get_data(struct fxos8700_data *data, int chan_type, + int axis, int *val) + { + u8 base, reg; ++ s16 tmp; + int ret; + + /* +@@ -421,8 +422,33 @@ static int fxos8700_get_data(struct fxos8700_data *data, int chan_type, + /* Convert axis to buffer index */ + reg = axis - IIO_MOD_X; + ++ /* ++ * Convert to native endianness. The accel data and magn data ++ * are signed, so a forced type conversion is needed. ++ */ ++ tmp = be16_to_cpu(data->buf[reg]); ++ ++ /* ++ * ACCEL output data registers contain the X-axis, Y-axis, and Z-axis ++ * 14-bit left-justified sample data and MAGN output data registers ++ * contain the X-axis, Y-axis, and Z-axis 16-bit sample data. Apply ++ * a signed 2 bits right shift to the readback raw data from ACCEL ++ * output data register and keep that from MAGN sensor as the origin. ++ * Value should be extended to 32 bit. ++ */ ++ switch (chan_type) { ++ case IIO_ACCEL: ++ tmp = tmp >> 2; ++ break; ++ case IIO_MAGN: ++ /* Nothing to do */ ++ break; ++ default: ++ return -EINVAL; ++ } ++ + /* Convert to native endianness */ +- *val = sign_extend32(be16_to_cpu(data->buf[reg]), 15); ++ *val = sign_extend32(tmp, 15); + + return 0; + } +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-MAGN-sensor-scale-and-unit.patch b/patches.suse/iio-imu-fxos8700-fix-MAGN-sensor-scale-and-unit.patch new file mode 100644 index 0000000..cc38c11 --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-MAGN-sensor-scale-and-unit.patch @@ -0,0 +1,61 @@ +From 2acd031347f645871959a799238a7caf6803aa18 Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Wed, 18 Jan 2023 15:42:27 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix MAGN sensor scale and unit +Git-commit: 2acd031347f645871959a799238a7caf6803aa18 +Patch-mainline: v6.2-rc7 +References: git-fixes + ++/-1200uT is a MAGN sensor full measurement range. Magnetometer scale +is the magnetic sensitivity parameter. It is referenced as 0.1uT +according to datasheet and magnetometer channel unit is Gauss in +sysfs-bus-iio documentation. Gauss and uTesla unit conversion +relationship as follows: 0.1uT = 0.001Gs. + +Set magnetometer scale and available magnetometer scale as fixed 0.001Gs. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20230118074227.1665098-5-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 880b9bcb80ff..6d189c4b9ff9 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -351,7 +351,7 @@ static int fxos8700_set_scale(struct fxos8700_data *data, + struct device *dev = regmap_get_device(data->regmap); + + if (t == FXOS8700_MAGN) { +- dev_err(dev, "Magnetometer scale is locked at 1200uT\n"); ++ dev_err(dev, "Magnetometer scale is locked at 0.001Gs\n"); + return -EINVAL; + } + +@@ -396,7 +396,7 @@ static int fxos8700_get_scale(struct fxos8700_data *data, + static const int scale_num = ARRAY_SIZE(fxos8700_accel_scale); + + if (t == FXOS8700_MAGN) { +- *uscale = 1200; /* Magnetometer is locked at 1200uT */ ++ *uscale = 1000; /* Magnetometer is locked at 0.001Gs */ + return 0; + } + +@@ -588,7 +588,7 @@ static IIO_CONST_ATTR(in_accel_sampling_frequency_available, + static IIO_CONST_ATTR(in_magn_sampling_frequency_available, + "1.5625 6.25 12.5 50 100 200 400 800"); + static IIO_CONST_ATTR(in_accel_scale_available, "0.000244 0.000488 0.000976"); +-static IIO_CONST_ATTR(in_magn_scale_available, "0.000001200"); ++static IIO_CONST_ATTR(in_magn_scale_available, "0.001000"); + + static struct attribute *fxos8700_attrs[] = { + &iio_const_attr_in_accel_sampling_frequency_available.dev_attr.attr, +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-failed-initialization-ODR-mode-.patch b/patches.suse/iio-imu-fxos8700-fix-failed-initialization-ODR-mode-.patch new file mode 100644 index 0000000..b42f0be --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-failed-initialization-ODR-mode-.patch @@ -0,0 +1,45 @@ +From eb6d8f8705bc19141bac81d8161461f9e256948a Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Wed, 18 Jan 2023 15:42:25 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix failed initialization ODR mode assignment +Git-commit: eb6d8f8705bc19141bac81d8161461f9e256948a +Patch-mainline: v6.2-rc7 +References: git-fixes + +The absence of correct offset leads a failed initialization ODR mode +assignment. + +Select MAX ODR mode as the initialization ODR mode by field mask and +FIELD_PREP. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20230118074227.1665098-3-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index caa474402d53..514411d5ddff 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -664,8 +664,10 @@ static int fxos8700_chip_init(struct fxos8700_data *data, bool use_spi) + return ret; + + /* Max ODR (800Hz individual or 400Hz hybrid), active mode */ +- return regmap_write(data->regmap, FXOS8700_CTRL_REG1, +- FXOS8700_CTRL_ODR_MAX | FXOS8700_ACTIVE); ++ return regmap_update_bits(data->regmap, FXOS8700_CTRL_REG1, ++ FXOS8700_CTRL_ODR_MSK | FXOS8700_ACTIVE, ++ FIELD_PREP(FXOS8700_CTRL_ODR_MSK, FXOS8700_CTRL_ODR_MAX) | ++ FXOS8700_ACTIVE); + } + + static void fxos8700_chip_uninit(void *data) +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-incomplete-ACCEL-and-MAGN-chann.patch b/patches.suse/iio-imu-fxos8700-fix-incomplete-ACCEL-and-MAGN-chann.patch new file mode 100644 index 0000000..cd390fe --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-incomplete-ACCEL-and-MAGN-chann.patch @@ -0,0 +1,43 @@ +From 37a94d86d7050665d6d01378b2c916c28e454f10 Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Thu, 8 Dec 2022 15:19:07 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix incomplete ACCEL and MAGN channels readback +Git-commit: 37a94d86d7050665d6d01378b2c916c28e454f10 +Patch-mainline: v6.2-rc7 +References: git-fixes + +The length of ACCEL and MAGN 3-axis channels output data is 6 byte +individually. However block only read 3 bytes data into buffer from +ACCEL or MAGN output data registers every time. It causes an incomplete +ACCEL and MAGN channels readback. + +Set correct value count for regmap_bulk_read to get 6 bytes ACCEL and +MAGN channels readback. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20221208071911.2405922-4-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 977eb7dc7dbd..b62bc92bbacc 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -414,7 +414,7 @@ static int fxos8700_get_data(struct fxos8700_data *data, int chan_type, + + /* Block read 6 bytes of device output registers to avoid data loss */ + ret = regmap_bulk_read(data->regmap, base, data->buf, +- FXOS8700_DATA_BUF_SIZE); ++ sizeof(data->buf)); + if (ret) + return ret; + +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-incorrect-ODR-mode-readback.patch b/patches.suse/iio-imu-fxos8700-fix-incorrect-ODR-mode-readback.patch new file mode 100644 index 0000000..c07ab91 --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-incorrect-ODR-mode-readback.patch @@ -0,0 +1,76 @@ +From 78ad6864e9e012cdba7c353d044d21ffcfd5f34b Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Wed, 18 Jan 2023 15:42:24 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix incorrect ODR mode readback +Git-commit: 78ad6864e9e012cdba7c353d044d21ffcfd5f34b +Patch-mainline: v6.2-rc7 +References: git-fixes + +The absence of a correct offset leads an incorrect ODR mode +readback after use a hexadecimal number to mark the value from +FXOS8700_CTRL_REG1. + +Get ODR mode by field mask and FIELD_GET clearly and conveniently. +And attach other additional fix for keeping the original code logic +and a good readability. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20230118074227.1665098-2-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index ec622123ccac..caa474402d53 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -144,9 +145,9 @@ + #define FXOS8700_NVM_DATA_BNK0 0xa7 + + /* Bit definitions for FXOS8700_CTRL_REG1 */ +-#define FXOS8700_CTRL_ODR_MSK 0x38 + #define FXOS8700_CTRL_ODR_MAX 0x00 + #define FXOS8700_CTRL_ODR_MIN GENMASK(4, 3) ++#define FXOS8700_CTRL_ODR_MSK GENMASK(5, 3) + + /* Bit definitions for FXOS8700_M_CTRL_REG1 */ + #define FXOS8700_HMS_MASK GENMASK(1, 0) +@@ -508,10 +509,9 @@ static int fxos8700_set_odr(struct fxos8700_data *data, enum fxos8700_sensor t, + if (i >= odr_num) + return -EINVAL; + +- return regmap_update_bits(data->regmap, +- FXOS8700_CTRL_REG1, +- FXOS8700_CTRL_ODR_MSK + FXOS8700_ACTIVE, +- fxos8700_odr[i].bits << 3 | active_mode); ++ val &= ~FXOS8700_CTRL_ODR_MSK; ++ val |= FIELD_PREP(FXOS8700_CTRL_ODR_MSK, fxos8700_odr[i].bits) | FXOS8700_ACTIVE; ++ return regmap_write(data->regmap, FXOS8700_CTRL_REG1, val); + } + + static int fxos8700_get_odr(struct fxos8700_data *data, enum fxos8700_sensor t, +@@ -524,7 +524,7 @@ static int fxos8700_get_odr(struct fxos8700_data *data, enum fxos8700_sensor t, + if (ret) + return ret; + +- val &= FXOS8700_CTRL_ODR_MSK; ++ val = FIELD_GET(FXOS8700_CTRL_ODR_MSK, val); + + for (i = 0; i < odr_num; i++) + if (val == fxos8700_odr[i].bits) +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-map-label-of-channel-type-to-MA.patch b/patches.suse/iio-imu-fxos8700-fix-map-label-of-channel-type-to-MA.patch new file mode 100644 index 0000000..15403ba --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-map-label-of-channel-type-to-MA.patch @@ -0,0 +1,42 @@ +From 429e1e8ec696e0e7a0742904e3dc2f83b7b23dfb Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Thu, 8 Dec 2022 15:19:05 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix map label of channel type to MAGN sensor +Git-commit: 429e1e8ec696e0e7a0742904e3dc2f83b7b23dfb +Patch-mainline: v6.2-rc7 +References: git-fixes + +FXOS8700 is an IMU sensor with ACCEL sensor and MAGN sensor. +Sensor type is indexed by corresponding channel type in a switch. +IIO_ANGL_VEL channel type mapped to MAGN sensor has caused confusion. + +Fix the mapping label of "IIO_MAGN" channel type instead of +"IIO_ANGL_VEL" channel type to MAGN sensor. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20221208071911.2405922-2-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 423cfe526f2a..235b02b2f4e5 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -320,7 +320,7 @@ static enum fxos8700_sensor fxos8700_to_sensor(enum iio_chan_type iio_type) + switch (iio_type) { + case IIO_ACCEL: + return FXOS8700_ACCEL; +- case IIO_ANGL_VEL: ++ case IIO_MAGN: + return FXOS8700_MAGN; + default: + return -EINVAL; +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-fix-swapped-ACCEL-and-MAGN-channels.patch b/patches.suse/iio-imu-fxos8700-fix-swapped-ACCEL-and-MAGN-channels.patch new file mode 100644 index 0000000..cd35624 --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-fix-swapped-ACCEL-and-MAGN-channels.patch @@ -0,0 +1,55 @@ +From c68b44bc7d9b1469774a1c985ee71d2cbc5ebef5 Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Thu, 8 Dec 2022 15:19:06 +0800 +Subject: [PATCH] iio: imu: fxos8700: fix swapped ACCEL and MAGN channels readback +Git-commit: c68b44bc7d9b1469774a1c985ee71d2cbc5ebef5 +Patch-mainline: v6.2-rc7 +References: git-fixes + +Because ACCEL and MAGN channels data register base address is +swapped the accelerometer and magnetometer channels readback is +swapped. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20221208071911.2405922-3-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 235b02b2f4e5..977eb7dc7dbd 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -395,9 +395,22 @@ static int fxos8700_get_data(struct fxos8700_data *data, int chan_type, + { + u8 base, reg; + int ret; +- enum fxos8700_sensor type = fxos8700_to_sensor(chan_type); + +- base = type ? FXOS8700_OUT_X_MSB : FXOS8700_M_OUT_X_MSB; ++ /* ++ * Different register base addresses varies with channel types. ++ * This bug hasn't been noticed before because using an enum is ++ * really hard to read. Use an a switch statement to take over that. ++ */ ++ switch (chan_type) { ++ case IIO_ACCEL: ++ base = FXOS8700_OUT_X_MSB; ++ break; ++ case IIO_MAGN: ++ base = FXOS8700_M_OUT_X_MSB; ++ break; ++ default: ++ return -EINVAL; ++ } + + /* Block read 6 bytes of device output registers to avoid data loss */ + ret = regmap_bulk_read(data->regmap, base, data->buf, +-- +2.35.3 + diff --git a/patches.suse/iio-imu-fxos8700-remove-definition-FXOS8700_CTRL_ODR.patch b/patches.suse/iio-imu-fxos8700-remove-definition-FXOS8700_CTRL_ODR.patch new file mode 100644 index 0000000..a3e3261 --- /dev/null +++ b/patches.suse/iio-imu-fxos8700-remove-definition-FXOS8700_CTRL_ODR.patch @@ -0,0 +1,38 @@ +From ff5e2cd92ffda9a25ffa2cbdb3a0cf17650172a6 Mon Sep 17 00:00:00 2001 +From: Carlos Song +Date: Wed, 18 Jan 2023 15:42:26 +0800 +Subject: [PATCH] iio: imu: fxos8700: remove definition FXOS8700_CTRL_ODR_MIN +Git-commit: ff5e2cd92ffda9a25ffa2cbdb3a0cf17650172a6 +Patch-mainline: v6.2-rc7 +References: git-fixes + +FXOS8700_CTRL_ODR_MIN is not used but value is probably wrong. + +Remove it for a good readability. + +Fixes: 84e5ddd5c46e ("iio: imu: Add support for the FXOS8700 IMU") +Signed-off-by: Carlos Song +Link: https://lore.kernel.org/r/20230118074227.1665098-4-carlos.song@nxp.com +Cc: +Signed-off-by: Jonathan Cameron +Acked-by: Takashi Iwai + +--- + drivers/iio/imu/fxos8700_core.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/drivers/iio/imu/fxos8700_core.c b/drivers/iio/imu/fxos8700_core.c +index 514411d5ddff..880b9bcb80ff 100644 +--- a/drivers/iio/imu/fxos8700_core.c ++++ b/drivers/iio/imu/fxos8700_core.c +@@ -146,7 +146,6 @@ + + /* Bit definitions for FXOS8700_CTRL_REG1 */ + #define FXOS8700_CTRL_ODR_MAX 0x00 +-#define FXOS8700_CTRL_ODR_MIN GENMASK(4, 3) + #define FXOS8700_CTRL_ODR_MSK GENMASK(5, 3) + + /* Bit definitions for FXOS8700_M_CTRL_REG1 */ +-- +2.35.3 + diff --git a/patches.suse/msft-hv-2593-drm-hyperv-Add-error-message-for-fb-size-greater-tha.patch b/patches.suse/msft-hv-2593-drm-hyperv-Add-error-message-for-fb-size-greater-tha.patch new file mode 100644 index 0000000..c1ca21b --- /dev/null +++ b/patches.suse/msft-hv-2593-drm-hyperv-Add-error-message-for-fb-size-greater-tha.patch @@ -0,0 +1,35 @@ +From: Saurabh Sengar +Date: Mon, 11 Apr 2022 21:28:59 -0700 +Patch-mainline: v5.19-rc1 +Subject: drm/hyperv: Add error message for fb size greater than allocated +Git-commit: 6733dd4af7818559114e2a4771363dd6239297f6 +References: git-fixes + +Add error message when the size of requested framebuffer is more than +the allocated size by vmbus mmio region for framebuffer. + +Signed-off-by: Saurabh Sengar +Reviewed-by: Dexuan Cui +Link: https://lore.kernel.org/r/1649737739-10113-1-git-send-email-ssengar@linux.microsoft.com +Signed-off-by: Wei Liu +Acked-by: Olaf Hering +--- + drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c +--- a/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c ++++ b/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c +@@ -123,8 +123,11 @@ static int hyperv_pipe_check(struct drm_simple_display_pipe *pipe, + if (fb->format->format != DRM_FORMAT_XRGB8888) + return -EINVAL; + +- if (fb->pitches[0] * fb->height > hv->fb_size) ++ if (fb->pitches[0] * fb->height > hv->fb_size) { ++ drm_err(&hv->dev, "fb size requested by %s for %dX%d (pitch %d) greater than %ld\n", ++ current->comm, fb->width, fb->height, fb->pitches[0], hv->fb_size); + return -EINVAL; ++ } + + return 0; + } diff --git a/patches.suse/msft-hv-2625-scsi-storvsc-Correct-reporting-of-Hyper-V-I-O-size-l.patch b/patches.suse/msft-hv-2625-scsi-storvsc-Correct-reporting-of-Hyper-V-I-O-size-l.patch new file mode 100644 index 0000000..ba05c62 --- /dev/null +++ b/patches.suse/msft-hv-2625-scsi-storvsc-Correct-reporting-of-Hyper-V-I-O-size-l.patch @@ -0,0 +1,96 @@ +From: Saurabh Sengar +Date: Tue, 14 Jun 2022 00:05:55 -0700 +Patch-mainline: v5.19-rc4 +Subject: scsi: storvsc: Correct reporting of Hyper-V I/O size limits +Git-commit: 1d3e0980782fbafaf93285779fd3905e4f866802 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +References: git-fixes + +Current code is based on the idea that the max number of SGL entries +also determines the max size of an I/O request. While this idea was +true in older versions of the storvsc driver when SGL entry length +was limited to 4 Kbytes, commit 3d9c3dcc58e9 ("scsi: storvsc: Enable +scatterlist entry lengths > 4Kbytes") removed that limitation. It's +now theoretically possible for the block layer to send requests that +exceed the maximum size supported by Hyper-V. This problem doesn't +currently happen in practice because the block layer defaults to a +512 Kbyte maximum, while Hyper-V in Azure supports 2 Mbyte I/O sizes. +But some future configuration of Hyper-V could have a smaller max I/O +size, and the block layer could exceed that max. + +Fix this by correctly setting max_sectors as well as sg_tablesize to +reflect the maximum I/O size that Hyper-V reports. While allowing +I/O sizes larger than the block layer default of 512 Kbytes doesn’t +provide any noticeable performance benefit in the tests we ran, it's +still appropriate to report the correct underlying Hyper-V capabilities +to the Linux block layer. + +Also tweak the virt_boundary_mask to reflect that the required +alignment derives from Hyper-V communication using a 4 Kbyte page size, +and not on the guest page size, which might be bigger (eg. ARM64). + +Link: https://lore.kernel.org/r/1655190355-28722-1-git-send-email-ssengar@linux.microsoft.com +Fixes: 3d9c3dcc58e9 ("scsi: storvsc: Enable scatter list entry lengths > 4Kbytes") +Reviewed-by: Michael Kelley +Signed-off-by: Saurabh Sengar +Signed-off-by: Martin K. Petersen +Acked-by: Olaf Hering +--- + drivers/scsi/storvsc_drv.c | 27 ++++++++++++++++++---- + 1 file changed, 22 insertions(+), 5 deletions(-) + +diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c +--- a/drivers/scsi/storvsc_drv.c ++++ b/drivers/scsi/storvsc_drv.c +@@ -1844,7 +1844,7 @@ static struct scsi_host_template scsi_driver = { + .cmd_per_lun = 2048, + .this_id = -1, + /* Ensure there are no gaps in presented sgls */ +- .virt_boundary_mask = PAGE_SIZE-1, ++ .virt_boundary_mask = HV_HYP_PAGE_SIZE - 1, + .no_write_same = 1, + .track_queue_depth = 1, + .change_queue_depth = storvsc_change_queue_depth, +@@ -1895,6 +1895,7 @@ static int storvsc_probe(struct hv_device *device, + int max_targets; + int max_channels; + int max_sub_channels = 0; ++ u32 max_xfer_bytes; + + /* + * Based on the windows host we are running on, +@@ -1968,12 +1969,28 @@ static int storvsc_probe(struct hv_device *device, + } + /* max cmd length */ + host->max_cmd_len = STORVSC_MAX_CMD_LEN; +- + /* +- * set the table size based on the info we got +- * from the host. ++ * Any reasonable Hyper-V configuration should provide ++ * max_transfer_bytes value aligning to HV_HYP_PAGE_SIZE, ++ * protecting it from any weird value. ++ */ ++ max_xfer_bytes = round_down(stor_device->max_transfer_bytes, HV_HYP_PAGE_SIZE); ++ /* max_hw_sectors_kb */ ++ host->max_sectors = max_xfer_bytes >> 9; ++ /* ++ * There are 2 requirements for Hyper-V storvsc sgl segments, ++ * based on which the below calculation for max segments is ++ * done: ++ * ++ * 1. Except for the first and last sgl segment, all sgl segments ++ * should be align to HV_HYP_PAGE_SIZE, that also means the ++ * maximum number of segments in a sgl can be calculated by ++ * dividing the total max transfer length by HV_HYP_PAGE_SIZE. ++ * ++ * 2. Except for the first and last, each entry in the SGL must ++ * have an offset that is a multiple of HV_HYP_PAGE_SIZE. + */ +- host->sg_tablesize = (stor_device->max_transfer_bytes >> PAGE_SHIFT); ++ host->sg_tablesize = (max_xfer_bytes >> HV_HYP_PAGE_SHIFT) + 1; + /* + * For non-IDE disks, the host supports multiple channels. + * Set the number of HW queues we are supporting. diff --git a/patches.suse/msft-hv-2700-x86-hyperv-Restore-VP-assist-page-after-cpu-offlinin.patch b/patches.suse/msft-hv-2700-x86-hyperv-Restore-VP-assist-page-after-cpu-offlinin.patch new file mode 100644 index 0000000..231decd --- /dev/null +++ b/patches.suse/msft-hv-2700-x86-hyperv-Restore-VP-assist-page-after-cpu-offlinin.patch @@ -0,0 +1,119 @@ +From: Vitaly Kuznetsov +Date: Thu, 3 Nov 2022 20:06:01 +0100 +Patch-mainline: v6.1-rc7 +Subject: x86/hyperv: Restore VP assist page after cpu offlining/onlining +Git-commit: ee6815416380bc069b7dcbdff0682d4c53617527 +References: git-fixes + +Commit e5d9b714fe40 ("x86/hyperv: fix root partition faults when writing +to VP assist page MSR") moved 'wrmsrl(HV_X64_MSR_VP_ASSIST_PAGE)' under +'if (*hvp)' condition. This works for root partition as hv_cpu_die() +does memunmap() and sets 'hv_vp_assist_page[cpu]' to NULL but breaks +non-root partitions as hv_cpu_die() doesn't free 'hv_vp_assist_page[cpu]' +for them. This causes VP assist page to remain unset after CPU +offline/online cycle: + +$ rdmsr -p 24 0x40000073 + 10212f001 +$ echo 0 > /sys/devices/system/cpu/cpu24/online +$ echo 1 > /sys/devices/system/cpu/cpu24/online +$ rdmsr -p 24 0x40000073 + 0 + +Fix the issue by always writing to HV_X64_MSR_VP_ASSIST_PAGE in +hv_cpu_init(). Note, checking 'if (!*hvp)', for root partition is +pointless as hv_cpu_die() always sets 'hv_vp_assist_page[cpu]' to +NULL (and it's also NULL initially). + +Note: the fact that 'hv_vp_assist_page[cpu]' is reset to NULL may +present a (potential) issue for KVM. While Hyper-V uses +CPUHP_AP_ONLINE_DYN stage in CPU hotplug, KVM uses CPUHP_AP_KVM_STARTING +which comes earlier in CPU teardown sequence. It is theoretically +possible that Enlightened VMCS is still in use. It is unclear if the +issue is real and if using KVM with Hyper-V root partition is even +possible. + +While on it, drop the unneeded smp_processor_id() call from hv_cpu_init(). + +Fixes: e5d9b714fe40 ("x86/hyperv: fix root partition faults when writing to VP assist page MSR") +Signed-off-by: Vitaly Kuznetsov +Reviewed-by: Michael Kelley +Link: https://lore.kernel.org/r/20221103190601.399343-1-vkuznets@redhat.com +Signed-off-by: Wei Liu +Acked-by: Olaf Hering +--- + arch/x86/hyperv/hv_init.c | 54 ++++----- + 1 file changed, 26 insertions(+), 28 deletions(-) + +diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c +--- a/arch/x86/hyperv/hv_init.c ++++ b/arch/x86/hyperv/hv_init.c +@@ -77,7 +77,7 @@ static int hyperv_init_ghcb(void) + static int hv_cpu_init(unsigned int cpu) + { + union hv_vp_assist_msr_contents msr = { 0 }; +- struct hv_vp_assist_page **hvp = &hv_vp_assist_page[smp_processor_id()]; ++ struct hv_vp_assist_page **hvp = &hv_vp_assist_page[cpu]; + int ret; + + ret = hv_common_cpu_init(cpu); +@@ -87,34 +87,32 @@ static int hv_cpu_init(unsigned int cpu) + if (!hv_vp_assist_page) + return 0; + +- if (!*hvp) { +- if (hv_root_partition) { +- /* +- * For root partition we get the hypervisor provided VP assist +- * page, instead of allocating a new page. +- */ +- rdmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); +- *hvp = memremap(msr.pfn << +- HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT, +- PAGE_SIZE, MEMREMAP_WB); +- } else { +- /* +- * The VP assist page is an "overlay" page (see Hyper-V TLFS's +- * Section 5.2.1 "GPA Overlay Pages"). Here it must be zeroed +- * out to make sure we always write the EOI MSR in +- * hv_apic_eoi_write() *after* the EOI optimization is disabled +- * in hv_cpu_die(), otherwise a CPU may not be stopped in the +- * case of CPU offlining and the VM will hang. +- */ ++ if (hv_root_partition) { ++ /* ++ * For root partition we get the hypervisor provided VP assist ++ * page, instead of allocating a new page. ++ */ ++ rdmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); ++ *hvp = memremap(msr.pfn << HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT, ++ PAGE_SIZE, MEMREMAP_WB); ++ } else { ++ /* ++ * The VP assist page is an "overlay" page (see Hyper-V TLFS's ++ * Section 5.2.1 "GPA Overlay Pages"). Here it must be zeroed ++ * out to make sure we always write the EOI MSR in ++ * hv_apic_eoi_write() *after* the EOI optimization is disabled ++ * in hv_cpu_die(), otherwise a CPU may not be stopped in the ++ * case of CPU offlining and the VM will hang. ++ */ ++ if (!*hvp) + *hvp = __vmalloc(PAGE_SIZE, GFP_KERNEL | __GFP_ZERO); +- if (*hvp) +- msr.pfn = vmalloc_to_pfn(*hvp); +- } +- WARN_ON(!(*hvp)); +- if (*hvp) { +- msr.enable = 1; +- wrmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); +- } ++ if (*hvp) ++ msr.pfn = vmalloc_to_pfn(*hvp); ++ ++ } ++ if (!WARN_ON(!(*hvp))) { ++ msr.enable = 1; ++ wrmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); + } + + return hyperv_init_ghcb(); diff --git a/patches.suse/msft-hv-2740-x86-hyperv-Remove-unregister-syscore-call-from-Hyper.patch b/patches.suse/msft-hv-2740-x86-hyperv-Remove-unregister-syscore-call-from-Hyper.patch new file mode 100644 index 0000000..bd92363 --- /dev/null +++ b/patches.suse/msft-hv-2740-x86-hyperv-Remove-unregister-syscore-call-from-Hyper.patch @@ -0,0 +1,42 @@ +From: Gaurav Kohli +Date: Fri, 25 Nov 2022 22:14:51 -0800 +Patch-mainline: v6.2-rc1 +Subject: x86/hyperv: Remove unregister syscore call from Hyper-V cleanup +Git-commit: 32c97d980e2eef25465d453f2956a9ca68926a3c +References: git-fixes + +Hyper-V cleanup code comes under panic path where preemption and irq +is already disabled. So calling of unregister_syscore_ops might schedule +out the thread even for the case where mutex lock is free. +hyperv_cleanup + unregister_syscore_ops + mutex_lock(&syscore_ops_lock) + might_sleep +Here might_sleep might schedule out this thread, where voluntary preemption +config is on and this thread will never comes back. And also this was added +earlier to maintain the symmetry which is not required as this can comes +during crash shutdown path only. + +To prevent the same, removing unregister_syscore_ops function call. + +Signed-off-by: Gaurav Kohli +Reviewed-by: Michael Kelley +Link: https://lore.kernel.org/r/1669443291-2575-1-git-send-email-gauravkohli@linux.microsoft.com +Signed-off-by: Wei Liu +Acked-by: Olaf Hering +--- + arch/x86/hyperv/hv_init.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c +--- a/arch/x86/hyperv/hv_init.c ++++ b/arch/x86/hyperv/hv_init.c +@@ -537,8 +537,6 @@ void hyperv_cleanup(void) + union hv_x64_msr_hypercall_contents hypercall_msr; + union hv_reference_tsc_msr tsc_msr; + +- unregister_syscore_ops(&hv_syscore_ops); +- + /* Reset our OS id */ + wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0); + hv_ghcb_msr_write(HV_X64_MSR_GUEST_OS_ID, 0); diff --git a/patches.suse/msft-hv-2745-hv_netvsc-Fix-missed-pagebuf-entries-in-netvsc_dma_m.patch b/patches.suse/msft-hv-2745-hv_netvsc-Fix-missed-pagebuf-entries-in-netvsc_dma_m.patch new file mode 100644 index 0000000..592e16b --- /dev/null +++ b/patches.suse/msft-hv-2745-hv_netvsc-Fix-missed-pagebuf-entries-in-netvsc_dma_m.patch @@ -0,0 +1,65 @@ +From: Michael Kelley +Date: Mon, 30 Jan 2023 19:33:06 -0800 +Patch-mainline: v6.2-rc7 +Subject: hv_netvsc: Fix missed pagebuf entries in netvsc_dma_map/unmap() +Git-commit: 99f1c46011cc0feb47d4f4f7bee70a0341442d14 +References: git-fixes + +netvsc_dma_map() and netvsc_dma_unmap() currently check the cp_partial +flag and adjust the page_count so that pagebuf entries for the RNDIS +portion of the message are skipped when it has already been copied into +a send buffer. But this adjustment has already been made by code in +netvsc_send(). The duplicate adjustment causes some pagebuf entries to +not be mapped. In a normal VM, this doesn't break anything because the +mapping doesn’t change the PFN. But in a Confidential VM, +dma_map_single() does bounce buffering and provides a different PFN. +Failing to do the mapping causes the wrong PFN to be passed to Hyper-V, +and various errors ensue. + +Fix this by removing the duplicate adjustment in netvsc_dma_map() and +netvsc_dma_unmap(). + +Fixes: 846da38de0e8 ("net: netvsc: Add Isolation VM support for netvsc driver") +Cc: stable@vger.kernel.org +Signed-off-by: Michael Kelley +Reviewed-by: Haiyang Zhang +Link: https://lore.kernel.org/r/1675135986-254490-1-git-send-email-mikelley@microsoft.com +Signed-off-by: Paolo Abeni +Acked-by: Olaf Hering +--- + drivers/net/hyperv/netvsc.c | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c +--- a/drivers/net/hyperv/netvsc.c ++++ b/drivers/net/hyperv/netvsc.c +@@ -987,9 +987,6 @@ static void netvsc_copy_to_send_buf(struct netvsc_device *net_device, + void netvsc_dma_unmap(struct hv_device *hv_dev, + struct hv_netvsc_packet *packet) + { +- u32 page_count = packet->cp_partial ? +- packet->page_buf_cnt - packet->rmsg_pgcnt : +- packet->page_buf_cnt; + int i; + + if (!hv_is_isolation_supported()) +@@ -998,7 +995,7 @@ void netvsc_dma_unmap(struct hv_device *hv_dev, + if (!packet->dma_range) + return; + +- for (i = 0; i < page_count; i++) ++ for (i = 0; i < packet->page_buf_cnt; i++) + dma_unmap_single(&hv_dev->device, packet->dma_range[i].dma, + packet->dma_range[i].mapping_size, + DMA_TO_DEVICE); +@@ -1028,9 +1025,7 @@ static int netvsc_dma_map(struct hv_device *hv_dev, + struct hv_netvsc_packet *packet, + struct hv_page_buffer *pb) + { +- u32 page_count = packet->cp_partial ? +- packet->page_buf_cnt - packet->rmsg_pgcnt : +- packet->page_buf_cnt; ++ u32 page_count = packet->page_buf_cnt; + dma_addr_t dma; + int i; + diff --git a/patches.suse/net-mlx5-Dynamically-resize-flow-counters-query-buff.patch b/patches.suse/net-mlx5-Dynamically-resize-flow-counters-query-buff.patch new file mode 100644 index 0000000..d47923a --- /dev/null +++ b/patches.suse/net-mlx5-Dynamically-resize-flow-counters-query-buff.patch @@ -0,0 +1,202 @@ +From: Avihai Horon +Date: Thu, 28 Oct 2021 16:03:06 +0300 +Subject: net/mlx5: Dynamically resize flow counters query buffer +Patch-mainline: v5.17-rc1 +Git-commit: b247f32aecad09e6cf7edff7739e6f2c9dc5fca9 +References: bsc#1195175 + +The flow counters bulk query buffer is allocated once during +mlx5_fc_init_stats(). For PFs and VFs this buffer usually takes a little +more than 512KB of memory, which is aligned to the next power of 2, to +1MB. For SFs, this buffer is reduced and takes around 128 Bytes. + +The buffer size determines the maximum number of flow counters that +can be queried at a time. Thus, having a bigger buffer can improve +performance for users that need to query many flow counters. + +There are cases that don't use many flow counters and don't need a big +buffer (e.g. SFs, VFs). Since this size is critical with large scale, +in these cases the buffer size should be reduced. + +In order to reduce memory consumption while maintaining query +performance, change the query buffer's allocation scheme to the +following: +- First allocate the buffer with small initial size. +- If the number of counters surpasses the initial size, resize the + buffer to the maximum size. + +The buffer only grows and isn't shrank, because users with many flow +counters don't care about the buffer size and we don't want to add +resize overhead if the current number of counters drops. + +This solution is preferable to the current one, which is less accurate +and only addresses SFs. + +Signed-off-by: Avihai Horon +Reviewed-by: Mark Bloch +Signed-off-by: Saeed Mahameed +Acked-by: Thomas Bogendoerfer +--- + drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c | 74 ++++++++++++++---- + include/linux/mlx5/driver.h | 4 + 2 files changed, 64 insertions(+), 14 deletions(-) + +--- a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c ++++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c +@@ -38,9 +38,10 @@ + #include "fs_cmd.h" + + #define MLX5_FC_STATS_PERIOD msecs_to_jiffies(1000) ++#define MLX5_FC_BULK_QUERY_ALLOC_PERIOD msecs_to_jiffies(180 * 1000) + /* Max number of counters to query in bulk read is 32K */ + #define MLX5_SW_MAX_COUNTERS_BULK BIT(15) +-#define MLX5_SF_NUM_COUNTERS_BULK 8 ++#define MLX5_INIT_COUNTERS_BULK 8 + #define MLX5_FC_POOL_MAX_THRESHOLD BIT(18) + #define MLX5_FC_POOL_USED_BUFF_RATIO 10 + +@@ -145,13 +146,15 @@ static void mlx5_fc_stats_remove(struct + spin_unlock(&fc_stats->counters_idr_lock); + } + +-static int get_max_bulk_query_len(struct mlx5_core_dev *dev) ++static int get_init_bulk_query_len(struct mlx5_core_dev *dev) + { +- int num_counters_bulk = mlx5_core_is_sf(dev) ? +- MLX5_SF_NUM_COUNTERS_BULK : +- MLX5_SW_MAX_COUNTERS_BULK; ++ return min_t(int, MLX5_INIT_COUNTERS_BULK, ++ (1 << MLX5_CAP_GEN(dev, log_max_flow_counter_bulk))); ++} + +- return min_t(int, num_counters_bulk, ++static int get_max_bulk_query_len(struct mlx5_core_dev *dev) ++{ ++ return min_t(int, MLX5_SW_MAX_COUNTERS_BULK, + (1 << MLX5_CAP_GEN(dev, log_max_flow_counter_bulk))); + } + +@@ -177,7 +180,7 @@ static void mlx5_fc_stats_query_counter_ + { + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + bool query_more_counters = (first->id <= last_id); +- int max_bulk_len = get_max_bulk_query_len(dev); ++ int cur_bulk_len = fc_stats->bulk_query_len; + u32 *data = fc_stats->bulk_query_out; + struct mlx5_fc *counter = first; + u32 bulk_base_id; +@@ -189,7 +192,7 @@ static void mlx5_fc_stats_query_counter_ + bulk_base_id = counter->id & ~0x3; + + /* number of counters to query inc. the last counter */ +- bulk_len = min_t(int, max_bulk_len, ++ bulk_len = min_t(int, cur_bulk_len, + ALIGN(last_id - bulk_base_id + 1, 4)); + + err = mlx5_cmd_fc_bulk_query(dev, bulk_base_id, bulk_len, +@@ -230,6 +233,41 @@ static void mlx5_fc_release(struct mlx5_ + mlx5_fc_free(dev, counter); + } + ++static void mlx5_fc_stats_bulk_query_size_increase(struct mlx5_core_dev *dev) ++{ ++ struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; ++ int max_bulk_len = get_max_bulk_query_len(dev); ++ unsigned long now = jiffies; ++ u32 *bulk_query_out_tmp; ++ int max_out_len; ++ ++ if (fc_stats->bulk_query_alloc_failed && ++ time_before(now, fc_stats->next_bulk_query_alloc)) ++ return; ++ ++ max_out_len = mlx5_cmd_fc_get_bulk_query_out_len(max_bulk_len); ++ bulk_query_out_tmp = kzalloc(max_out_len, GFP_KERNEL); ++ if (!bulk_query_out_tmp) { ++ mlx5_core_warn_once(dev, ++ "Can't increase flow counters bulk query buffer size, insufficient memory, bulk_size(%d)\n", ++ max_bulk_len); ++ fc_stats->bulk_query_alloc_failed = true; ++ fc_stats->next_bulk_query_alloc = ++ now + MLX5_FC_BULK_QUERY_ALLOC_PERIOD; ++ return; ++ } ++ ++ kfree(fc_stats->bulk_query_out); ++ fc_stats->bulk_query_out = bulk_query_out_tmp; ++ fc_stats->bulk_query_len = max_bulk_len; ++ if (fc_stats->bulk_query_alloc_failed) { ++ mlx5_core_info(dev, ++ "Flow counters bulk query buffer size increased, bulk_size(%d)\n", ++ max_bulk_len); ++ fc_stats->bulk_query_alloc_failed = false; ++ } ++} ++ + static void mlx5_fc_stats_work(struct work_struct *work) + { + struct mlx5_core_dev *dev = container_of(work, struct mlx5_core_dev, +@@ -247,15 +285,22 @@ static void mlx5_fc_stats_work(struct wo + queue_delayed_work(fc_stats->wq, &fc_stats->work, + fc_stats->sampling_interval); + +- llist_for_each_entry(counter, addlist, addlist) ++ llist_for_each_entry(counter, addlist, addlist) { + mlx5_fc_stats_insert(dev, counter); ++ fc_stats->num_counters++; ++ } + + llist_for_each_entry_safe(counter, tmp, dellist, dellist) { + mlx5_fc_stats_remove(dev, counter); + + mlx5_fc_release(dev, counter); ++ fc_stats->num_counters--; + } + ++ if (fc_stats->bulk_query_len < get_max_bulk_query_len(dev) && ++ fc_stats->num_counters > get_init_bulk_query_len(dev)) ++ mlx5_fc_stats_bulk_query_size_increase(dev); ++ + if (time_before(now, fc_stats->next_query) || + list_empty(&fc_stats->counters)) + return; +@@ -378,8 +423,8 @@ EXPORT_SYMBOL(mlx5_fc_destroy); + int mlx5_init_fc_stats(struct mlx5_core_dev *dev) + { + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; +- int max_bulk_len; +- int max_out_len; ++ int init_bulk_len; ++ int init_out_len; + + spin_lock_init(&fc_stats->counters_idr_lock); + idr_init(&fc_stats->counters_idr); +@@ -387,11 +432,12 @@ int mlx5_init_fc_stats(struct mlx5_core_ + init_llist_head(&fc_stats->addlist); + init_llist_head(&fc_stats->dellist); + +- max_bulk_len = get_max_bulk_query_len(dev); +- max_out_len = mlx5_cmd_fc_get_bulk_query_out_len(max_bulk_len); +- fc_stats->bulk_query_out = kzalloc(max_out_len, GFP_KERNEL); ++ init_bulk_len = get_init_bulk_query_len(dev); ++ init_out_len = mlx5_cmd_fc_get_bulk_query_out_len(init_bulk_len); ++ fc_stats->bulk_query_out = kzalloc(init_out_len, GFP_KERNEL); + if (!fc_stats->bulk_query_out) + return -ENOMEM; ++ fc_stats->bulk_query_len = init_bulk_len; + + fc_stats->wq = create_singlethread_workqueue("mlx5_fc"); + if (!fc_stats->wq) +--- a/include/linux/mlx5/driver.h ++++ b/include/linux/mlx5/driver.h +@@ -478,6 +478,10 @@ struct mlx5_fc_stats { + unsigned long next_query; + unsigned long sampling_interval; /* jiffies */ + u32 *bulk_query_out; ++ int bulk_query_len; ++ size_t num_counters; ++ bool bulk_query_alloc_failed; ++ unsigned long next_bulk_query_alloc; + struct mlx5_fc_pool fc_pool; + }; + diff --git a/patches.suse/net-tg3-resolve-deadlock-in-tg3_reset_task-during-EE.patch b/patches.suse/net-tg3-resolve-deadlock-in-tg3_reset_task-during-EE.patch new file mode 100644 index 0000000..c6f49f1 --- /dev/null +++ b/patches.suse/net-tg3-resolve-deadlock-in-tg3_reset_task-during-EE.patch @@ -0,0 +1,112 @@ +From: David Christensen +Date: Tue, 24 Jan 2023 13:53:39 -0500 +Subject: net/tg3: resolve deadlock in tg3_reset_task() during EEH +Patch-mainline: v6.2-rc6 +Git-commit: 6c4ca03bd890566d873e3593b32d034bf2f5a087 +References: bsc#1207842 + +During EEH error injection testing, a deadlock was encountered in the tg3 +driver when tg3_io_error_detected() was attempting to cancel outstanding +reset tasks: + +crash> foreach UN bt +... +PID: 159 TASK: c0000000067c6000 CPU: 8 COMMAND: "eehd" +... + #5 [c00000000681f990] __cancel_work_timer at c00000000019fd18 + #6 [c00000000681fa30] tg3_io_error_detected at c00800000295f098 [tg3] + #7 [c00000000681faf0] eeh_report_error at c00000000004e25c +... + +PID: 290 TASK: c000000036e5f800 CPU: 6 COMMAND: "kworker/6:1" +... + #4 [c00000003721fbc0] rtnl_lock at c000000000c940d8 + #5 [c00000003721fbe0] tg3_reset_task at c008000002969358 [tg3] + #6 [c00000003721fc60] process_one_work at c00000000019e5c4 +... + +PID: 296 TASK: c000000037a65800 CPU: 21 COMMAND: "kworker/21:1" +... + #4 [c000000037247bc0] rtnl_lock at c000000000c940d8 + #5 [c000000037247be0] tg3_reset_task at c008000002969358 [tg3] + #6 [c000000037247c60] process_one_work at c00000000019e5c4 +... + +PID: 655 TASK: c000000036f49000 CPU: 16 COMMAND: "kworker/16:2" +...:1 + + #4 [c0000000373ebbc0] rtnl_lock at c000000000c940d8 + #5 [c0000000373ebbe0] tg3_reset_task at c008000002969358 [tg3] + #6 [c0000000373ebc60] process_one_work at c00000000019e5c4 +... + +Code inspection shows that both tg3_io_error_detected() and +tg3_reset_task() attempt to acquire the RTNL lock at the beginning of +their code blocks. If tg3_reset_task() should happen to execute between +the times when tg3_io_error_deteced() acquires the RTNL lock and +tg3_reset_task_cancel() is called, a deadlock will occur. + +Moving tg3_reset_task_cancel() call earlier within the code block, prior +to acquiring RTNL, prevents this from happening, but also exposes another +deadlock issue where tg3_reset_task() may execute AFTER +tg3_io_error_detected() has executed: + +crash> foreach UN bt +PID: 159 TASK: c0000000067d2000 CPU: 9 COMMAND: "eehd" +... + #4 [c000000006867a60] rtnl_lock at c000000000c940d8 + #5 [c000000006867a80] tg3_io_slot_reset at c0080000026c2ea8 [tg3] + #6 [c000000006867b00] eeh_report_reset at c00000000004de88 +... +PID: 363 TASK: c000000037564000 CPU: 6 COMMAND: "kworker/6:1" +... + #3 [c000000036c1bb70] msleep at c000000000259e6c + #4 [c000000036c1bba0] napi_disable at c000000000c6b848 + #5 [c000000036c1bbe0] tg3_reset_task at c0080000026d942c [tg3] + #6 [c000000036c1bc60] process_one_work at c00000000019e5c4 +... + +This issue can be avoided by aborting tg3_reset_task() if EEH error +recovery is already in progress. + +Fixes: db84bf43ef23 ("tg3: tg3_reset_task() needs to use rtnl_lock to synchronize") +Signed-off-by: David Christensen +Reviewed-by: Pavan Chebbi +Link: https://lore.kernel.org/r/20230124185339.225806-1-drc@linux.vnet.ibm.com +Signed-off-by: Jakub Kicinski +Acked-by: Thomas Bogendoerfer +--- + drivers/net/ethernet/broadcom/tg3.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -11176,7 +11176,7 @@ static void tg3_reset_task(struct work_s + rtnl_lock(); + tg3_full_lock(tp, 0); + +- if (!netif_running(tp->dev)) { ++ if (tp->pcierr_recovery || !netif_running(tp->dev)) { + tg3_flag_clear(tp, RESET_TASK_PENDING); + tg3_full_unlock(tp); + rtnl_unlock(); +@@ -18164,6 +18164,9 @@ static pci_ers_result_t tg3_io_error_det + + netdev_info(netdev, "PCI I/O error detected\n"); + ++ /* Want to make sure that the reset task doesn't run */ ++ tg3_reset_task_cancel(tp); ++ + rtnl_lock(); + + /* Could be second call or maybe we don't have netdev yet */ +@@ -18180,9 +18183,6 @@ static pci_ers_result_t tg3_io_error_det + + tg3_timer_stop(tp); + +- /* Want to make sure that the reset task doesn't run */ +- tg3_reset_task_cancel(tp); +- + netif_device_detach(netdev); + + /* Clean up software state, even if MMIO is blocked */ diff --git a/patches.suse/selftests-Provide-local-define-of-__cpuid_count.patch b/patches.suse/selftests-Provide-local-define-of-__cpuid_count.patch new file mode 100644 index 0000000..b7219af --- /dev/null +++ b/patches.suse/selftests-Provide-local-define-of-__cpuid_count.patch @@ -0,0 +1,59 @@ +From a23039c7306f53416ba35d230201398ea34f4640 Mon Sep 17 00:00:00 2001 +From: Reinette Chatre +Date: Mon, 25 Apr 2022 14:01:11 -0700 +Subject: [PATCH] selftests: Provide local define of __cpuid_count() +Git-commit: a23039c7306f53416ba35d230201398ea34f4640 +Patch-mainline: v5.19-rc1 +References: git-fixes + +Some selftests depend on information provided by the CPUID instruction. +To support this dependency the selftests implement private wrappers for +CPUID. + +Duplication of the CPUID wrappers should be avoided. + +Both gcc and clang/LLVM provide __cpuid_count() macros but neither +the macro nor its header file are available in all the compiler +versions that need to be supported by the selftests. __cpuid_count() +as provided by gcc is available starting with gcc v4.4, so it is +not available if the latest tests need to be run in all the +environments required to support kernels v4.9 and v4.14 that +have the minimal required gcc v3.2. + +Duplicate gcc's __cpuid_count() macro to provide a centrally defined +macro for __cpuid_count() to help eliminate the duplicate CPUID wrappers +while continuing to compile in older environments. + +Suggested-by: Shuah Khan +Signed-off-by: Reinette Chatre +Signed-off-by: Shuah Khan +Acked-by: Takashi Iwai + +--- + tools/testing/selftests/kselftest.h | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +--- a/tools/testing/selftests/kselftest.h ++++ b/tools/testing/selftests/kselftest.h +@@ -52,6 +52,21 @@ + #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) + #endif + ++/* ++ * gcc cpuid.h provides __cpuid_count() since v4.4. ++ * Clang/LLVM cpuid.h provides __cpuid_count() since v3.4.0. ++ * ++ * Provide local define for tests needing __cpuid_count() because ++ * selftests need to work in older environments that do not yet ++ * have __cpuid_count(). ++ */ ++#ifndef __cpuid_count ++#define __cpuid_count(level, count, a, b, c, d) \ ++ __asm__ __volatile__ ("cpuid\n\t" \ ++ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ ++ : "0" (level), "2" (count)) ++#endif ++ + /* define kselftest exit codes */ + #define KSFT_PASS 0 + #define KSFT_FAIL 1 diff --git a/patches.suse/selftests-vm-remove-ARRAY_SIZE-define-from-individua.patch b/patches.suse/selftests-vm-remove-ARRAY_SIZE-define-from-individua.patch new file mode 100644 index 0000000..51652bc --- /dev/null +++ b/patches.suse/selftests-vm-remove-ARRAY_SIZE-define-from-individua.patch @@ -0,0 +1,74 @@ +From e89908201e2509354c40158b517945bf3d645812 Mon Sep 17 00:00:00 2001 +From: Shuah Khan +Date: Thu, 9 Dec 2021 16:35:02 -0700 +Subject: [PATCH] selftests/vm: remove ARRAY_SIZE define from individual tests +Git-commit: e89908201e2509354c40158b517945bf3d645812 +Patch-mainline: v5.17-rc1 +References: git-fixes + +ARRAY_SIZE is defined in several selftests. Remove definitions from +individual test files and include header file for the define instead. +ARRAY_SIZE define is added in a separate patch to prepare for this +change. + +Remove ARRAY_SIZE from vm tests and pickup the one defined in +kselftest.h. + +Signed-off-by: Shuah Khan +Acked-by: Takashi Iwai + +--- + tools/testing/selftests/vm/mremap_test.c | 1 - + tools/testing/selftests/vm/pkey-helpers.h | 3 ++- + tools/testing/selftests/vm/va_128TBswitch.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tools/testing/selftests/vm/mremap_test.c b/tools/testing/selftests/vm/mremap_test.c +index 0624d1bd71b5..7c0b0617b9f8 100644 +--- a/tools/testing/selftests/vm/mremap_test.c ++++ b/tools/testing/selftests/vm/mremap_test.c +@@ -20,7 +20,6 @@ + #define VALIDATION_DEFAULT_THRESHOLD 4 /* 4MB */ + #define VALIDATION_NO_THRESHOLD 0 /* Verify the entire region */ + +-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + #define MIN(X, Y) ((X) < (Y) ? (X) : (Y)) + + struct config { +diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h +index 622a85848f61..92f3be3dd8e5 100644 +--- a/tools/testing/selftests/vm/pkey-helpers.h ++++ b/tools/testing/selftests/vm/pkey-helpers.h +@@ -13,6 +13,8 @@ + #include + #include + ++#include "../kselftest.h" ++ + /* Define some kernel-like types */ + #define u8 __u8 + #define u16 __u16 +@@ -175,7 +177,6 @@ static inline void __pkey_write_allow(int pkey, int do_allow_write) + dprintf4("pkey_reg now: %016llx\n", read_pkey_reg()); + } + +-#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) + #define ALIGN_UP(x, align_to) (((x) + ((align_to)-1)) & ~((align_to)-1)) + #define ALIGN_DOWN(x, align_to) ((x) & ~((align_to)-1)) + #define ALIGN_PTR_UP(p, ptr_align_to) \ +diff --git a/tools/testing/selftests/vm/va_128TBswitch.c b/tools/testing/selftests/vm/va_128TBswitch.c +index 83acdff26a13..da6ec3b53ea8 100644 +--- a/tools/testing/selftests/vm/va_128TBswitch.c ++++ b/tools/testing/selftests/vm/va_128TBswitch.c +@@ -9,7 +9,7 @@ + #include + #include + +-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) ++#include "../kselftest.h" + + #ifdef __powerpc64__ + #define PAGE_SIZE (64 << 10) +-- +2.35.3 + diff --git a/patches.suse/serial-8250_dma-Fix-DMA-Rx-rearm-race.patch b/patches.suse/serial-8250_dma-Fix-DMA-Rx-rearm-race.patch new file mode 100644 index 0000000..0724526 --- /dev/null +++ b/patches.suse/serial-8250_dma-Fix-DMA-Rx-rearm-race.patch @@ -0,0 +1,94 @@ +From 57e9af7831dcf211c5c689c2a6f209f4abdf0bce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= +Date: Mon, 30 Jan 2023 13:48:41 +0200 +Subject: [PATCH] serial: 8250_dma: Fix DMA Rx rearm race +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 57e9af7831dcf211c5c689c2a6f209f4abdf0bce +Patch-mainline: v6.2-rc7 +References: git-fixes + +As DMA Rx can be completed from two places, it is possible that DMA Rx +completes before DMA completion callback had a chance to complete it. +Once the previous DMA Rx has been completed, a new one can be started +on the next UART interrupt. The following race is possible +(uart_unlock_and_check_sysrq_irqrestore() replaced with +spin_unlock_irqrestore() for simplicity/clarity): + +CPU0 CPU1 + dma_rx_complete() +serial8250_handle_irq() + spin_lock_irqsave(&port->lock) + handle_rx_dma() + serial8250_rx_dma_flush() + __dma_rx_complete() + dma->rx_running = 0 + // Complete DMA Rx + spin_unlock_irqrestore(&port->lock) + +serial8250_handle_irq() + spin_lock_irqsave(&port->lock) + handle_rx_dma() + serial8250_rx_dma() + dma->rx_running = 1 + // Setup a new DMA Rx + spin_unlock_irqrestore(&port->lock) + + spin_lock_irqsave(&port->lock) + // sees dma->rx_running = 1 + __dma_rx_complete() + dma->rx_running = 0 + // Incorrectly complete + // running DMA Rx + +This race seems somewhat theoretical to occur for real but handle it +correctly regardless. Check what is the DMA status before complething +anything in __dma_rx_complete(). + +Reported-by: Gilles BULOZ +Tested-by: Gilles BULOZ +Fixes: 9ee4b83e51f7 ("serial: 8250: Add support for dmaengine") +Cc: stable@vger.kernel.org +Signed-off-by: Ilpo Järvinen +Link: https://lore.kernel.org/r/20230130114841.25749-3-ilpo.jarvinen@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +Acked-by: Takashi Iwai + +--- + drivers/tty/serial/8250/8250_dma.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c +index 5594883a96f8..7fa66501792d 100644 +--- a/drivers/tty/serial/8250/8250_dma.c ++++ b/drivers/tty/serial/8250/8250_dma.c +@@ -43,15 +43,23 @@ static void __dma_rx_complete(struct uart_8250_port *p) + struct uart_8250_dma *dma = p->dma; + struct tty_port *tty_port = &p->port.state->port; + struct dma_tx_state state; ++ enum dma_status dma_status; + int count; + +- dma->rx_running = 0; +- dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state); ++ /* ++ * New DMA Rx can be started during the completion handler before it ++ * could acquire port's lock and it might still be ongoing. Don't to ++ * anything in such case. ++ */ ++ dma_status = dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state); ++ if (dma_status == DMA_IN_PROGRESS) ++ return; + + count = dma->rx_size - state.residue; + + tty_insert_flip_string(tty_port, dma->rx_buf, count); + p->port.icount.rx += count; ++ dma->rx_running = 0; + + tty_flip_buffer_push(tty_port); + } +-- +2.35.3 + diff --git a/patches.suse/tools-fix-ARRAY_SIZE-defines-in-tools-and-selftests-.patch b/patches.suse/tools-fix-ARRAY_SIZE-defines-in-tools-and-selftests-.patch new file mode 100644 index 0000000..658f526 --- /dev/null +++ b/patches.suse/tools-fix-ARRAY_SIZE-defines-in-tools-and-selftests-.patch @@ -0,0 +1,65 @@ +From 066b34aa5461f6072dbbecb690f4fe446b736ebf Mon Sep 17 00:00:00 2001 +From: Shuah Khan +Date: Wed, 8 Dec 2021 10:47:42 -0700 +Subject: [PATCH] tools: fix ARRAY_SIZE defines in tools and selftests hdrs +Git-commit: 066b34aa5461f6072dbbecb690f4fe446b736ebf +Patch-mainline: v5.17-rc1 +References: git-fixes + +tools/include/linux/kernel.h and kselftest_harness.h are missing +ifndef guard around ARRAY_SIZE define. Fix them to avoid duplicate +define errors during compile when another file defines it. This +problem was found when compiling selftests that include a header +with ARRAY_SIZE define. + +ARRAY_SIZE is defined in several selftests. There are about 25+ +duplicate defines in various selftests source and header files. +Add ARRAY_SIZE to kselftest.h in preparation for removing duplicate +ARRAY_SIZE defines from individual test files. + +Signed-off-by: Shuah Khan +Acked-by: Takashi Iwai + +--- + tools/include/linux/kernel.h | 2 ++ + tools/testing/selftests/kselftest.h | 4 ++++ + tools/testing/selftests/kselftest_harness.h | 2 ++ + 3 files changed, 8 insertions(+) + +--- a/tools/include/linux/kernel.h ++++ b/tools/include/linux/kernel.h +@@ -102,7 +102,9 @@ int vscnprintf(char *buf, size_t size, c + int scnprintf(char * buf, size_t size, const char * fmt, ...); + int scnprintf_pad(char * buf, size_t size, const char * fmt, ...); + ++#ifndef ARRAY_SIZE + #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) ++#endif + + /* + * This looks more complex than it should be. But we need to +--- a/tools/testing/selftests/kselftest.h ++++ b/tools/testing/selftests/kselftest.h +@@ -48,6 +48,10 @@ + #include + #include + ++#ifndef ARRAY_SIZE ++#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) ++#endif ++ + /* define kselftest exit codes */ + #define KSFT_PASS 0 + #define KSFT_FAIL 1 +--- a/tools/testing/selftests/kselftest_harness.h ++++ b/tools/testing/selftests/kselftest_harness.h +@@ -671,7 +671,9 @@ + #define EXPECT_STRNE(expected, seen) \ + __EXPECT_STR(expected, seen, !=, 0) + ++#ifndef ARRAY_SIZE + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) ++#endif + + /* Support an optional handler after and ASSERT_* or EXPECT_*. The approach is + * not thread-safe, but it should be fine in most sane test scenarios. diff --git a/patches.suse/usb-dwc3-qcom-enable-vbus-override-when-in-OTG-dr-mo.patch b/patches.suse/usb-dwc3-qcom-enable-vbus-override-when-in-OTG-dr-mo.patch new file mode 100644 index 0000000..82878e0 --- /dev/null +++ b/patches.suse/usb-dwc3-qcom-enable-vbus-override-when-in-OTG-dr-mo.patch @@ -0,0 +1,39 @@ +From eb320f76e31dc835b9f57f04af1a2353b13bb7d8 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Tue, 24 Jan 2023 09:31:21 +0100 +Subject: [PATCH] usb: dwc3: qcom: enable vbus override when in OTG dr-mode +Git-commit: eb320f76e31dc835b9f57f04af1a2353b13bb7d8 +Patch-mainline: v6.2-rc7 +References: git-fixes + +With vbus override enabled when in OTG dr_mode, Host<->Peripheral +switch now works on SM8550, otherwise the DWC3 seems to be stuck +in Host mode only. + +Fixes: a4333c3a6ba9 ("usb: dwc3: Add Qualcomm DWC3 glue driver") +Reviewed-by: Bryan O'Donoghue +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20230123-topic-sm8550-upstream-dwc3-qcom-otg-v2-1-2d400e598463@linaro.org +Signed-off-by: Greg Kroah-Hartman +Acked-by: Takashi Iwai + +--- + drivers/usb/dwc3/dwc3-qcom.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c +index b0a0351d2d8b..959fc925ca7c 100644 +--- a/drivers/usb/dwc3/dwc3-qcom.c ++++ b/drivers/usb/dwc3/dwc3-qcom.c +@@ -901,7 +901,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev) + qcom->mode = usb_get_dr_mode(&qcom->dwc3->dev); + + /* enable vbus override for device mode */ +- if (qcom->mode == USB_DR_MODE_PERIPHERAL) ++ if (qcom->mode != USB_DR_MODE_HOST) + dwc3_qcom_vbus_override_enable(qcom, true); + + /* register extcon to override sw_vbus on Vbus change later */ +-- +2.35.3 + diff --git a/patches.suse/usb-gadget-f_fs-Fix-unbalanced-spinlock-in-__ffs_ep0.patch b/patches.suse/usb-gadget-f_fs-Fix-unbalanced-spinlock-in-__ffs_ep0.patch new file mode 100644 index 0000000..c58ba8f --- /dev/null +++ b/patches.suse/usb-gadget-f_fs-Fix-unbalanced-spinlock-in-__ffs_ep0.patch @@ -0,0 +1,45 @@ +From 921deb9da15851425ccbb6ee409dc2fd8fbdfe6b Mon Sep 17 00:00:00 2001 +From: Udipto Goswami +Date: Tue, 24 Jan 2023 14:41:49 +0530 +Subject: [PATCH] usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait +Git-commit: 921deb9da15851425ccbb6ee409dc2fd8fbdfe6b +Patch-mainline: v6.2-rc7 +References: git-fixes + +__ffs_ep0_queue_wait executes holding the spinlock of &ffs->ev.waitq.lock +and unlocks it after the assignments to usb_request are done. +However in the code if the request is already NULL we bail out returning +-EINVAL but never unlocked the spinlock. + +Fix this by adding spin_unlock_irq &ffs->ev.waitq.lock before returning. + +Fixes: 6a19da111057 ("usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait") +Reviewed-by: John Keeping +Signed-off-by: Udipto Goswami +Link: https://lore.kernel.org/r/20230124091149.18647-1-quic_ugoswami@quicinc.com +Signed-off-by: Greg Kroah-Hartman +Acked-by: Takashi Iwai + +--- + drivers/usb/gadget/function/f_fs.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c +index 523a961b910b..8ad354741380 100644 +--- a/drivers/usb/gadget/function/f_fs.c ++++ b/drivers/usb/gadget/function/f_fs.c +@@ -279,8 +279,10 @@ static int __ffs_ep0_queue_wait(struct ffs_data *ffs, char *data, size_t len) + struct usb_request *req = ffs->ep0req; + int ret; + +- if (!req) ++ if (!req) { ++ spin_unlock_irq(&ffs->ev.waitq.lock); + return -EINVAL; ++ } + + req->zero = len < le16_to_cpu(ffs->ev.setup.wLength); + +-- +2.35.3 + diff --git a/patches.suse/usb-gadget-f_uac2-Fix-incorrect-increment-of-bNumEnd.patch b/patches.suse/usb-gadget-f_uac2-Fix-incorrect-increment-of-bNumEnd.patch new file mode 100644 index 0000000..b773def --- /dev/null +++ b/patches.suse/usb-gadget-f_uac2-Fix-incorrect-increment-of-bNumEnd.patch @@ -0,0 +1,44 @@ +From 2fa89458af9993fab8054daf827f38881e2ad473 Mon Sep 17 00:00:00 2001 +From: Pratham Pratap +Date: Wed, 25 Jan 2023 12:57:25 +0530 +Subject: [PATCH] usb: gadget: f_uac2: Fix incorrect increment of bNumEndpoints +Git-commit: 2fa89458af9993fab8054daf827f38881e2ad473 +Patch-mainline: v6.2-rc7 +References: git-fixes + +Currently connect/disconnect of USB cable calls afunc_bind and +eventually increments the bNumEndpoints. Performing multiple +plugin/plugout will increment bNumEndpoints incorrectly, and on +the next plug-in it leads to invalid configuration of descriptor +and hence enumeration fails. + +Fix this by resetting the value of bNumEndpoints to 1 on every +afunc_bind call. + +Fixes: 40c73b30546e ("usb: gadget: f_uac2: add adaptive sync support for capture") +Cc: stable +Signed-off-by: Pratham Pratap +Signed-off-by: Prashanth K +Link: https://lore.kernel.org/r/1674631645-28888-1-git-send-email-quic_prashk@quicinc.com +Signed-off-by: Greg Kroah-Hartman +Acked-by: Takashi Iwai + +--- + drivers/usb/gadget/function/f_uac2.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c +index 08726e4c68a5..0219cd79493a 100644 +--- a/drivers/usb/gadget/function/f_uac2.c ++++ b/drivers/usb/gadget/function/f_uac2.c +@@ -1142,6 +1142,7 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn) + } + std_as_out_if0_desc.bInterfaceNumber = ret; + std_as_out_if1_desc.bInterfaceNumber = ret; ++ std_as_out_if1_desc.bNumEndpoints = 1; + uac2->as_out_intf = ret; + uac2->as_out_alt = 0; + +-- +2.35.3 + diff --git a/patches.suse/vc_screen-move-load-of-struct-vc_data-pointer-in-vcs.patch b/patches.suse/vc_screen-move-load-of-struct-vc_data-pointer-in-vcs.patch new file mode 100644 index 0000000..704c800 --- /dev/null +++ b/patches.suse/vc_screen-move-load-of-struct-vc_data-pointer-in-vcs.patch @@ -0,0 +1,121 @@ +From 226fae124b2dac217ea5436060d623ff3385bc34 Mon Sep 17 00:00:00 2001 +From: George Kennedy +Date: Tue, 24 Jan 2023 11:16:54 -0500 +Subject: [PATCH] vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF +Git-commit: 226fae124b2dac217ea5436060d623ff3385bc34 +Patch-mainline: v6.2-rc7 +References: git-fixes + +After a call to console_unlock() in vcs_read() the vc_data struct can be +freed by vc_deallocate(). Because of that, the struct vc_data pointer +load must be done at the top of while loop in vcs_read() to avoid a UAF +when vcs_size() is called. + +Syzkaller reported a UAF in vcs_size(). + +Bug: KASAN: use-after-free in vcs_size (drivers/tty/vt/vc_screen.c:215) +Read of size 4 at addr ffff8881137479a8 by task 4a005ed81e27e65/1537 + +Cpu: 0 PID: 1537 Comm: 4a005ed81e27e65 Not tainted 6.2.0-rc5 #1 +Hardware name: Red Hat KVM, BIOS 1.15.0-2.module +Call Trace: + +__asan_report_load4_noabort (mm/kasan/report_generic.c:350) +vcs_size (drivers/tty/vt/vc_screen.c:215) +vcs_read (drivers/tty/vt/vc_screen.c:415) +vfs_read (fs/read_write.c:468 fs/read_write.c:450) +... + + +Allocated by task 1191: +... +kmalloc_trace (mm/slab_common.c:1069) +vc_allocate (./include/linux/slab.h:580 ./include/linux/slab.h:720 + drivers/tty/vt/vt.c:1128 drivers/tty/vt/vt.c:1108) +con_install (drivers/tty/vt/vt.c:3383) +tty_init_dev (drivers/tty/tty_io.c:1301 drivers/tty/tty_io.c:1413 + drivers/tty/tty_io.c:1390) +tty_open (drivers/tty/tty_io.c:2080 drivers/tty/tty_io.c:2126) +chrdev_open (fs/char_dev.c:415) +do_dentry_open (fs/open.c:883) +vfs_open (fs/open.c:1014) +... + +Freed by task 1548: +... +kfree (mm/slab_common.c:1021) +vc_port_destruct (drivers/tty/vt/vt.c:1094) +tty_port_destructor (drivers/tty/tty_port.c:296) +tty_port_put (drivers/tty/tty_port.c:312) +vt_disallocate_all (drivers/tty/vt/vt_ioctl.c:662 (discriminator 2)) +vt_ioctl (drivers/tty/vt/vt_ioctl.c:903) +tty_ioctl (drivers/tty/tty_io.c:2776) +... + +The buggy address belongs to the object at ffff888113747800 + which belongs to the cache kmalloc-1k of size 1024 +The buggy address is located 424 bytes inside of + 1024-byte region [ffff888113747800, ffff888113747c00) + +The buggy address belongs to the physical page: +page:00000000b3fe6c7c refcount:1 mapcount:0 mapping:0000000000000000 + index:0x0 pfn:0x113740 +head:00000000b3fe6c7c order:3 compound_mapcount:0 subpages_mapcount:0 + compound_pincount:0 +anon flags: 0x17ffffc0010200(slab|head|node=0|zone=2|lastcpupid=0x1fffff) +Raw: 0017ffffc0010200 ffff888100042dc0 0000000000000000 dead000000000001 +Raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000 +page dumped because: kasan: bad access detected + +Memory state around the buggy address: + ffff888113747880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb + ffff888113747900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb +> ffff888113747980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb + ^ + ffff888113747a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb + ffff888113747a80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb +================================================================== +Disabling lock debugging due to kernel taint + +Fixes: ac751efa6a0d ("console: rename acquire/release_console_sem() to console_lock/unlock()") +Reported-by: syzkaller +Suggested-by: Jiri Slaby +Signed-off-by: George Kennedy +Link: https://lore.kernel.org/r/1674577014-12374-1-git-send-email-george.kennedy@oracle.com +Signed-off-by: Greg Kroah-Hartman +Acked-by: Takashi Iwai + +--- + drivers/tty/vt/vc_screen.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/tty/vt/vc_screen.c b/drivers/tty/vt/vc_screen.c +index 1850bacdb5b0..f566eb1839dc 100644 +--- a/drivers/tty/vt/vc_screen.c ++++ b/drivers/tty/vt/vc_screen.c +@@ -386,10 +386,6 @@ vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) + + uni_mode = use_unicode(inode); + attr = use_attributes(inode); +- ret = -ENXIO; +- vc = vcs_vc(inode, &viewed); +- if (!vc) +- goto unlock_out; + + ret = -EINVAL; + if (pos < 0) +@@ -407,6 +403,11 @@ vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) + unsigned int this_round, skip = 0; + int size; + ++ ret = -ENXIO; ++ vc = vcs_vc(inode, &viewed); ++ if (!vc) ++ goto unlock_out; ++ + /* Check whether we are above size each round, + * as copy_to_user at the end of this loop + * could sleep. +-- +2.35.3 + diff --git a/series.conf b/series.conf index 61bceb8..3d6eed0 100644 --- a/series.conf +++ b/series.conf @@ -8270,7 +8270,9 @@ patches.suse/selftests-clone3-clone3-add-case-CLONE3_ARGS_NO_TEST.patch patches.suse/selftests-ftrace-make-kprobe-profile-testcase-descri.patch patches.suse/selftests-harness-avoid-false-negatives-if-test-has-.patch + patches.suse/tools-fix-ARRAY_SIZE-defines-in-tools-and-selftests-.patch patches.suse/selftests-rseq-remove-ARRAY_SIZE-define-from-individ.patch + patches.suse/selftests-vm-remove-ARRAY_SIZE-define-from-individua.patch patches.suse/drm-bridge-display-connector-fix-an-uninitialized-po.patch patches.suse/drm-fix-null-ptr-deref-in-drm_dev_init_release.patch patches.suse/drm-panel-kingdisplay-kd097d04-Delete-panel-on-attac.patch @@ -8456,6 +8458,7 @@ patches.suse/igc-AF_XDP-zero-copy-metadata-adjust-breaks-SKBs-on-.patch patches.suse/net-ice-Fix-boolean-assignment.patch patches.suse/net-ice-Remove-unused-enum.patch + patches.suse/net-mlx5-Dynamically-resize-flow-counters-query-buff.patch patches.suse/net-smc-Clear-memory-when-release-and-reuse-buffer patches.suse/ath11k-set-correct-NL80211_FEATURE_DYNAMIC_SMPS-for-.patch patches.suse/wcn36xx-ensure-pairing-of-init_scan-finish_scan-and-.patch @@ -12818,6 +12821,7 @@ patches.suse/printk-wake-waiters-for-safe-and-NMI-contexts.patch patches.suse/Documentation-move-watch_queue-to-core-api.patch patches.suse/docs-submitting-patches-Fix-crossref-to-The-canonica.patch + patches.suse/selftests-Provide-local-define-of-__cpuid_count.patch patches.suse/selftests-resctrl-Fix-null-pointer-dereference-on-op.patch patches.suse/kselftest-cgroup-fix-test_stress.sh-to-use-OUTPUT-di.patch patches.suse/msft-hv-2567-net-hyperv-remove-use-of-bpf_op_t.patch @@ -13283,6 +13287,7 @@ patches.suse/msft-hv-2584-Drivers-hv-vmbus-Accept-hv_sock-offers-in-isolated-g.patch patches.suse/msft-hv-2586-PCI-hv-Fix-hv_arch_irq_unmask-for-multi-MSI.patch patches.suse/msft-hv-2588-PCI-hv-Do-not-set-PCI_COMMAND_MEMORY-to-reduce-VM-bo.patch + patches.suse/msft-hv-2593-drm-hyperv-Add-error-message-for-fb-size-greater-tha.patch patches.suse/msft-hv-2597-x86-hyperv-Disable-hardlockup-detector-by-default-in.patch patches.suse/msft-hv-2602-PCI-hv-Reuse-existing-IRTE-allocation-in-compose_msi.patch patches.suse/msft-hv-2603-PCI-hv-Fix-interrupt-mapping-for-multi-MSI.patch @@ -13697,6 +13702,7 @@ patches.suse/mm-slub-add-missing-TID-updates-on-slab-deactivation.patch patches.suse/scsi-scsi_debug-Fix-zone-transition-to-full-condition.patch patches.suse/scsi-iscsi-Exclude-zero-from-the-endpoint-ID-range.patch + patches.suse/msft-hv-2625-scsi-storvsc-Correct-reporting-of-Hyper-V-I-O-size-l.patch patches.suse/scsi-ibmvfc-Allocate-free-queue-resource-only-during.patch patches.suse/scsi-ibmvfc-Store-vhost-pointer-during-subcrq-alloca.patch patches.suse/9p-fix-fid-refcount-leak-in-v9fs_vfs_atomic_open_dot.patch @@ -14834,7 +14840,6 @@ patches.suse/mtd-rawnand-arasan-Update-NAND-bus-clock-instead-of-.patch patches.suse/mtd-rawnand-arasan-Fix-clock-rate-in-NV-DDR.patch patches.suse/mtd-spi-nor-fix-spi_nor_spimem_setup_op-call-in-spi_.patch - patches.suse/0029-zram-do-not-lookup-algorithm-in-backends-table.patch patches.suse/mm-memcontrol-fix-potential-oom_lock-recursion-deadlock.patch patches.suse/vfio-Clear-the-caps-buf-to-NULL-after-free.patch patches.suse/vfio-ccw-Remove-UUID-from-s390-debug-log @@ -15982,6 +15987,7 @@ patches.suse/iio-pressure-dps310-Refactor-startup-procedure.patch patches.suse/iio-pressure-dps310-Reset-chip-after-timeout.patch patches.suse/extcon-usbc-tusb320-Factor-out-extcon-into-dedicated.patch + patches.suse/extcon-usbc-tusb320-fix-kernel-doc-warning.patch patches.suse/spmi-pmic-arb-do-not-ack-and-clear-peripheral-interr.patch patches.suse/spmi-pmic-arb-correct-duplicate-APID-to-PPID-mapping.patch patches.suse/staging-vt6655-fix-potential-memory-leak.patch @@ -16695,6 +16701,7 @@ patches.suse/ASoC-max98373-Add-checks-for-devm_kcalloc.patch patches.suse/ASoC-soc-pcm-Add-NULL-check-in-BE-reparenting.patch patches.suse/nilfs2-fix-nilfs_sufile_mark_dirty-not-set-segment-u.patch + patches.suse/msft-hv-2700-x86-hyperv-Restore-VP-assist-page-after-cpu-offlinin.patch patches.suse/msft-hv-2680-scsi-storvsc-Fix-handling-of-srb_status-and-capacity.patch patches.suse/msft-hv-2681-PCI-hv-Only-reuse-existing-IRTE-allocation-for-Multi.patch patches.suse/msft-hv-2682-Drivers-hv-vmbus-fix-double-free-in-the-error-path-o.patch @@ -16842,6 +16849,7 @@ patches.suse/tpm-tpm_tis-Add-the-missed-acpi_put_table-to-fix-mem.patch patches.suse/tpm-tpm_ftpm_tee-Fix-error-handling-in-ftpm_mod_init.patch patches.suse/tpm-tpm_crb-Fix-error-message-in-__crb_relinquish_lo.patch + patches.suse/msft-hv-2740-x86-hyperv-Remove-unregister-syscore-call-from-Hyper.patch patches.suse/ARM-ux500-do-not-directly-dereference-__iomem.patch patches.suse/soc-qcom-llcc-make-irq-truly-optional.patch patches.suse/drivers-soc-ti-knav_qmss_queue-Mark-knav_acc_firmwar.patch @@ -17443,6 +17451,9 @@ patches.suse/drm-i915-unpin-on-error-in-intel_vgpu_shadow_mm_pin.patch patches.suse/drm-i915-gvt-fix-gvt-debugfs-destroy.patch patches.suse/drm-i915-gvt-fix-vgpu-debugfs-clean-in-remove.patch + patches.suse/RDMA-srp-Move-large-values-to-a-new-enum-for-gcc13.patch + patches.suse/RDMA-mlx5-Fix-mlx5_ib_get_hw_stats-when-used-for-dev.patch + patches.suse/RDMA-mlx5-Fix-validation-of-max_rd_atomic-caps-for-D.patch patches.suse/Revert-usb-ulpi-defer-ulpi_register-on-ulpi_read_id-.patch patches.suse/cifs-Fix-kmap_local_page-unmapping.patch patches.suse/cifs-ignore-ipc-reconnect-failures-during-dfs-failover.patch @@ -17514,6 +17525,7 @@ patches.suse/HID-check-empty-report_list-in-hid_validate_values.patch patches.suse/HID-check-empty-report_list-in-bigben_probe.patch patches.suse/HID-revert-CHERRY_MOUSE_000C-quirk.patch + patches.suse/HID-playstation-sanity-check-DualSense-calibration-d.patch patches.suse/HID-betop-check-shape-of-output-reports.patch patches.suse/wifi-mac80211-sdata-can-be-NULL-during-AMPDU-start.patch patches.suse/net-nfc-Fix-use-after-free-in-local_cleanup.patch @@ -17537,6 +17549,7 @@ patches.suse/dmaengine-lgm-Move-DT-parsing-after-initialization.patch patches.suse/dmaengine-tegra210-adma-fix-global-intr-clear.patch patches.suse/dmaengine-Fix-double-increment-of-client_count-in-dm.patch + patches.suse/dmaengine-imx-sdma-Fix-a-possible-memory-leak-in-sdm.patch patches.suse/dmaengine-xilinx_dma-call-of_node_put-when-breaking-.patch patches.suse/drm-i915-display-Check-source-height-is-0.patch patches.suse/drm-i915-re-disable-RC6p-on-Sandy-Bridge.patch @@ -17554,7 +17567,10 @@ patches.suse/ARM-dts-imx6ul-pico-dwarf-Use-clock-frequency.patch patches.suse/ARM-dts-imx7d-pico-Use-clock-frequency.patch patches.suse/ARM-dts-imx6qdl-gw560x-Remove-incorrect-uart-has-rts.patch + patches.suse/ARM-dts-imx-Fix-pca9547-i2c-mux-node-name.patch + patches.suse/ARM-dts-vf610-Fix-pca9548-i2c-mux-node-names.patch patches.suse/arm64-dts-imx8mm-beacon-Fix-ecspi2-pinmux.patch + patches.suse/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-SDHC.patch patches.suse/ARM-imx-add-missing-of_node_put.patch patches.suse/arm64-dts-imx8mm-venice-gw7901-fix-USB2-controller-O.patch patches.suse/soc-imx8m-Fix-incorrect-check-for-of_clk_get_by_name.patch @@ -17568,6 +17584,13 @@ patches.suse/mmc-sunxi-mmc-Fix-clock-refcount-imbalance-during-un.patch patches.suse/ACPI-PRM-Check-whether-EFI-runtime-is-available.patch patches.suse/btrfs-fix-race-between-quota-rescan-and-disable-lead.patch + patches.suse/RDMA-rxe-Prevent-faulty-rkey-generation.patch + patches.suse/RDMA-core-Fix-ib-block-iterator-counter-overflow.patch + patches.suse/IB-hfi1-Reject-a-zero-length-user-expected-buffer.patch + patches.suse/IB-hfi1-Reserve-user-expected-TIDs.patch + patches.suse/IB-hfi1-Fix-expected-receive-setup-error-exit-issues.patch + patches.suse/IB-hfi1-Immediately-remove-invalid-memory-from-hardw.patch + patches.suse/IB-hfi1-Remove-user-expected-buffer-invalidate-race.patch patches.suse/pinctrl-rockchip-fix-mux-route-data-for-rk3568.patch patches.suse/thunderbolt-Do-not-report-errors-if-on-board-retimer.patch patches.suse/thunderbolt-Do-not-call-PM-runtime-functions-in-tb_r.patch @@ -17614,6 +17637,7 @@ patches.suse/module-Don-t-wait-for-GOING-modules.patch patches.suse/netrom-Fix-use-after-free-of-a-listening-socket.patch patches.suse/sctp-fail-if-no-bound-addresses-can-be-used-for-a-gi.patch + patches.suse/net-tg3-resolve-deadlock-in-tg3_reset_task-during-EE.patch patches.suse/drm-i915-selftest-fix-intel_selftest_modify_policy-a.patch patches.suse/Revert-Input-synaptics-switch-touchpad-on-HP-Laptop-.patch patches.suse/scsi-Revert-scsi-core-map-PQ-1-PDT-other-values-to-SCSI_SCAN_TARGET_PRESENT.patch @@ -17630,6 +17654,7 @@ patches.suse/net-phy-dp83822-Fix-null-pointer-access-on-DP83825-D.patch patches.suse/netrom-Fix-use-after-free-caused-by-accept-on-alread.patch patches.suse/net-phy-meson-gxl-Add-generic-dummy-stubs-for-MMD-re.patch + patches.suse/msft-hv-2745-hv_netvsc-Fix-missed-pagebuf-entries-in-netvsc_dma_m.patch patches.suse/can-j1939-fix-errant-WARN_ON_ONCE-in-j1939_session_d.patch patches.suse/ata-libata-Fix-sata_down_spd_limit-when-no-link-spee.patch patches.suse/drm-vc4-hdmi-make-CEC-adapter-name-unique.patch @@ -17641,6 +17666,28 @@ patches.suse/powerpc-64s-radix-Fix-crash-with-unaligned-relocated.patch patches.suse/powerpc-64s-radix-Fix-RWX-mapping-with-relocated-ker.patch patches.suse/powerpc-kexec_file-Count-hot-pluggable-memory-in-FDT.patch + patches.suse/fbcon-Check-font-dimension-limits.patch + patches.suse/fpga-stratix10-soc-Fix-return-value-check-in-s10_ops.patch + patches.suse/iio-adc-stm32-dfsdm-fill-module-aliases.patch + patches.suse/iio-adc-berlin2-adc-Add-missing-of_node_put-in-error.patch + patches.suse/iio-adc-twl6030-Enable-measurements-of-VUSB-VBAT-and.patch + patches.suse/iio-imu-fxos8700-fix-map-label-of-channel-type-to-MA.patch + patches.suse/iio-imu-fxos8700-fix-swapped-ACCEL-and-MAGN-channels.patch + patches.suse/iio-imu-fxos8700-fix-incomplete-ACCEL-and-MAGN-chann.patch + patches.suse/iio-imu-fxos8700-fix-IMU-data-bits-returned-to-user-.patch + patches.suse/iio-imu-fxos8700-fix-ACCEL-measurement-range-selecti.patch + patches.suse/iio-adc-twl6030-Enable-measurement-of-VAC.patch + patches.suse/iio-hid-fix-the-retval-in-accel_3d_capture_sample.patch + patches.suse/iio-hid-fix-the-retval-in-gyro_3d_capture_sample.patch + patches.suse/iio-imu-fxos8700-fix-incorrect-ODR-mode-readback.patch + patches.suse/iio-imu-fxos8700-fix-failed-initialization-ODR-mode-.patch + patches.suse/iio-imu-fxos8700-remove-definition-FXOS8700_CTRL_ODR.patch + patches.suse/iio-imu-fxos8700-fix-MAGN-sensor-scale-and-unit.patch + patches.suse/serial-8250_dma-Fix-DMA-Rx-rearm-race.patch + patches.suse/vc_screen-move-load-of-struct-vc_data-pointer-in-vcs.patch + patches.suse/usb-dwc3-qcom-enable-vbus-override-when-in-OTG-dr-mo.patch + patches.suse/usb-gadget-f_fs-Fix-unbalanced-spinlock-in-__ffs_ep0.patch + patches.suse/usb-gadget-f_uac2-Fix-incorrect-increment-of-bNumEnd.patch ######################################################## # end of sorted patches