FAILED: patch "[PATCH] scsi: qla2xxx: Move FCE Trace buffer allocation to user" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x 841df27d619ee1f5ca6473e15227b39d6136562d
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025021020-sappiness-encode-393a@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 841df27d619ee1f5ca6473e15227b39d6136562d Mon Sep 17 00:00:00 2001
From: Quinn Tran <[email protected]>
Date: Fri, 15 Nov 2024 18:33:09 +0530
Subject: [PATCH] scsi: qla2xxx: Move FCE Trace buffer allocation to user
control
Currently FCE Tracing is enabled to log additional ELS events. Instead, user will enable or disable this feature through debugfs.
Modify existing DFS knob to allow user to enable or disable this feature.
echo [1 | 0] > /sys/kernel/debug/qla2xxx/qla2xxx_??/fce cat /sys/kernel/debug/qla2xxx/qla2xxx_??/fce
drivers/scsi/qla2xxx/qla_def.h +2 -0
@@ -4098,6 +4098,8 @@ struct qla_hw_data { uint32_t npiv_supported :1; uint32_t pci_channel_io_perm_failure :1; uint32_t fce_enabled :1; + uint32_t user_enabled_fce :1; + uint32_t fce_dump_buf_alloced :1; uint32_t fac_supported :1; uint32_t chip_reset_done :1;
drivers/scsi/qla2xxx/qla_dfs.c +101 -21
154 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_gbl.h +3 -0
@@ -11,6 +11,9 @@/* * Global Function Prototypes in qla_init.c source file. */ +int qla2x00_alloc_fce_trace (scsi_qla_host_t *); +void qla2x00_free_fce_trace (struct qla_hw_data *ha); +void qla_enable_fce_trace (scsi_qla_host_t *);extern int qla2x00_initialize_adapter (scsi_qla_host_t *);extern int qla24xx_post_prli_work (struct scsi_qla_host *vha,fc_port_t *fcport);
drivers/scsi/qla2xxx/qla_init.c +19 -9
@@ -2681,7 +2681,7 @@ qla83xx_nic_core_fw_load(scsi_qla_host_t *vha)return rval; } -static void qla_enable_fce_trace (scsi_qla_host_t *vha) +void qla_enable_fce_trace (scsi_qla_host_t *vha) {int rval;struct qla_hw_data *ha = vha->hw;
@@ -3717,25 +3717,24 @@ qla24xx_chip_diag(scsi_qla_host_t *vha)return rval; } -static void -qla2x00_alloc_fce_trace (scsi_qla_host_t *vha) +int qla2x00_alloc_fce_trace (scsi_qla_host_t *vha) {dma_addr_t tc_dma;void *tc;struct qla_hw_data *ha = vha->hw;if (!IS_FWI2_CAPABLE (ha)) -return ; +return -EINVAL ;if (!IS_QLA25XX (ha) && !IS_QLA81XX (ha) && !IS_QLA83XX (ha) && !IS_QLA27XX (ha) && !IS_QLA28XX (ha)) -return ; +return -EINVAL ;if (ha->fce) {ql_dbg (ql_dbg_init, vha,0x00bd ,"%s: FCE Mem is already allocated.\n" , __func__); -return ; +return -EIO ; }/* Allocate memory for Fibre Channel Event Buffer. */
@@ -3745,7 +3744,7 @@ qla2x00_alloc_fce_trace(scsi_qla_host_t *vha)ql_log (ql_log_warn, vha,0x00be ,"Unable to allocate (%d KB) for FCE.\n" ,FCE_SIZE /1024 ); -return ; +return -ENOMEM ; } ql_dbg(ql_dbg_init, vha, 0x00c0,
@@ -3754,6 +3753,16 @@ qla2x00_alloc_fce_trace(scsi_qla_host_t *vha) ha->fce_dma = tc_dma; ha->fce = tc; ha->fce_bufs =FCE_NUM_BUFFERS ; +return 0 ; +} + +void qla2x00_free_fce_trace (struct qla_hw_data *ha) +{ +if (!ha->fce) +return ; +dma_free_coherent (&ha->pdev->dev,FCE_SIZE , ha->fce, ha->fce_dma); + ha->fce =NULL ; + ha->fce_dma =0 ; } static void
@@ -3844,9 +3853,10 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)if (ha->tgt.atio_ring) mq_size += ha->tgt.atio_q_length *sizeof (request_t); -qla2x00_alloc_fce_trace (vha); -if (ha->fce) +if (ha->fce) { fce_size =sizeof (struct qla2xxx_fce_chain ) +FCE_SIZE ; + ha->flags.fce_dump_buf_alloced =1 ; + }qla2x00_alloc_eft_trace (vha);if (ha->eft) eft_size =EFT_SIZE ;