You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(19) |
Nov
(18) |
Dec
(34) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(14) |
Feb
(14) |
Mar
(3) |
Apr
(10) |
May
(10) |
Jun
(17) |
Jul
(15) |
Aug
(24) |
Sep
(24) |
Oct
(11) |
Nov
(13) |
Dec
(15) |
2008 |
Jan
(10) |
Feb
(46) |
Mar
(20) |
Apr
(42) |
May
(44) |
Jun
(22) |
Jul
(59) |
Aug
(8) |
Sep
(15) |
Oct
(52) |
Nov
(30) |
Dec
(38) |
2009 |
Jan
(27) |
Feb
(27) |
Mar
(47) |
Apr
(85) |
May
(74) |
Jun
(41) |
Jul
(70) |
Aug
(64) |
Sep
(97) |
Oct
(147) |
Nov
(67) |
Dec
(48) |
2010 |
Jan
(68) |
Feb
(33) |
Mar
(53) |
Apr
(98) |
May
(55) |
Jun
(71) |
Jul
(99) |
Aug
(132) |
Sep
(291) |
Oct
(220) |
Nov
(344) |
Dec
(300) |
2011 |
Jan
(57) |
Feb
(25) |
Mar
(59) |
Apr
(104) |
May
(60) |
Jun
(155) |
Jul
(143) |
Aug
(43) |
Sep
(53) |
Oct
(20) |
Nov
(35) |
Dec
(103) |
2012 |
Jan
(62) |
Feb
(43) |
Mar
(29) |
Apr
(80) |
May
(75) |
Jun
(61) |
Jul
(52) |
Aug
(58) |
Sep
(33) |
Oct
(32) |
Nov
(69) |
Dec
(37) |
2013 |
Jan
(77) |
Feb
(28) |
Mar
(52) |
Apr
(18) |
May
(37) |
Jun
(21) |
Jul
(22) |
Aug
(55) |
Sep
(29) |
Oct
(74) |
Nov
(50) |
Dec
(44) |
2014 |
Jan
(77) |
Feb
(62) |
Mar
(81) |
Apr
(99) |
May
(59) |
Jun
(95) |
Jul
(55) |
Aug
(34) |
Sep
(78) |
Oct
(33) |
Nov
(48) |
Dec
(51) |
2015 |
Jan
(56) |
Feb
(120) |
Mar
(37) |
Apr
(15) |
May
(22) |
Jun
(196) |
Jul
(54) |
Aug
(33) |
Sep
(32) |
Oct
(42) |
Nov
(149) |
Dec
(61) |
2016 |
Jan
(15) |
Feb
(26) |
Mar
(37) |
Apr
(27) |
May
(14) |
Jun
(11) |
Jul
(13) |
Aug
(64) |
Sep
(2) |
Oct
(36) |
Nov
(18) |
Dec
(46) |
2017 |
Jan
(6) |
Feb
(1) |
Mar
(2) |
Apr
(50) |
May
(42) |
Jun
(11) |
Jul
(4) |
Aug
(12) |
Sep
(11) |
Oct
(21) |
Nov
(15) |
Dec
(42) |
2018 |
Jan
(33) |
Feb
(27) |
Mar
(20) |
Apr
(5) |
May
(4) |
Jun
(1) |
Jul
(42) |
Aug
(29) |
Sep
(11) |
Oct
(40) |
Nov
(312) |
Dec
(18) |
2019 |
Jan
(44) |
Feb
(98) |
Mar
(125) |
Apr
(160) |
May
(123) |
Jun
(33) |
Jul
(56) |
Aug
(81) |
Sep
(24) |
Oct
(23) |
Nov
(52) |
Dec
(86) |
2020 |
Jan
(6) |
Feb
(17) |
Mar
(62) |
Apr
(21) |
May
(118) |
Jun
(42) |
Jul
(52) |
Aug
(62) |
Sep
(20) |
Oct
(5) |
Nov
(23) |
Dec
(111) |
2021 |
Jan
(31) |
Feb
(8) |
Mar
(26) |
Apr
(13) |
May
(54) |
Jun
(31) |
Jul
(17) |
Aug
(10) |
Sep
(83) |
Oct
(8) |
Nov
(21) |
Dec
(33) |
2022 |
Jan
(67) |
Feb
(11) |
Mar
(4) |
Apr
(46) |
May
(12) |
Jun
(17) |
Jul
(19) |
Aug
(7) |
Sep
(53) |
Oct
(14) |
Nov
(29) |
Dec
(22) |
2023 |
Jan
(20) |
Feb
(4) |
Mar
(37) |
Apr
(25) |
May
(15) |
Jun
(20) |
Jul
(38) |
Aug
(1) |
Sep
(1) |
Oct
(34) |
Nov
|
Dec
(8) |
2024 |
Jan
(15) |
Feb
(10) |
Mar
|
Apr
(4) |
May
(23) |
Jun
|
Jul
(8) |
Aug
(2) |
Sep
(18) |
Oct
(1) |
Nov
(18) |
Dec
(15) |
2025 |
Jan
(5) |
Feb
(1) |
Mar
(7) |
Apr
(4) |
May
(18) |
Jun
(7) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gleb C. <lna...@ya...> - 2024-12-28 13:36:39
|
Commit: e711206 GitHub URL: https://github.com/SCST-project/scst/commit/e71120675892768c1be4896c05d2c9d58fcfff5c Author: Gleb Chesnokov Date: 2024-12-28T16:31:52+03:00 Log Message: ----------- qla2x00t-32gbit: Supported speed displayed incorrectly for VPorts The fc_function_template for vports was missing the .show_host_supported_speeds. The base port had the same. Add .show_host_supported_speeds to the vport template as well. Cc: st...@vg... Fixes: 2c3dfe3f6ad8 ("[SCSI] qla2xxx: add support for NPIV") Signed-off-by: Anil Gurumurthy <agu...@ma...> Signed-off-by: Nilesh Javali <nj...@ma...> Link: https://lore.kernel.org/r/202...@ma... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit e4e268f898c8 upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_attr.c | 1 + 1 file changed, 1 insertion(+) =================================================================== diff --git a/qla2x00t-32gbit/qla_attr.c b/qla2x00t-32gbit/qla_attr.c index ed07226..713b69d 100644 --- a/qla2x00t-32gbit/qla_attr.c +++ b/qla2x00t-32gbit/qla_attr.c @@ -3382,6 +3382,7 @@ struct fc_function_template qla2xxx_transport_vport_functions = { .show_host_node_name = 1, .show_host_port_name = 1, .show_host_supported_classes = 1, + .show_host_supported_speeds = 1, .get_host_port_id = qla2x00_get_host_port_id, .show_host_port_id = 1, |
From: Gleb C. <lna...@ya...> - 2024-12-28 13:36:26
|
Commit: a9cbb4e GitHub URL: https://github.com/SCST-project/scst/commit/a9cbb4e5a54f613231da0c52960c4c70b8eb31d8 Author: Gleb Chesnokov Date: 2024-12-28T16:31:52+03:00 Log Message: ----------- qla2x00t-32gbit: Fix NVMe and NPIV connect issue NVMe controller fails to send connect command due to failure to locate hw context buffer for NVMe queue 0 (blk_mq_hw_ctx, hctx_idx=0). The cause of the issue is NPIV host did not initialize the vha->irq_offset field. This field is given to blk-mq (blk_mq_pci_map_queues) to help locate the beginning of IO Queues which in turn help locate NVMe queue 0. Initialize this field to allow NVMe to work properly with NPIV host. kernel: nvme nvme5: Connect command failed, errno: -18 kernel: nvme nvme5: qid 0: secure concatenation is not supported kernel: nvme nvme5: NVME-FC{5}: create_assoc failed, assoc_id 2e9100 ret 401 kernel: nvme nvme5: NVME-FC{5}: reset: Reconnect attempt failed (401) kernel: nvme nvme5: NVME-FC{5}: Reconnect attempt in 2 seconds Cc: st...@vg... Fixes: f0783d43dde4 ("scsi: qla2xxx: Use correct number of vectors for online CPUs") Signed-off-by: Quinn Tran <qu...@ma...> Signed-off-by: Nilesh Javali <nj...@ma...> Link: https://lore.kernel.org/r/202...@ma... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit 4812b7796c14 upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_mid.c | 1 + 1 file changed, 1 insertion(+) =================================================================== diff --git a/qla2x00t-32gbit/qla_mid.c b/qla2x00t-32gbit/qla_mid.c index 76703f2..79879c4 100644 --- a/qla2x00t-32gbit/qla_mid.c +++ b/qla2x00t-32gbit/qla_mid.c @@ -506,6 +506,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport) return(NULL); } + vha->irq_offset = QLA_BASE_VECTORS; host = vha->host; fc_vport->dd_data = vha; /* New host info */ |
From: Gleb C. <lna...@ya...> - 2024-12-28 13:36:22
|
Commit: 2d8d55c GitHub URL: https://github.com/SCST-project/scst/commit/2d8d55c2de22437a9e8695a40ff59a1750c7f963 Author: Gleb Chesnokov Date: 2024-12-28T16:31:52+03:00 Log Message: ----------- qla2x00t-32gbit: Remove check req_sg_cnt should be equal to rsp_sg_cnt Firmware supports multiple sg_cnt for request and response for CT commands, so remove the redundant check. A check is there where sg_cnt for request and response should be same. This is not required as driver and FW have code to handle multiple and different sg_cnt on request and response. Cc: st...@vg... Signed-off-by: Saurav Kashyap <ska...@ma...> Signed-off-by: Nilesh Javali <nj...@ma...> Link: https://lore.kernel.org/r/202...@ma... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit 833c70e212fc upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_bsg.c | 10 ---------- 1 file changed, 10 deletions(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_bsg.c b/qla2x00t-32gbit/qla_bsg.c index f8a3278..c70aa71 100644 --- a/qla2x00t-32gbit/qla_bsg.c +++ b/qla2x00t-32gbit/qla_bsg.c @@ -497,16 +497,6 @@ qla2x00_process_ct(BSG_JOB_TYPE *bsg_job) goto done; } - if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) || - (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) { - ql_log(ql_log_warn, vha, 0x7011, - "request_sg_cnt: %x dma_request_sg_cnt: %x reply_sg_cnt:%x " - "dma_reply_sg_cnt: %x\n", bsg_job->request_payload.sg_cnt, - req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt); - rval = -EAGAIN; - goto done_unmap_sg; - } - if (!vha->flags.online) { ql_log(ql_log_warn, vha, 0x7012, "Host is not online.\n"); |
From: Gleb C. <lna...@ya...> - 2024-12-28 13:35:07
|
Commit: 767717c GitHub URL: https://github.com/SCST-project/scst/commit/767717c5dddf2496c4dd3fd2aefb4d4c664439fb Author: Gleb Chesnokov Date: 2024-12-28T16:31:52+03:00 Log Message: ----------- qla2x00t-32gbit: Fix use after free on unload System crash is observed with stack trace warning of use after free. There are 2 signals to tell dpc_thread to terminate (UNLOADING flag and kthread_stop). On setting the UNLOADING flag when dpc_thread happens to run at the time and sees the flag, this causes dpc_thread to exit and clean up itself. When kthread_stop is called for final cleanup, this causes use after free. Remove UNLOADING signal to terminate dpc_thread. Use the kthread_stop as the main signal to exit dpc_thread. [596663.812935] kernel BUG at mm/slub.c:294! [596663.812950] invalid opcode: 0000 [#1] SMP PTI [596663.812957] CPU: 13 PID: 1475935 Comm: rmmod Kdump: loaded Tainted: G IOE --------- - - 4.18.0-240.el8.x86_64 #1 [596663.812960] Hardware name: HP ProLiant DL380p Gen8, BIOS P70 08/20/2012 [596663.812974] RIP: 0010:__slab_free+0x17d/0x360 ... [596663.813008] Call Trace: [596663.813022] ? __dentry_kill+0x121/0x170 [596663.813030] ? _cond_resched+0x15/0x30 [596663.813034] ? _cond_resched+0x15/0x30 [596663.813039] ? wait_for_completion+0x35/0x190 [596663.813048] ? try_to_wake_up+0x63/0x540 [596663.813055] free_task+0x5a/0x60 [596663.813061] kthread_stop+0xf3/0x100 [596663.813103] qla2x00_remove_one+0x284/0x440 [qla2xxx] Cc: st...@vg... Signed-off-by: Quinn Tran <qu...@ma...> Signed-off-by: Nilesh Javali <nj...@ma...> Link: https://lore.kernel.org/r/202...@ma... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit 07c903db0a2f upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_os.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_os.c b/qla2x00t-32gbit/qla_os.c index 5d882ef..0487449 100644 --- a/qla2x00t-32gbit/qla_os.c +++ b/qla2x00t-32gbit/qla_os.c @@ -6985,12 +6985,15 @@ qla2x00_do_dpc(void *data) set_user_nice(current, MIN_NICE); set_current_state(TASK_INTERRUPTIBLE); - while (!kthread_should_stop()) { + while (1) { ql_dbg(ql_dbg_dpc, base_vha, 0x4000, "DPC handler sleeping.\n"); schedule(); + if (kthread_should_stop()) + break; + if (test_and_clear_bit(DO_EEH_RECOVERY, &base_vha->dpc_flags)) qla_pci_set_eeh_busy(base_vha); @@ -7003,15 +7006,16 @@ qla2x00_do_dpc(void *data) goto end_loop; } + if (test_bit(UNLOADING, &base_vha->dpc_flags)) + /* don't do any work. Wait to be terminated by kthread_stop */ + goto end_loop; + ha->dpc_active = 1; ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001, "DPC handler waking up, dpc_flags=0x%lx.\n", base_vha->dpc_flags); - if (test_bit(UNLOADING, &base_vha->dpc_flags)) - break; - if (IS_P3P_TYPE(ha)) { if (IS_QLA8044(ha)) { if (test_and_clear_bit(ISP_UNRECOVERABLE, @@ -7324,9 +7328,6 @@ end_loop: */ ha->dpc_active = 0; - /* Cleanup any residual CTX SRBs. */ - qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); - return 0; } |
From: Gleb C. <lna...@ya...> - 2024-12-28 13:32:22
|
Commit: bbb412c GitHub URL: https://github.com/SCST-project/scst/commit/bbb412cc39252458d67650db1f644159098f27be Author: Gleb Chesnokov Date: 2024-12-28T16:31:52+03:00 Log Message: ----------- qla2x00t-32gbit: Fix abort in bsg timeout Current abort of bsg on timeout prematurely clears the outstanding_cmds[]. Abort does not allow FW to return the IOCB/SRB. In addition, bsg_job_done() is not called to return the BSG (i.e. leak). Abort the outstanding bsg/SRB and wait for the completion. The completion IOCB will wake up the bsg_timeout thread. If abort is not successful, then driver will forcibly call bsg_job_done() and free the srb. Err Inject: - qaucli -z - assign CT Passthru IOCB's NportHandle with another initiator nport handle to trigger timeout. Remote port will drop CT request. - bsg_job_done is properly called as part of cleanup kernel: qla2xxx [0000:21:00.1]-7012:7: qla2x00_process_ct : 286 : Error Inject. kernel: qla2xxx [0000:21:00.1]-7016:7: bsg rqst type: FC_BSG_HST_CT else type: 101 - loop-id=1 portid=fffffa. kernel: qla2xxx [0000:21:00.1]-70bb:7: qla24xx_bsg_timeout CMD timeout. bsg ptr ffff9971a42f0838 msgcode 80000004 vendor cmd fa010000 kernel: qla2xxx [0000:21:00.1]-507c:7: Abort command issued - hdl=4b, type=5 kernel: qla2xxx [0000:21:00.1]-5040:7: ELS-CT pass-through-ct pass-through error hdl=4b comp_status-status=0x5 error subcode 1=0x0 error subcode 2=0xaf882e80. kernel: qla2xxx [0000:21:00.1]-7009:7: qla2x00_bsg_job_done: sp hdl 4b, result=70000 bsg ptr ffff9971a42f0838 kernel: qla2xxx [0000:21:00.1]-802c:7: Aborting bsg ffff9971a42f0838 sp=ffff99760b87ba80 handle=4b rval=0 kernel: qla2xxx [0000:21:00.1]-708a:7: bsg abort success. bsg ffff9971a42f0838 sp=ffff99760b87ba80 handle=0x4b kernel: qla2xxx [0000:21:00.1]-7012:7: qla2x00_process_ct : 286 : Error Inject. kernel: qla2xxx [0000:21:00.1]-7016:7: bsg rqst type: FC_BSG_HST_CT else type: 101 - loop-id=1 portid=fffffa. kernel: qla2xxx [0000:21:00.1]-70bb:7: qla24xx_bsg_timeout CMD timeout. bsg ptr ffff9971a42f43b8 msgcode 80000004 vendor cmd fa010000 kernel: qla2xxx [0000:21:00.1]-7012:7: qla_bsg_found : 2206 : Error Inject 2. kernel: qla2xxx [0000:21:00.1]-802c:7: Aborting bsg ffff9971a42f43b8 sp=ffff99762c304440 handle=5e rval=5 kernel: qla2xxx [0000:21:00.1]-704f:7: bsg abort fail. bsg=ffff9971a42f43b8 sp=ffff99762c304440 rval=5. kernel: qla2xxx [0000:21:00.1]-7051:7: qla_bsg_found bsg_job_done : bsg ffff9971a42f43b8 result 0xfffffffa sp ffff99762c304440. Cc: st...@vg... Fixes: c449b4198701 ("scsi: qla2xxx: Use QP lock to search for bsg") Signed-off-by: Quinn Tran <qu...@ma...> Signed-off-by: Nilesh Javali <nj...@ma...> Link: https://lore.kernel.org/r/202...@ma... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit c423263082ee upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_bsg.c | 114 ++++++++++++--- 1 file changed, 92 insertions(+), 22 deletions(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_bsg.c b/qla2x00t-32gbit/qla_bsg.c index 315ad1d..f8a3278 100644 --- a/qla2x00t-32gbit/qla_bsg.c +++ b/qla2x00t-32gbit/qla_bsg.c @@ -27,6 +27,7 @@ void qla2x00_bsg_job_done(srb_t *sp, int res) { BSG_JOB_TYPE *bsg_job = sp->u.bsg_job; struct fc_bsg_reply *bsg_reply = bsg_job->reply; + struct completion *comp = sp->comp; ql_dbg(ql_dbg_user, sp->vha, 0x7009, "%s: sp hdl %x, result=%x bsg ptr %p\n", @@ -38,6 +39,9 @@ void qla2x00_bsg_job_done(srb_t *sp, int res) bsg_reply->result = res; bsg_job_done(bsg_job, bsg_reply->result, bsg_reply->reply_payload_rcv_len); + + if (comp) + complete(comp); } void qla2x00_bsg_sp_free(srb_t *sp) @@ -3065,7 +3069,7 @@ skip_chip_chk: static bool qla_bsg_found(struct qla_qpair *qpair, BSG_JOB_TYPE *bsg_job) { - bool found = false; + bool found, do_bsg_done; struct fc_bsg_reply *bsg_reply = bsg_job->reply; scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job)); struct qla_hw_data *ha = vha->hw; @@ -3073,6 +3077,11 @@ static bool qla_bsg_found(struct qla_qpair *qpair, BSG_JOB_TYPE *bsg_job) int cnt; unsigned long flags; struct req_que *req; + int rval; + DECLARE_COMPLETION_ONSTACK(comp); + uint32_t ratov_j; + + found = do_bsg_done = false; spin_lock_irqsave(qpair->qp_lock_ptr, flags); req = qpair->req; @@ -3084,42 +3093,104 @@ static bool qla_bsg_found(struct qla_qpair *qpair, BSG_JOB_TYPE *bsg_job) sp->type == SRB_ELS_CMD_HST || sp->type == SRB_ELS_CMD_HST_NOLOGIN) && sp->u.bsg_job == bsg_job) { - req->outstanding_cmds[cnt] = NULL; - spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); - - if (!ha->flags.eeh_busy && ha->isp_ops->abort_command(sp)) { - ql_log(ql_log_warn, vha, 0x7089, - "mbx abort_command failed.\n"); - bsg_reply->result = -EIO; - } else { - ql_dbg(ql_dbg_user, vha, 0x708a, - "mbx abort_command success.\n"); - bsg_reply->result = 0; - } - /* ref: INIT */ - kref_put(&sp->cmd_kref, qla2x00_sp_release); found = true; - goto done; + sp->comp = ∁ + break; } } spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); -done: - return found; + if (!found) + return false; + + if (ha->flags.eeh_busy) { + /* skip over abort. EEH handling will return the bsg. Wait for it */ + rval = QLA_SUCCESS; + ql_dbg(ql_dbg_user, vha, 0x802c, + "eeh encounter. bsg %p sp=%p handle=%x \n", + bsg_job, sp, sp->handle); + } else { + rval = ha->isp_ops->abort_command(sp); + ql_dbg(ql_dbg_user, vha, 0x802c, + "Aborting bsg %p sp=%p handle=%x rval=%x\n", + bsg_job, sp, sp->handle, rval); + } + + switch (rval) { + case QLA_SUCCESS: + /* Wait for the command completion. */ + ratov_j = ha->r_a_tov / 10 * 4 * 1000; + ratov_j = msecs_to_jiffies(ratov_j); + + if (!wait_for_completion_timeout(&comp, ratov_j)) { + ql_log(ql_log_info, vha, 0x7089, + "bsg abort timeout. bsg=%p sp=%p handle %#x .\n", + bsg_job, sp, sp->handle); + + do_bsg_done = true; + } else { + /* fw had returned the bsg */ + ql_dbg(ql_dbg_user, vha, 0x708a, + "bsg abort success. bsg %p sp=%p handle=%#x\n", + bsg_job, sp, sp->handle); + do_bsg_done = false; + } + break; + default: + ql_log(ql_log_info, vha, 0x704f, + "bsg abort fail. bsg=%p sp=%p rval=%x.\n", + bsg_job, sp, rval); + + do_bsg_done = true; + break; + } + + if (!do_bsg_done) + return true; + + spin_lock_irqsave(qpair->qp_lock_ptr, flags); + /* + * recheck to make sure it's still the same bsg_job due to + * qp_lock_ptr was released earlier. + */ + if (req->outstanding_cmds[cnt] && + req->outstanding_cmds[cnt]->u.bsg_job != bsg_job) { + /* fw had returned the bsg */ + spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); + return true; + } + req->outstanding_cmds[cnt] = NULL; + spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); + + /* ref: INIT */ + sp->comp = NULL; + kref_put(&sp->cmd_kref, qla2x00_sp_release); + bsg_reply->result = -ENXIO; + bsg_reply->reply_payload_rcv_len = 0; + + ql_dbg(ql_dbg_user, vha, 0x7051, + "%s bsg_job_done : bsg %p result %#x sp %p.\n", + __func__, bsg_job, bsg_reply->result, sp); + + bsg_job_done(bsg_job, bsg_reply->result, bsg_reply->reply_payload_rcv_len); + + return true; } int qla24xx_bsg_timeout(BSG_JOB_TYPE *bsg_job) { - struct fc_bsg_reply *bsg_reply = bsg_job->reply; + struct fc_bsg_request *bsg_request = bsg_job->request; scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job)); struct qla_hw_data *ha = vha->hw; int i; struct qla_qpair *qpair; - ql_log(ql_log_info, vha, 0x708b, "%s CMD timeout. bsg ptr %p.\n", - __func__, bsg_job); + ql_log(ql_log_info, vha, 0x708b, + "%s CMD timeout. bsg ptr %p msgcode %x vendor cmd %x\n", + __func__, bsg_job, bsg_request->msgcode, + bsg_request->rqst_data.h_vendor.vendor_cmd[0]); if (qla2x00_isp_reg_stat(ha)) { ql_log(ql_log_info, vha, 0x9007, @@ -3141,7 +3212,6 @@ qla24xx_bsg_timeout(BSG_JOB_TYPE *bsg_job) } ql_log(ql_log_info, vha, 0x708b, "SRB not found to abort.\n"); - bsg_reply->result = -ENXIO; done: return 0; |
From: Gleb C. <lna...@ya...> - 2024-12-28 12:01:48
|
Commit: ce31d4b GitHub URL: https://github.com/SCST-project/scst/commit/ce31d4b1261e8433dfa1996765f25c3d19c27d52 Author: Gleb Chesnokov Date: 2024-12-28T14:59:04+03:00 Log Message: ----------- dev_handlers: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- scst/src/dev_handlers/scst_cdrom.c | 36 ++--- scst/src/dev_handlers/scst_changer.c | 20 +-- scst/src/dev_handlers/scst_dev_handler.h | 2 - scst/src/dev_handlers/scst_disk.c | 116 ++++++--------- scst/src/dev_handlers/scst_modisk.c | 35 ++--- scst/src/dev_handlers/scst_processor.c | 20 +-- scst/src/dev_handlers/scst_raid.c | 21 +-- scst/src/dev_handlers/scst_tape.c | 54 +++---- 8 files changed, 121 insertions(+), 183 deletions(-) =================================================================== diff --git a/scst/src/dev_handlers/scst_cdrom.c b/scst/src/dev_handlers/scst_cdrom.c index b3679c4..03ea18f 100644 --- a/scst/src/dev_handlers/scst_cdrom.c +++ b/scst/src/dev_handlers/scst_cdrom.c @@ -67,9 +67,8 @@ static int cdrom_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -77,7 +76,7 @@ static int cdrom_attach(struct scst_device *dev) buffer = kmalloc(buffer_size, GFP_KERNEL); if (!buffer) { PRINT_ERROR("Buffer memory allocation (size %d) failure", - buffer_size); + buffer_size); res = -ENOMEM; goto out; } @@ -92,22 +91,20 @@ static int cdrom_attach(struct scst_device *dev) memset(buffer, 0, buffer_size); memset(sense_buffer, 0, sizeof(sense_buffer)); - TRACE_DBG("%s", "Doing READ_CAPACITY"); + TRACE_DBG("Doing READ_CAPACITY"); rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE, buffer, buffer_size, sense_buffer, SCST_GENERIC_CDROM_REG_TIMEOUT, 3, 0); TRACE_DBG("READ_CAPACITY done: %x", rc); - if ((rc == 0) || - !scst_analyze_sense(sense_buffer, - sizeof(sense_buffer), SCST_SENSE_KEY_VALID, - UNIT_ATTENTION, 0, 0)) + if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer), + SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0)) break; if (!--retries) { PRINT_ERROR("UA not cleared after %d retries", - SCST_DEV_RETRIES_ON_UA); + SCST_DEV_RETRIES_ON_UA); dev->block_shift = CDROM_DEF_BLOCK_SHIFT; res = -ENODEV; goto out_free_buf; @@ -122,7 +119,7 @@ static int cdrom_attach(struct scst_device *dev) else dev->block_shift = scst_calc_block_shift(sector_size); TRACE_DBG("Sector size is %i scsi_level %d(SCSI_2 %d)", - sector_size, dev->scsi_dev->scsi_level, SCSI_2); + sector_size, dev->scsi_dev->scsi_level, SCSI_2); if (dev->block_shift < 9) { PRINT_ERROR("READ CAPACITY reported an invalid sector size: %d", sector_size); @@ -131,17 +128,17 @@ static int cdrom_attach(struct scst_device *dev) } } else { dev->block_shift = CDROM_DEF_BLOCK_SHIFT; - TRACE(TRACE_MINOR, "Read capacity failed: %x, using default " - "sector size %d", rc, dev->block_shift); - PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer, - sizeof(sense_buffer)); + TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d", + rc, dev->block_shift); + PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", + sense_buffer, sizeof(sense_buffer)); } dev->block_size = 1 << dev->block_shift; res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); goto out_free_buf; } @@ -156,7 +153,6 @@ out: static void cdrom_detach(struct scst_device *dev) { /* Nothing to do */ - return; } static int cdrom_parse(struct scst_cmd *cmd) @@ -191,7 +187,6 @@ static void cdrom_set_block_shift(struct scst_cmd *cmd, int block_shift) dev->block_shift = new_block_shift; dev->block_size = 1 << dev->block_shift; } - return; } static int cdrom_done(struct scst_cmd *cmd) @@ -218,11 +213,9 @@ static int __init cdrom_init(void) if (res < 0) goto out; - out: TRACE_EXIT(); return res; - } static void __exit cdrom_exit(void) @@ -230,7 +223,6 @@ static void __exit cdrom_exit(void) TRACE_ENTRY(); scst_unregister_dev_driver(&cdrom_devtype); TRACE_EXIT(); - return; } module_init(cdrom_init); diff --git a/scst/src/dev_handlers/scst_changer.c b/scst/src/dev_handlers/scst_changer.c index 31b625c..0d6e927 100644 --- a/scst/src/dev_handlers/scst_changer.c +++ b/scst/src/dev_handlers/scst_changer.c @@ -62,9 +62,8 @@ static int changer_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -74,16 +73,16 @@ static int changer_attach(struct scst_device *dev) * of the other stuff */ if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) { - TRACE_DBG("%s", "Device is offline"); + TRACE_DBG("Device is offline"); res = -ENODEV; goto out; } retries = SCST_DEV_RETRIES_ON_UA; do { - TRACE_DBG("%s", "Doing TEST_UNIT_READY"); - rc = scsi_test_unit_ready(dev->scsi_dev, - SCST_GENERIC_CHANGER_TIMEOUT, CHANGER_RETRIES, NULL); + TRACE_DBG("Doing TEST_UNIT_READY"); + rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_CHANGER_TIMEOUT, + CHANGER_RETRIES, NULL); TRACE_DBG("TEST_UNIT_READY done: %x", rc); } while ((--retries > 0) && rc); @@ -94,8 +93,8 @@ static int changer_attach(struct scst_device *dev) res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); goto out; } @@ -110,7 +109,6 @@ void changer_detach(struct scst_device *dev) TRACE_ENTRY(); TRACE_EXIT(); - return; } #endif @@ -167,7 +165,6 @@ static int __init changer_init(void) if (res < 0) goto out; - out: TRACE_EXIT_RES(res); return res; @@ -178,7 +175,6 @@ static void __exit changer_exit(void) TRACE_ENTRY(); scst_unregister_dev_driver(&changer_devtype); TRACE_EXIT(); - return; } module_init(changer_init); diff --git a/scst/src/dev_handlers/scst_dev_handler.h b/scst/src/dev_handlers/scst_dev_handler.h index f7c6aa7..1ed7523 100644 --- a/scst/src/dev_handlers/scst_dev_handler.h +++ b/scst/src/dev_handlers/scst_dev_handler.h @@ -26,8 +26,6 @@ static unsigned long dh_trace_flag = SCST_DEFAULT_DEV_LOG_FLAGS; #define trace_flag dh_trace_flag - #endif /* defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) */ - #endif /* __SCST_DEV_HANDLER_H */ diff --git a/scst/src/dev_handlers/scst_disk.c b/scst/src/dev_handlers/scst_disk.c index d8f932b..52720f2 100644 --- a/scst/src/dev_handlers/scst_disk.c +++ b/scst/src/dev_handlers/scst_disk.c @@ -52,9 +52,8 @@ static int disk_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -62,7 +61,7 @@ static int disk_attach(struct scst_device *dev) buffer = kmalloc(buffer_size, GFP_KERNEL); if (!buffer) { PRINT_ERROR("Buffer memory allocation (size %d) failure", - buffer_size); + buffer_size); res = -ENOMEM; goto out; } @@ -77,21 +76,19 @@ static int disk_attach(struct scst_device *dev) memset(buffer, 0, buffer_size); memset(sense_buffer, 0, sizeof(sense_buffer)); - TRACE_DBG("%s", "Doing READ_CAPACITY"); + TRACE_DBG("Doing READ_CAPACITY"); rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE, buffer, buffer_size, sense_buffer, SCST_GENERIC_DISK_REG_TIMEOUT, 3, 0); TRACE_DBG("READ_CAPACITY done: %x", rc); - if ((rc == 0) || - !scst_analyze_sense(sense_buffer, - sizeof(sense_buffer), SCST_SENSE_KEY_VALID, - UNIT_ATTENTION, 0, 0)) + if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer), + SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0)) break; if (!--retries) { PRINT_ERROR("UA not clear after %d retries", - SCST_DEV_RETRIES_ON_UA); + SCST_DEV_RETRIES_ON_UA); res = -ENODEV; goto out_free_buf; } @@ -111,10 +108,10 @@ static int disk_attach(struct scst_device *dev) } } else { dev->block_shift = DISK_DEF_BLOCK_SHIFT; - TRACE(TRACE_MINOR, "Read capacity failed: %x, using default " - "sector size %d", rc, dev->block_shift); - PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer, - sizeof(sense_buffer)); + TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d", + rc, dev->block_shift); + PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", + sense_buffer, sizeof(sense_buffer)); } dev->block_size = 1 << dev->block_shift; @@ -133,55 +130,51 @@ static int disk_attach(struct scst_device *dev) memset(buffer, 0, buffer_size); memset(sense_buffer, 0, sizeof(sense_buffer)); - TRACE_DBG("%s", "Doing INQUIRY (Unit Serial Number VPD)"); + TRACE_DBG("Doing INQUIRY (Unit Serial Number VPD)"); rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE, buffer, buffer_size, sense_buffer, SCST_GENERIC_DISK_REG_TIMEOUT, 3, 0); TRACE_DBG("INQUIRY (Unit Serial Number VPD) done: %x", rc); - if ((rc == 0) || - !scst_analyze_sense(sense_buffer, - sizeof(sense_buffer), SCST_SENSE_KEY_VALID, - UNIT_ATTENTION, 0, 0)) + if (rc == 0 || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer), + SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0)) break; if (!--retries) { PRINT_WARNING("UA not clear after %d retries", - SCST_DEV_RETRIES_ON_UA); + SCST_DEV_RETRIES_ON_UA); goto no_serial; } } if (rc == 0) { - int32_t serial_length; - serial_length = get_unaligned_be16(&buffer[2]); + int32_t serial_length = get_unaligned_be16(&buffer[2]); /* * Since we only need the serial number we'll * store directly in dh_priv. Failure is OK. */ - dev->dh_priv = kzalloc(serial_length+1, GFP_KERNEL); + dev->dh_priv = kzalloc(serial_length + 1, GFP_KERNEL); if (!dev->dh_priv) { PRINT_ERROR("Buffer memory allocation (size %d) failure", - serial_length+1); + serial_length + 1); } else { memcpy(dev->dh_priv, &buffer[4], serial_length); PRINT_INFO("%s: Obtained serial number: %s", dev->virt_name, (char *)dev->dh_priv); } } else { - PRINT_WARNING("Failed to obtain serial number for device " - "%s", dev->virt_name); + PRINT_WARNING("Failed to obtain serial number for device %s", + dev->virt_name); } no_serial: res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); - if (dev->dh_priv) { - kfree(dev->dh_priv); - dev->dh_priv = NULL; - } + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); + kfree(dev->dh_priv); + dev->dh_priv = NULL; + goto out_free_buf; } @@ -199,7 +192,6 @@ static void disk_detach(struct scst_device *dev) scst_pr_set_cluster_mode(dev, false, dev->dh_priv); kfree(dev->dh_priv); } - return; } static int disk_parse(struct scst_cmd *cmd) @@ -218,8 +210,8 @@ static int disk_parse(struct scst_cmd *cmd) case COMPARE_AND_WRITE: case EXTENDED_COPY: case RECEIVE_COPY_RESULTS: - TRACE_DBG("Clearing LOCAL CMD flag for cmd %p " - "(op %s)", cmd, cmd->op_name); + TRACE_DBG("Clearing LOCAL CMD flag for cmd %p (op %s)", + cmd, cmd->op_name); cmd->op_flags &= ~SCST_LOCAL_CMD; break; } @@ -247,7 +239,6 @@ static void disk_set_block_shift(struct scst_cmd *cmd, int block_shift) dev->block_shift = new_block_shift; dev->block_size = 1 << dev->block_shift; } - return; } static int disk_done(struct scst_cmd *cmd) @@ -310,7 +301,6 @@ static void disk_restore_sg(struct disk_work *work) scst_set_cdb_transf_len(work->cmd, work->save_len); work->cmd->sg = work->save_sg; work->cmd->sg_cnt = work->save_sg_cnt; - return; } static void disk_cmd_done(void *data, char *sense, int result, int resid) @@ -320,7 +310,7 @@ static void disk_cmd_done(void *data, char *sense, int result, int resid) TRACE_ENTRY(); TRACE_DBG("work %p, cmd %p, left %d, result %d, sense %p, resid %d", - work, work->cmd, work->left, result, sense, resid); + work, work->cmd, work->left, result, sense, resid); WARN_ON_ONCE(IS_ERR_VALUE((long)result)); @@ -337,7 +327,6 @@ out_complete: complete_all(&work->disk_work_cmpl); TRACE_EXIT(); - return; } /* Executes command and split CDB, if necessary */ @@ -364,7 +353,7 @@ static enum scst_exec_res disk_exec(struct scst_cmd *cmd) case RELEASE: case RELEASE_10: TRACE_DBG("Skipping LOCAL cmd %p (op %s)", - cmd, cmd->op_name); + cmd, cmd->op_name); goto out_done; case PERSISTENT_RESERVE_IN: case PERSISTENT_RESERVE_OUT: @@ -396,10 +385,9 @@ static enum scst_exec_res disk_exec(struct scst_cmd *cmd) if (unlikely((cmd->bufflen >> block_shift) > max_sectors)) { if ((cmd->out_bufflen >> block_shift) > max_sectors) { - PRINT_ERROR("Too limited max_sectors %d for " - "bidirectional cmd %p (op %s, out_bufflen %d)", - max_sectors, cmd, scst_get_opcode_name(cmd), - cmd->out_bufflen); + PRINT_ERROR("Too limited max_sectors %d for bidirectional cmd %p (op %s, out_bufflen %d)", + max_sectors, cmd, scst_get_opcode_name(cmd), + cmd->out_bufflen); /* Let lower level handle it */ res = SCST_EXEC_NOT_COMPLETED; goto out; @@ -435,11 +423,10 @@ split: cmd->host_status = DID_OK; cmd->driver_status = 0; - TRACE_DBG("cmd %p, save_sg %p, save_sg_cnt %d, save_lba %lld, " - "save_len %d (sg_tablesize %d, max_sectors %d, block_shift %d, " - "sizeof(*sg) 0x%zx)", cmd, work.save_sg, work.save_sg_cnt, - (unsigned long long)work.save_lba, work.save_len, - sg_tablesize, max_sectors, block_shift, sizeof(*sg)); + TRACE_DBG("cmd %p, save_sg %p, save_sg_cnt %d, save_lba %lld, save_len %d (sg_tablesize %d, max_sectors %d, block_shift %d, sizeof(*sg) 0x%zx)", + cmd, work.save_sg, work.save_sg_cnt, + (unsigned long long)work.save_lba, work.save_len, + sg_tablesize, max_sectors, block_shift, sizeof(*sg)); /* * If we submit all chunks async'ly, it will be very not trivial what @@ -470,14 +457,11 @@ split: cur_len += l; cur_sg_cnt++; - TRACE_DBG("l %d, j %d, num %d, offset %d, cur_len %d, " - "cur_sg_cnt %d, start_sg %p", l, j, num, offset, - cur_len, cur_sg_cnt, start_sg); + TRACE_DBG("l %d, j %d, num %d, offset %d, cur_len %d, cur_sg_cnt %d, start_sg %p", + l, j, num, offset, cur_len, cur_sg_cnt, start_sg); - if (((num % sg_tablesize) == 0) || - (num == work.save_sg_cnt) || - (cur_len >= max_sectors)) { - TRACE_DBG("%s", "Execing..."); + if (num % sg_tablesize == 0 || num == work.save_sg_cnt || cur_len >= max_sectors) { + TRACE_DBG("Execing..."); scst_set_cdb_lba(work.cmd, work.save_lba + offset); scst_set_cdb_transf_len(work.cmd, cur_len); @@ -504,7 +488,7 @@ split: offset += cur_len; cur_len = 0; cur_sg_cnt = 0; - start_sg = &sg[j+1]; + start_sg = &sg[j + 1]; if (num == work.save_sg_cnt) break; @@ -535,7 +519,6 @@ out_error: goto out_done; } - static enum scst_exec_res disk_perf_exec(struct scst_cmd *cmd) { enum scst_exec_res res; @@ -576,8 +559,8 @@ out_complete: goto out; } -static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) { struct scst_device *dev = container_of(kobj, struct scst_device, dev_kobj); @@ -587,8 +570,7 @@ static ssize_t disk_sysfs_cluster_mode_show(struct kobject *kobj, SCST_SYSFS_KEY_MARK "\n" : ""); } -static int disk_sysfs_process_cluster_mode_store( - struct scst_sysfs_work_item *work) +static int disk_sysfs_process_cluster_mode_store(struct scst_sysfs_work_item *work) { struct scst_device *dev = work->dev; long clm; @@ -635,8 +617,8 @@ out: return res; } -static ssize_t disk_sysfs_cluster_mode_store(struct kobject *kobj, - struct kobj_attribute *attr, const char *buf, size_t count) +static ssize_t disk_sysfs_cluster_mode_store(struct kobject *kobj, struct kobj_attribute *attr, + const char *buf, size_t count) { struct scst_device *dev = container_of(kobj, struct scst_device, dev_kobj); @@ -681,8 +663,7 @@ out: } static struct kobj_attribute disk_cluster_mode_attr = - __ATTR(cluster_mode, S_IWUSR|S_IRUGO, disk_sysfs_cluster_mode_show, - disk_sysfs_cluster_mode_store); + __ATTR(cluster_mode, 0644, disk_sysfs_cluster_mode_show, disk_sysfs_cluster_mode_store); static const struct attribute *disk_attrs[] = { &disk_cluster_mode_attr.attr, @@ -743,12 +724,10 @@ static int __init init_scst_disk_driver(void) if (res < 0) goto out_unreg; - out: TRACE_EXIT_RES(res); return res; - out_unreg: scst_unregister_dev_driver(&disk_devtype); goto out; @@ -762,7 +741,6 @@ static void __exit exit_scst_disk_driver(void) scst_unregister_dev_driver(&disk_devtype); TRACE_EXIT(); - return; } module_init(init_scst_disk_driver); diff --git a/scst/src/dev_handlers/scst_modisk.c b/scst/src/dev_handlers/scst_modisk.c index b096cd9..4c51966 100644 --- a/scst/src/dev_handlers/scst_modisk.c +++ b/scst/src/dev_handlers/scst_modisk.c @@ -96,12 +96,10 @@ static int __init init_scst_modisk_driver(void) if (res < 0) goto out_unreg; - out: TRACE_EXIT_RES(res); return res; - out_unreg: scst_unregister_dev_driver(&modisk_devtype); goto out; @@ -115,7 +113,6 @@ static void __exit exit_scst_modisk_driver(void) scst_unregister_dev_driver(&modisk_devtype); TRACE_EXIT(); - return; } module_init(init_scst_modisk_driver); @@ -132,9 +129,8 @@ static int modisk_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -147,7 +143,7 @@ static int modisk_attach(struct scst_device *dev) * of the other stuff */ if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) { - TRACE_DBG("%s", "Device is offline"); + TRACE_DBG("Device is offline"); res = -ENODEV; goto out; } @@ -155,7 +151,7 @@ static int modisk_attach(struct scst_device *dev) buffer = kmalloc(buffer_size, GFP_KERNEL); if (!buffer) { PRINT_ERROR("Buffer memory allocation (size %d) failure", - buffer_size); + buffer_size); res = -ENOMEM; goto out; } @@ -173,16 +169,15 @@ static int modisk_attach(struct scst_device *dev) memset(buffer, 0, buffer_size); memset(sense_buffer, 0, sizeof(sense_buffer)); - TRACE_DBG("%s", "Doing READ_CAPACITY"); + TRACE_DBG("Doing READ_CAPACITY"); rc = scst_scsi_execute_cmd(dev->scsi_dev, cmd, DMA_FROM_DEVICE, buffer, buffer_size, sense_buffer, SCST_GENERIC_MODISK_REG_TIMEOUT, 3, 0); TRACE_DBG("READ_CAPACITY done: %x", rc); - if (!rc || !scst_analyze_sense(sense_buffer, - sizeof(sense_buffer), SCST_SENSE_KEY_VALID, - UNIT_ATTENTION, 0, 0)) + if (!rc || !scst_analyze_sense(sense_buffer, sizeof(sense_buffer), + SCST_SENSE_KEY_VALID, UNIT_ATTENTION, 0, 0)) break; if (!--retries) { @@ -201,7 +196,7 @@ static int modisk_attach(struct scst_device *dev) else dev->block_shift = scst_calc_block_shift(sector_size); TRACE_DBG("Sector size is %i scsi_level %d(SCSI_2 %d)", - sector_size, dev->scsi_dev->scsi_level, SCSI_2); + sector_size, dev->scsi_dev->scsi_level, SCSI_2); if (dev->block_shift < 9) { PRINT_ERROR("READ CAPACITY reported an invalid sector size: %d", sector_size); @@ -210,17 +205,17 @@ static int modisk_attach(struct scst_device *dev) } } else { dev->block_shift = MODISK_DEF_BLOCK_SHIFT; - TRACE(TRACE_MINOR, "Read capacity failed: %x, using default " - "sector size %d", rc, dev->block_shift); - PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", sense_buffer, - sizeof(sense_buffer)); + TRACE(TRACE_MINOR, "Read capacity failed: %x, using default sector size %d", + rc, dev->block_shift); + PRINT_BUFF_FLAG(TRACE_MINOR, "Returned sense", + sense_buffer, sizeof(sense_buffer)); } dev->block_size = 1 << dev->block_shift; res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s: %x", dev->virt_name, res); + PRINT_ERROR("Failed to obtain control parameters for device %s: %x", + dev->virt_name, res); goto out_free_buf; } @@ -235,7 +230,6 @@ out: static void modisk_detach(struct scst_device *dev) { /* Nothing to do */ - return; } static int modisk_parse(struct scst_cmd *cmd) @@ -270,7 +264,6 @@ static void modisk_set_block_shift(struct scst_cmd *cmd, int block_shift) dev->block_shift = new_block_shift; dev->block_size = 1 << dev->block_shift; } - return; } static int modisk_done(struct scst_cmd *cmd) diff --git a/scst/src/dev_handlers/scst_processor.c b/scst/src/dev_handlers/scst_processor.c index d87abc5..e29d2cb 100644 --- a/scst/src/dev_handlers/scst_processor.c +++ b/scst/src/dev_handlers/scst_processor.c @@ -62,9 +62,8 @@ static int processor_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -74,16 +73,16 @@ static int processor_attach(struct scst_device *dev) * of the other stuff */ if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) { - TRACE_DBG("%s", "Device is offline"); + TRACE_DBG("Device is offline"); res = -ENODEV; goto out; } retries = SCST_DEV_RETRIES_ON_UA; do { - TRACE_DBG("%s", "Doing TEST_UNIT_READY"); - rc = scsi_test_unit_ready(dev->scsi_dev, - SCST_GENERIC_PROCESSOR_TIMEOUT, PROCESSOR_RETRIES, NULL); + TRACE_DBG("Doing TEST_UNIT_READY"); + rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_PROCESSOR_TIMEOUT, + PROCESSOR_RETRIES, NULL); TRACE_DBG("TEST_UNIT_READY done: %x", rc); } while ((--retries > 0) && rc); @@ -94,8 +93,8 @@ static int processor_attach(struct scst_device *dev) res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); goto out; } @@ -110,7 +109,6 @@ void processor_detach(struct scst_device *dev) TRACE_ENTRY(); TRACE_EXIT(); - return; } #endif @@ -167,7 +165,6 @@ static int __init processor_init(void) if (res < 0) goto out; - out: TRACE_EXIT_RES(res); return res; @@ -178,7 +175,6 @@ static void __exit processor_exit(void) TRACE_ENTRY(); scst_unregister_dev_driver(&processor_devtype); TRACE_EXIT(); - return; } module_init(processor_init); diff --git a/scst/src/dev_handlers/scst_raid.c b/scst/src/dev_handlers/scst_raid.c index 4a0938f..1d9738d 100644 --- a/scst/src/dev_handlers/scst_raid.c +++ b/scst/src/dev_handlers/scst_raid.c @@ -62,9 +62,8 @@ static int raid_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -74,16 +73,16 @@ static int raid_attach(struct scst_device *dev) * of the other stuff */ if (dev->scsi_dev->sdev_state == SDEV_OFFLINE) { - TRACE_DBG("%s", "Device is offline"); + TRACE_DBG("Device is offline"); res = -ENODEV; goto out; } retries = SCST_DEV_RETRIES_ON_UA; do { - TRACE_DBG("%s", "Doing TEST_UNIT_READY"); - rc = scsi_test_unit_ready(dev->scsi_dev, - SCST_GENERIC_RAID_TIMEOUT, RAID_RETRIES, NULL); + TRACE_DBG("Doing TEST_UNIT_READY"); + rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_RAID_TIMEOUT, + RAID_RETRIES, NULL); TRACE_DBG("TEST_UNIT_READY done: %x", rc); } while ((--retries > 0) && rc); @@ -94,8 +93,8 @@ static int raid_attach(struct scst_device *dev) res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); goto out; } @@ -110,7 +109,6 @@ void raid_detach(struct scst_device *dev) TRACE_ENTRY(); TRACE_EXIT(); - return; } #endif @@ -167,11 +165,9 @@ static int __init raid_init(void) if (res < 0) goto out; - out: TRACE_EXIT_RES(res); return res; - } static void __exit raid_exit(void) @@ -179,7 +175,6 @@ static void __exit raid_exit(void) TRACE_ENTRY(); scst_unregister_dev_driver(&raid_devtype); TRACE_EXIT(); - return; } module_init(raid_init); diff --git a/scst/src/dev_handlers/scst_tape.c b/scst/src/dev_handlers/scst_tape.c index c744ba2..250e502 100644 --- a/scst/src/dev_handlers/scst_tape.c +++ b/scst/src/dev_handlers/scst_tape.c @@ -101,12 +101,10 @@ static int __init init_scst_tape_driver(void) if (res < 0) goto out_unreg; - out: TRACE_EXIT_RES(res); return res; - out_unreg: scst_unregister_dev_driver(&tape_devtype); goto out; @@ -120,7 +118,6 @@ static void __exit exit_scst_tape_driver(void) scst_unregister_dev_driver(&tape_devtype); TRACE_EXIT(); - return; } module_init(init_scst_tape_driver); @@ -136,9 +133,8 @@ static int tape_attach(struct scst_device *dev) TRACE_ENTRY(); - if (dev->scsi_dev == NULL || - dev->scsi_dev->type != dev->type) { - PRINT_ERROR("%s", "SCSI device not define or illegal type"); + if (!dev->scsi_dev || dev->scsi_dev->type != dev->type) { + PRINT_ERROR("SCSI device not define or illegal type"); res = -ENODEV; goto out; } @@ -149,16 +145,16 @@ static int tape_attach(struct scst_device *dev) buffer = kmalloc(buffer_size, GFP_KERNEL); if (!buffer) { PRINT_ERROR("Buffer memory allocation (size %d) failure", - buffer_size); + buffer_size); res = -ENOMEM; goto out; } retries = SCST_DEV_RETRIES_ON_UA; do { - TRACE_DBG("%s", "Doing TEST_UNIT_READY"); - rc = scsi_test_unit_ready(dev->scsi_dev, - SCST_GENERIC_TAPE_SMALL_TIMEOUT, TAPE_RETRIES, NULL); + TRACE_DBG("Doing TEST_UNIT_READY"); + rc = scsi_test_unit_ready(dev->scsi_dev, SCST_GENERIC_TAPE_SMALL_TIMEOUT, + TAPE_RETRIES, NULL); TRACE_DBG("TEST_UNIT_READY done: %x", rc); } while ((--retries > 0) && rc); @@ -168,7 +164,7 @@ static int tape_attach(struct scst_device *dev) goto obtain; } - TRACE_DBG("%s", "Doing MODE_SENSE"); + TRACE_DBG("Doing MODE_SENSE"); rc = scsi_mode_sense(dev->scsi_dev, ((dev->scsi_dev->scsi_level <= SCSI_2) ? ((dev->scsi_dev->lun << 5) & 0xe0) : 0), @@ -194,9 +190,9 @@ static int tape_attach(struct scst_device *dev) mode = (buffer[2] & 0x70) >> 4; speed = buffer[2] & 0x0f; density = buffer[4]; - TRACE_DBG("Tape: lun %lld. bs %d. type 0x%02x mode 0x%02x " - "speed 0x%02x dens 0x%02x", (u64)dev->scsi_dev->lun, - dev->block_size, medium_type, mode, speed, density); + TRACE_DBG("Tape: lun %lld. bs %d. type 0x%02x mode 0x%02x speed 0x%02x dens 0x%02x", + (u64)dev->scsi_dev->lun, dev->block_size, medium_type, mode, speed, + density); } else { PRINT_ERROR("MODE_SENSE failed: %x", rc); res = -ENODEV; @@ -207,8 +203,8 @@ static int tape_attach(struct scst_device *dev) obtain: res = scst_obtain_device_parameters(dev, NULL); if (res != 0) { - PRINT_ERROR("Failed to obtain control parameters for device " - "%s", dev->virt_name); + PRINT_ERROR("Failed to obtain control parameters for device %s", + dev->virt_name); goto out_free_buf; } @@ -223,7 +219,6 @@ out: static void tape_detach(struct scst_device *dev) { /* Nothing to do */ - return; } static int tape_parse(struct scst_cmd *cmd) @@ -250,7 +245,6 @@ static void tape_set_block_size(struct scst_cmd *cmd, int block_size) */ dev->block_size = block_size; dev->block_shift = scst_calc_block_shift(dev->block_size); - return; } static int tape_done(struct scst_cmd *cmd) @@ -261,22 +255,19 @@ static int tape_done(struct scst_cmd *cmd) TRACE_ENTRY(); - if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET)) + if (status == SAM_STAT_GOOD || status == SAM_STAT_CONDITION_MET) { res = scst_tape_generic_dev_done(cmd, tape_set_block_size); - else if ((status == SAM_STAT_CHECK_CONDITION) && - scst_sense_valid(cmd->sense)) { + } else if (status == SAM_STAT_CHECK_CONDITION && scst_sense_valid(cmd->sense)) { TRACE_DBG("Extended sense %x", scst_sense_response_code(cmd->sense)); if (scst_sense_response_code(cmd->sense) != 0x70) { PRINT_ERROR("Sense format 0x%x is not supported", - scst_sense_response_code(cmd->sense)); - scst_set_cmd_error(cmd, - SCST_LOAD_SENSE(scst_sense_internal_failure)); + scst_sense_response_code(cmd->sense)); + scst_set_cmd_error(cmd, SCST_LOAD_SENSE(scst_sense_internal_failure)); goto out; } - if (opcode == READ_6 && !(cmd->cdb[1] & SILI_BIT) && - (cmd->sense[2] & 0xe0)) { + if (opcode == READ_6 && !(cmd->cdb[1] & SILI_BIT) && (cmd->sense[2] & 0xe0)) { /* EOF, EOM, or ILI */ unsigned int TransferLength, Residue = 0; @@ -287,10 +278,9 @@ static int tape_done(struct scst_cmd *cmd) /* Compute the residual count */ if ((cmd->sense[0] & 0x80) != 0) Residue = get_unaligned_be32(&cmd->sense[3]); - TRACE_DBG("Checking the sense key " - "sn[2]=%x cmd->cdb[0,1]=%x,%x TransLen/Resid" - " %d/%d", (int)cmd->sense[2], cmd->cdb[0], - cmd->cdb[1], TransferLength, Residue); + TRACE_DBG("Checking the sense key sn[2]=%x cmd->cdb[0,1]=%x,%x TransLen/Resid %d/%d", + (int)cmd->sense[2], cmd->cdb[0], cmd->cdb[1], TransferLength, + Residue); if (TransferLength > Residue) { int resp_data_len = TransferLength - Residue; @@ -308,8 +298,8 @@ static int tape_done(struct scst_cmd *cmd) } out: - TRACE_DBG("cmd->is_send_status=%x, cmd->resp_data_len=%d, " - "res=%d", cmd->is_send_status, cmd->resp_data_len, res); + TRACE_DBG("cmd->is_send_status=%x, cmd->resp_data_len=%d, res=%d", + cmd->is_send_status, cmd->resp_data_len, res); TRACE_EXIT_RES(res); return res; |
From: Gleb C. <lna...@ya...> - 2024-12-28 11:59:48
|
Commit: 9082b4e GitHub URL: https://github.com/SCST-project/scst/commit/9082b4e82afabe2a0e1d8fecbacc3d8582e263b7 Author: Gleb Chesnokov Date: 2024-12-28T14:59:04+03:00 Log Message: ----------- nightly build: Update kernel versions Another kernel versions update Modified Paths: -------------- .github/workflows/run_regression_tests.yaml | 29 +++++++------- nightly/conf/nightly.conf | 30 +++++++-------- scripts/checkpatch | 1 + 3 files changed, 31 insertions(+), 29 deletions(-) =================================================================== diff --git a/.github/workflows/run_regression_tests.yaml b/.github/workflows/run_regression_tests.yaml index 0071aa1..b95d205 100644 --- a/.github/workflows/run_regression_tests.yaml +++ b/.github/workflows/run_regression_tests.yaml @@ -16,23 +16,23 @@ jobs: fail-fast: false matrix: version: [ - '6.12', - '6.11.9', + '6.12.7', + '6.11.11', '6.10.14', '6.9.12', '6.8.12', '6.7.12', - '6.6.62', - '6.1.118', - '5.15.173', - '5.10.230', - '5.4.286', - '4.19.324', + '6.6.68', + '6.1.122', + '5.15.175', + '5.10.232', + '5.4.288', + '4.19.325', '4.14.336', '4.9.337', '3.18.140', '3.10.108', - '5.14.0-503.11.1.el9_5^AlmaLinux^9.5', + '5.14.0-503.16.1.el9_5^AlmaLinux^9.5', '5.14.0-427.42.1.el9_4^AlmaLinux^9.4', '5.14.0-362.24.2.el9_3^AlmaLinux^9.3', '5.14.0-284.30.1.el9_2^AlmaLinux^9.2', @@ -41,10 +41,10 @@ jobs: '4.18.0-425.19.2.el8_7^AlmaLinux^8.7', '4.18.0-372.32.1.el8_6^AlmaLinux^8.6', '3.10.0-1160.118.1.el7^CentOS^7.9.2009', - '5.15.0-302.167.6.el9uek^UEK^9', - '5.4.17-2136.337.5.1.el8uek^UEK^8', - '4.14.35-2047.542.2.el7uek^UEK^7', - '4.1.12-124.48.6.el6uek^UEK^6' + '5.15.0-303.171.5.2.1.el9uek^UEK^9', + '5.4.17-2136.338.4.2.el8uek^UEK^8', + '4.14.35-2047.543.3.el7uek^UEK^7', + '4.1.12-124.92.3.el6uek^UEK^6' ] steps: - name: Checkout code @@ -52,7 +52,8 @@ jobs: - name: Install libelf-dev run: | - sudo apt-get install -y libelf-dev + sudo apt-get update + sudo apt-get install -y libelf-dev libsqlite3-dev - name: Install sparse run: | diff --git a/nightly/conf/nightly.conf b/nightly/conf/nightly.conf index 7c99cb2..acceb08 100644 --- a/nightly/conf/nightly.conf +++ b/nightly/conf/nightly.conf @@ -3,41 +3,41 @@ ABT_DETAILS="x86_64" ABT_JOBS=5 ABT_KERNELS=" \ -6.12 \ -6.11.9-nc \ +6.12.7 \ +6.11.11-nc \ 6.10.14-nc \ 6.9.12-nc \ 6.8.12-nc \ 6.7.12-nc \ -6.6.62-nc \ +6.6.68-nc \ 6.5.13-nc \ 6.4.16-nc \ 6.3.13-nc \ 6.2.16-nc \ -6.1.118-nc \ +6.1.122-nc \ 6.0.19-nc \ 5.19.17-nc \ 5.18.19-nc \ 5.17.15-nc \ 5.16.20-nc \ -5.15.173-nc \ +5.15.175-nc \ 5.14.21-nc \ 5.13.19-nc \ 5.12.19-nc \ 5.11.22-nc \ -5.10.230-nc \ +5.10.232-nc \ 5.9.16-nc \ 5.8.18-nc \ 5.7.19-nc \ 5.6.19-nc \ 5.5.19-nc \ -5.4.286-nc \ +5.4.288-nc \ 5.3.18-nc \ 5.2.21-nc \ 5.1.21-nc \ 5.0.21-nc \ 4.20.17-nc \ -4.19.324-nc \ +4.19.325-nc \ 4.18.20-nc \ 4.17.19-nc \ 4.16.18-nc \ @@ -67,7 +67,7 @@ ABT_KERNELS=" \ 3.12.74-nc \ 3.11.10-nc \ 3.10.108-nc \ -5.14.0-503.11.1.el9_5^AlmaLinux^9.5-nc \ +5.14.0-503.16.1.el9_5^AlmaLinux^9.5-nc \ 5.14.0-427.42.1.el9_4^AlmaLinux^9.4-nc \ 5.14.0-362.24.2.el9_3^AlmaLinux^9.3-nc \ 5.14.0-284.30.1.el9_2^AlmaLinux^9.2-nc \ @@ -88,16 +88,16 @@ ABT_KERNELS=" \ 3.10.0-1062.18.1.el7^CentOS^7.7.1908-nc \ 3.10.0-957.27.2.el7^CentOS^7.6.1810-nc \ 3.10.0-862.14.4.el7^CentOS^7.5.1804-nc \ -5.15.0-302.167.6.el9uek^UEK^9-nc \ -5.15.0-302.167.6.el8uek^UEK^8-nc \ -5.4.17-2136.337.5.1.el8uek^UEK^8-nc \ +5.15.0-303.171.5.2.1.el9uek^UEK^9-nc \ +5.15.0-303.171.5.2.1.el8uek^UEK^8-nc \ +5.4.17-2136.338.4.2.el8uek^UEK^8-nc \ 5.4.17-2102.206.1.el8uek^UEK^8-nc \ 5.4.17-2036.104.5.el8uek^UEK^8-nc \ 5.4.17-2011.7.4.el8uek^UEK^8-nc \ -5.4.17-2136.337.5.1.el7uek^UEK^7-nc \ +5.4.17-2136.338.4.2.el7uek^UEK^7-nc \ 5.4.17-2102.206.1.el7uek^UEK^7-nc \ 5.4.17-2036.104.5.el7uek^UEK^7-nc \ 5.4.17-2011.7.4.el7uek^UEK^7-nc \ -4.14.35-2047.542.2.el7uek^UEK^7-nc \ -4.1.12-124.48.6.el6uek^UEK^6-nc \ +4.14.35-2047.543.3.el7uek^UEK^7-nc \ +4.1.12-124.92.3.el6uek^UEK^6-nc \ " diff --git a/scripts/checkpatch b/scripts/checkpatch index d142cef..ef48338 100755 --- a/scripts/checkpatch +++ b/scripts/checkpatch @@ -18,6 +18,7 @@ ignore=( NEW_TYPEDEFS AVOID_BUG MACRO_ARG_REUSE + IF_0 ) ignore_str=${ignore[*]} |
From: Gleb C. <lna...@ya...> - 2024-11-27 08:33:44
|
Commit: 297034d GitHub URL: https://github.com/SCST-project/scst/commit/297034d884881fe3d77cbb6bf5d95deab5cb5a65 Author: m.chernobrov Date: 2024-11-27T11:33:20+03:00 Log Message: ----------- scstadmin: Fix scstadmin -list_sessions error msg in out cmd In out of "scstadmin -list_sessions" cmd occurs error "Use of uninitialized value in numeric lt (<) at /usr/local/sbin/scstadmin line 3679". Modified Paths: -------------- scstadmin/scstadmin.sysfs/scstadmin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) =================================================================== diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index 84e539a..cdb54ca 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -3683,7 +3683,7 @@ sub listAttributes { next; } - $l_value = length($value) if ($l_value < length($value)); + $l_value = length($value) if (defined($value) && $l_value < length($value)); } } |
From: Gleb C. <lna...@ya...> - 2024-11-27 08:18:22
|
Commit: 2ed7e10 GitHub URL: https://github.com/SCST-project/scst/commit/2ed7e10c0b4c1c9a17557404b8101ab9e6404f89 Author: m.chernobrov Date: 2024-11-27T11:17:54+03:00 Log Message: ----------- FIX scstadmin -list_sessions error msg in out cmd In out of "scstadmin -list_sessions" cmd occurs error "Use of uninitialized value in numeric lt (<) at /usr/local/sbin/scstadmin line 3679" Modified Paths: -------------- scstadmin/scstadmin.sysfs/scstadmin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) =================================================================== diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index 4de10a7..f4a16cb 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -3676,7 +3676,7 @@ sub listAttributes { next; } - $l_value = length($value) if ($l_value < length($value)); + $l_value = length($value) if (defined($value) && $l_value < length($value)); } } |
From: Gleb C. <lna...@ya...> - 2024-11-18 16:33:59
|
Commit: f265dc4 GitHub URL: https://github.com/SCST-project/scst/commit/f265dc450f02dd5f8c8b4ee8c248e5ae1e5d6e4b Author: Gleb Chesnokov Date: 2024-11-18T19:32:27+03:00 Log Message: ----------- scst_lib: Move synchronize_rcu() calls out of loops to reduce overhead This patch refactors the code by accumulating the target devices into a temporary list and moving the synchronize_rcu() call outside of the loops. By doing so, we reduce the number of synchronize_rcu() calls to one, improving the efficiency of the cleanup process. Fixes: https://github.com/SCST-project/scst/issues/229 Modified Paths: -------------- scst/src/scst_lib.c | 102 ++++++++------- scst/src/scst_priv.h | 1 - 2 files changed, 56 insertions(+), 47 deletions(-) =================================================================== diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 2e322d9..50d60e3 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -4758,11 +4758,9 @@ int scst_acg_del_lun(struct scst_acg *acg, uint64_t lun, synchronize_rcu(); mutex_lock(&scst_mutex); - - list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, - extra_tgt_dev_list_entry) { + list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, extra_tgt_dev_list_entry) scst_free_tgt_dev(tgt_dev); - } + scst_free_acg_dev(acg_dev); out: @@ -4808,10 +4806,9 @@ int scst_acg_repl_lun(struct scst_acg *acg, struct kobject *parent, synchronize_rcu(); mutex_lock(&scst_mutex); - list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, - extra_tgt_dev_list_entry) { + list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, extra_tgt_dev_list_entry) scst_free_tgt_dev(tgt_dev); - } + if (acg_dev) scst_free_acg_dev(acg_dev); @@ -4931,20 +4928,20 @@ static void scst_del_acg(struct scst_acg *acg) static void scst_free_acg(struct scst_acg *acg) { struct scst_acg_dev *acg_dev, *acg_dev_tmp; - struct scst_acn *acn, *acnt; + struct scst_acn *acn, *acn_tmp; struct scst_session *sess; struct scst_tgt *tgt = acg->tgt; + struct scst_tgt_dev *tgt_dev, *tt; + LIST_HEAD(tgt_dev_list); + + lockdep_assert_held(&scst_mutex); /* For procfs acg->tgt could be NULL */ TRACE_DBG("Freeing acg %s/%s", tgt ? tgt->tgt_name : "(tgt=NULL)", acg->acg_name); - list_for_each_entry_safe(acg_dev, acg_dev_tmp, &acg->acg_dev_list, - acg_dev_list_entry) { - struct scst_tgt_dev *tgt_dev, *tt; - - list_for_each_entry_safe(tgt_dev, tt, - &acg_dev->dev->dev_tgt_dev_list, - dev_tgt_dev_list_entry) { + list_for_each_entry_safe(acg_dev, acg_dev_tmp, &acg->acg_dev_list, acg_dev_list_entry) { + list_for_each_entry_safe(tgt_dev, tt, &acg_dev->dev->dev_tgt_dev_list, + dev_tgt_dev_list_entry) { if (tgt_dev->acg_dev == acg_dev) { sess = tgt_dev->sess; @@ -4952,17 +4949,19 @@ static void scst_free_acg(struct scst_acg *acg) scst_del_tgt_dev(tgt_dev); mutex_unlock(&sess->tgt_dev_list_mutex); - synchronize_rcu(); - scst_free_tgt_dev(tgt_dev); + list_add_tail(&tgt_dev->extra_tgt_dev_list_entry, &tgt_dev_list); } } scst_free_acg_dev(acg_dev); } - list_for_each_entry_safe(acn, acnt, &acg->acn_list, acn_list_entry) { - scst_free_acn(acn, - list_is_last(&acn->acn_list_entry, &acg->acn_list)); - } + synchronize_rcu(); + + list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, extra_tgt_dev_list_entry) + scst_free_tgt_dev(tgt_dev); + + list_for_each_entry_safe(acn, acn_tmp, &acg->acn_list, acn_list_entry) + scst_free_acn(acn, list_is_last(&acn->acn_list_entry, &acg->acn_list)); kfree(acg->acg_name); kfree(acg); @@ -4982,7 +4981,10 @@ static void scst_release_acg_work(struct work_struct *work) struct scst_acg *acg = release_work->acg; kfree(release_work); + + mutex_lock(&scst_mutex); scst_free_acg(acg); + mutex_unlock(&scst_mutex); } static void scst_release_acg(struct kref *kref) @@ -5701,6 +5703,37 @@ static void scst_free_tgt_dev(struct scst_tgt_dev *tgt_dev) return; } +/* scst_mutex supposed to be held */ +static void scst_sess_free_tgt_devs(struct scst_session *sess) +{ + int i; + struct scst_tgt_dev *tgt_dev, *tt; + LIST_HEAD(tgt_dev_list); + + TRACE_ENTRY(); + + lockdep_assert_held(&scst_mutex); + + mutex_lock(&sess->tgt_dev_list_mutex); + for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { + struct list_head *head = &sess->sess_tgt_dev_list[i]; + + list_for_each_entry_safe(tgt_dev, tt, head, sess_tgt_dev_list_entry) { + scst_del_tgt_dev(tgt_dev); + list_add_tail(&tgt_dev->extra_tgt_dev_list_entry, &tgt_dev_list); + } + INIT_LIST_HEAD(head); + } + mutex_unlock(&sess->tgt_dev_list_mutex); + + synchronize_rcu(); + + list_for_each_entry_safe(tgt_dev, tt, &tgt_dev_list, extra_tgt_dev_list_entry) + scst_free_tgt_dev(tgt_dev); + + TRACE_EXIT(); +} + /* scst_mutex supposed to be held */ int scst_sess_alloc_tgt_devs(struct scst_session *sess) { @@ -5710,6 +5743,8 @@ int scst_sess_alloc_tgt_devs(struct scst_session *sess) TRACE_ENTRY(); + lockdep_assert_held(&scst_mutex); + list_for_each_entry(acg_dev, &sess->acg->acg_dev_list, acg_dev_list_entry) { res = scst_alloc_add_tgt_dev(sess, acg_dev, &tgt_dev); @@ -5728,31 +5763,6 @@ out_free: goto out; } -void scst_sess_free_tgt_devs(struct scst_session *sess) -{ - int i; - struct scst_tgt_dev *tgt_dev, *t; - - TRACE_ENTRY(); - - mutex_lock(&sess->tgt_dev_list_mutex); - for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { - struct list_head *head = &sess->sess_tgt_dev_list[i]; - - list_for_each_entry_safe(tgt_dev, t, head, - sess_tgt_dev_list_entry) { - scst_del_tgt_dev(tgt_dev); - synchronize_rcu(); - scst_free_tgt_dev(tgt_dev); - } - INIT_LIST_HEAD(head); - } - mutex_unlock(&sess->tgt_dev_list_mutex); - - TRACE_EXIT(); - return; -} - /* The activity supposed to be suspended and scst_mutex held */ int scst_acg_add_acn(struct scst_acg *acg, const char *name) { diff --git a/scst/src/scst_priv.h b/scst/src/scst_priv.h index 4927630..8854564 100644 --- a/scst/src/scst_priv.h +++ b/scst/src/scst_priv.h @@ -365,7 +365,6 @@ struct scst_acg *scst_find_acg(const struct scst_session *sess); void scst_check_reassign_sessions(void); int scst_sess_alloc_tgt_devs(struct scst_session *sess); -void scst_sess_free_tgt_devs(struct scst_session *sess); struct scst_tgt_dev *scst_lookup_tgt_dev(struct scst_session *sess, u64 lun); void scst_nexus_loss(struct scst_tgt_dev *tgt_dev, bool queue_UA); |
From: Gleb C. <lna...@ya...> - 2024-11-18 14:14:16
|
Commit: cc71332 GitHub URL: https://github.com/SCST-project/scst/commit/cc713322e77283b7b718da9449eb504d8d8c0c39 Author: Gleb Chesnokov Date: 2024-11-18T17:13:45+03:00 Log Message: ----------- nightly build: Update kernel versions Another kernel versions update. Modified Paths: -------------- .github/workflows/run_regression_tests.yaml | 28 +++++++------- nightly/conf/nightly.conf | 29 ++++++++------- 2 files changed, 31 insertions(+), 26 deletions(-) =================================================================== diff --git a/.github/workflows/run_regression_tests.yaml b/.github/workflows/run_regression_tests.yaml index 20683f7..0071aa1 100644 --- a/.github/workflows/run_regression_tests.yaml +++ b/.github/workflows/run_regression_tests.yaml @@ -4,7 +4,6 @@ on: push: branches: - master - - nightly/update pull_request: branches: - master @@ -17,31 +16,34 @@ jobs: fail-fast: false matrix: version: [ - '6.11', - '6.10.10', + '6.12', + '6.11.9', + '6.10.14', '6.9.12', '6.8.12', '6.7.12', - '6.6.51', - '6.1.110', - '5.15.167', - '5.10.226', - '5.4.284', - '4.19.322', + '6.6.62', + '6.1.118', + '5.15.173', + '5.10.230', + '5.4.286', + '4.19.324', '4.14.336', '4.9.337', '3.18.140', '3.10.108', - '5.14.0-427.33.1.el9_4^AlmaLinux^9.4', + '5.14.0-503.11.1.el9_5^AlmaLinux^9.5', + '5.14.0-427.42.1.el9_4^AlmaLinux^9.4', '5.14.0-362.24.2.el9_3^AlmaLinux^9.3', '5.14.0-284.30.1.el9_2^AlmaLinux^9.2', '4.18.0-513.24.1.el8_9^AlmaLinux^8.9', '4.18.0-477.13.1.el8_8^AlmaLinux^8.8', '4.18.0-425.19.2.el8_7^AlmaLinux^8.7', + '4.18.0-372.32.1.el8_6^AlmaLinux^8.6', '3.10.0-1160.118.1.el7^CentOS^7.9.2009', - '5.15.0-210.163.7.el9uek^UEK^9', - '5.4.17-2136.335.4.el8uek^UEK^8', - '5.4.17-2102.206.1.el7uek^UEK^7', + '5.15.0-302.167.6.el9uek^UEK^9', + '5.4.17-2136.337.5.1.el8uek^UEK^8', + '4.14.35-2047.542.2.el7uek^UEK^7', '4.1.12-124.48.6.el6uek^UEK^6' ] steps: diff --git a/nightly/conf/nightly.conf b/nightly/conf/nightly.conf index 52537f4..7c99cb2 100644 --- a/nightly/conf/nightly.conf +++ b/nightly/conf/nightly.conf @@ -3,40 +3,41 @@ ABT_DETAILS="x86_64" ABT_JOBS=5 ABT_KERNELS=" \ -6.11 \ -6.10.10-nc \ +6.12 \ +6.11.9-nc \ +6.10.14-nc \ 6.9.12-nc \ 6.8.12-nc \ 6.7.12-nc \ -6.6.51-nc \ +6.6.62-nc \ 6.5.13-nc \ 6.4.16-nc \ 6.3.13-nc \ 6.2.16-nc \ -6.1.110-nc \ +6.1.118-nc \ 6.0.19-nc \ 5.19.17-nc \ 5.18.19-nc \ 5.17.15-nc \ 5.16.20-nc \ -5.15.167-nc \ +5.15.173-nc \ 5.14.21-nc \ 5.13.19-nc \ 5.12.19-nc \ 5.11.22-nc \ -5.10.226-nc \ +5.10.230-nc \ 5.9.16-nc \ 5.8.18-nc \ 5.7.19-nc \ 5.6.19-nc \ 5.5.19-nc \ -5.4.284-nc \ +5.4.286-nc \ 5.3.18-nc \ 5.2.21-nc \ 5.1.21-nc \ 5.0.21-nc \ 4.20.17-nc \ -4.19.322-nc \ +4.19.324-nc \ 4.18.20-nc \ 4.17.19-nc \ 4.16.18-nc \ @@ -66,7 +67,8 @@ ABT_KERNELS=" \ 3.12.74-nc \ 3.11.10-nc \ 3.10.108-nc \ -5.14.0-427.33.1.el9_4^AlmaLinux^9.4-nc \ +5.14.0-503.11.1.el9_5^AlmaLinux^9.5-nc \ +5.14.0-427.42.1.el9_4^AlmaLinux^9.4-nc \ 5.14.0-362.24.2.el9_3^AlmaLinux^9.3-nc \ 5.14.0-284.30.1.el9_2^AlmaLinux^9.2-nc \ 5.14.0-162.23.1.el9_1^AlmaLinux^9.1-nc \ @@ -86,15 +88,16 @@ ABT_KERNELS=" \ 3.10.0-1062.18.1.el7^CentOS^7.7.1908-nc \ 3.10.0-957.27.2.el7^CentOS^7.6.1810-nc \ 3.10.0-862.14.4.el7^CentOS^7.5.1804-nc \ -5.15.0-210.163.7.el9uek^UEK^9-nc \ -5.15.0-210.163.7.el8uek^UEK^8-nc \ -5.4.17-2136.335.4.el8uek^UEK^8-nc \ +5.15.0-302.167.6.el9uek^UEK^9-nc \ +5.15.0-302.167.6.el8uek^UEK^8-nc \ +5.4.17-2136.337.5.1.el8uek^UEK^8-nc \ 5.4.17-2102.206.1.el8uek^UEK^8-nc \ 5.4.17-2036.104.5.el8uek^UEK^8-nc \ 5.4.17-2011.7.4.el8uek^UEK^8-nc \ -5.4.17-2136.335.4.el7uek^UEK^7-nc \ +5.4.17-2136.337.5.1.el7uek^UEK^7-nc \ 5.4.17-2102.206.1.el7uek^UEK^7-nc \ 5.4.17-2036.104.5.el7uek^UEK^7-nc \ 5.4.17-2011.7.4.el7uek^UEK^7-nc \ +4.14.35-2047.542.2.el7uek^UEK^7-nc \ 4.1.12-124.48.6.el6uek^UEK^6-nc \ " |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:38:27
|
Commit: 60dc638 GitHub URL: https://github.com/SCST-project/scst/commit/60dc638b1b87330469195b919131840a58f75921 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/iscsi.h | 112 +++++++-------- iscsi-scst/kernel/iscsi_dbg.h | 7 +- iscsi-scst/kernel/iscsi_hdr.h | 6 +- iscsi-scst/kernel/param.c | 92 +++++------- iscsi-scst/kernel/session.c | 100 ++++++------- iscsi-scst/kernel/target.c | 75 +++++----- 6 files changed, 169 insertions(+), 223 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/iscsi.h b/iscsi-scst/kernel/iscsi.h index dfd61cf..8b9728c 100644 --- a/iscsi-scst/kernel/iscsi.h +++ b/iscsi-scst/kernel/iscsi.h @@ -100,7 +100,6 @@ struct iscsi_thread_pool { struct list_head threads_list; /* protected by tp_mutex */ }; - struct iscsi_target; struct iscsi_cmnd; @@ -180,7 +179,7 @@ struct iscsi_session { u64 sid; }; -#define ISCSI_CONN_IOV_MAX (PAGE_SIZE/sizeof(struct kvec)) +#define ISCSI_CONN_IOV_MAX (PAGE_SIZE / sizeof(struct kvec)) #define ISCSI_CONN_RD_STATE_IDLE 0 #define ISCSI_CONN_RD_STATE_IN_LIST 1 @@ -250,13 +249,13 @@ struct iscsi_conn { struct file *file; struct socket *sock; - void (*old_state_change)(struct sock *); + void (*old_state_change)(struct sock *sk); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)) - void (*old_data_ready)(struct sock *); + void (*old_data_ready)(struct sock *sk); #else - void (*old_data_ready)(struct sock *, int); + void (*old_data_ready)(struct sock *sk, int len); #endif - void (*old_write_space)(struct sock *); + void (*old_write_space)(struct sock *sk); /* Both read only. Stay here for better CPU cache locality. */ int hdigest_type; @@ -545,22 +544,20 @@ extern void conn_abort(struct iscsi_conn *conn); extern void iscsi_restart_cmnd(struct iscsi_cmnd *cmnd); extern void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd); extern void iscsi_send_nop_in(struct iscsi_conn *conn); -extern int iscsi_preliminary_complete(struct iscsi_cmnd *req, - struct iscsi_cmnd *orig_req, bool get_data); -extern int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req, - bool get_data, int key, int asc, int ascq); +extern int iscsi_preliminary_complete(struct iscsi_cmnd *req, struct iscsi_cmnd *orig_req, + bool get_data); +extern int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req, bool get_data, int key, int asc, + int ascq); extern int iscsi_threads_pool_get(bool dedicated, const cpumask_t *cpu_mask, - struct iscsi_thread_pool **out_pool); + struct iscsi_thread_pool **out_pool); extern void iscsi_threads_pool_put(struct iscsi_thread_pool *p); /* conn.c */ extern struct kobj_type iscsi_conn_ktype; extern struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid); extern void conn_reinst_finished(struct iscsi_conn *conn); -extern int __add_conn(struct iscsi_session *session, - struct iscsi_kern_conn_info *info); -extern int __del_conn(struct iscsi_session *session, - struct iscsi_kern_conn_info *info); +extern int __add_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info); +extern int __del_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info); extern void conn_free(struct iscsi_conn *conn); extern void iscsi_make_conn_rd_active(struct iscsi_conn *conn); #define ISCSI_CONN_ACTIVE_CLOSE 1 @@ -568,8 +565,7 @@ extern void iscsi_make_conn_rd_active(struct iscsi_conn *conn); extern void __mark_conn_closed(struct iscsi_conn *conn, int flags); extern void mark_conn_closed(struct iscsi_conn *conn); extern void iscsi_make_conn_wr_active(struct iscsi_conn *conn); -extern void iscsi_check_tm_data_wait_timeouts(struct iscsi_conn *conn, - bool force); +extern void iscsi_check_tm_data_wait_timeouts(struct iscsi_conn *conn, bool force); extern void __iscsi_write_space_ready(struct iscsi_conn *conn); /* nthread.c */ @@ -583,27 +579,24 @@ extern void req_add_to_write_timeout_list(struct iscsi_cmnd *req); extern const struct attribute *iscsi_tgt_attrs[]; extern int iscsi_enable_target(struct scst_tgt *scst_tgt, bool enable); extern bool iscsi_is_target_enabled(struct scst_tgt *scst_tgt); -extern ssize_t iscsi_sysfs_send_event(uint32_t tid, - enum iscsi_kern_event_code code, - const char *param1, const char *param2, void **data); +extern ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code, + const char *param1, const char *param2, void **data); extern struct iscsi_target *target_lookup_by_id(u32 id); extern int __add_target(struct iscsi_kern_target_info *info); extern int __del_target(u32 id); extern ssize_t iscsi_sysfs_add_target(const char *target_name, char *params); extern ssize_t iscsi_sysfs_del_target(const char *target_name); extern ssize_t iscsi_sysfs_mgmt_cmd(char *cmd); -extern void target_del_session(struct iscsi_target *target, - struct iscsi_session *session, int flags); +extern void target_del_session(struct iscsi_target *target, struct iscsi_session *session, + int flags); extern void target_del_all_sess(struct iscsi_target *target, int flags); extern void target_del_all(void); /* config.c */ extern int conn_sysfs_add(struct iscsi_conn *conn); extern const struct attribute *iscsi_attrs[]; -extern int iscsi_add_attr(struct iscsi_target *target, - const struct iscsi_kern_attr *user_info); -extern void __iscsi_del_attr(struct iscsi_target *target, - struct iscsi_attr *tgt_attr); +extern int iscsi_add_attr(struct iscsi_target *target, const struct iscsi_kern_attr *user_info); +extern void __iscsi_del_attr(struct iscsi_target *target, struct iscsi_attr *tgt_attr); /* session.c */ extern const struct attribute *iscsi_sess_attrs[]; @@ -612,8 +605,7 @@ extern const struct file_operations session_seq_fops; extern struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid); extern void sess_reinst_finished(struct iscsi_session *session); -extern int __add_session(struct iscsi_target *target, - struct iscsi_kern_session_info *info); +extern int __add_session(struct iscsi_target *target, struct iscsi_kern_session_info *info); extern int __del_session(struct iscsi_target *target, u64 sid); extern int session_free(struct iscsi_session *session, bool del); extern void iscsi_sess_force_close(struct iscsi_session *sess); @@ -621,12 +613,11 @@ extern void iscsi_sess_force_close(struct iscsi_session *sess); /* params.c */ extern const char *iscsi_get_digest_name(int val, char *res); extern const char *iscsi_get_bool_value(int val); -extern int iscsi_params_set(struct iscsi_target *target, - struct iscsi_kern_params_info *info, int set); +extern int iscsi_params_set(struct iscsi_target *target, struct iscsi_kern_params_info *info, + int set); /* event.c */ -extern int event_send(u32 tid, u64 sid, u32 cid, u32 cookie, - enum iscsi_kern_event_code code, +extern int event_send(u32 tid, u64 sid, u32 cid, u32 cookie, enum iscsi_kern_event_code code, const char *param1, const char *param2); extern int event_init(void); extern void event_exit(void); @@ -677,8 +668,8 @@ static inline bool cmnd_get_check(struct iscsi_cmnd *cmnd) res = 1; /* Necessary code is serialized by locks in cmnd_done() */ } else { - TRACE_DBG("cmnd %p, new ref_cnt %d", cmnd, - atomic_read(&cmnd->ref_cnt)); + TRACE_DBG("cmnd %p, new ref_cnt %d", + cmnd, atomic_read(&cmnd->ref_cnt)); res = 0; } return res; @@ -687,8 +678,8 @@ static inline bool cmnd_get_check(struct iscsi_cmnd *cmnd) static inline void cmnd_get(struct iscsi_cmnd *cmnd) { atomic_inc(&cmnd->ref_cnt); - TRACE_DBG("cmnd %p, new cmnd->ref_cnt %d", cmnd, - atomic_read(&cmnd->ref_cnt)); + TRACE_DBG("cmnd %p, new cmnd->ref_cnt %d", + cmnd, atomic_read(&cmnd->ref_cnt)); /* * For the same reason as in kref_get(). Let's be safe and * always do it. @@ -698,8 +689,8 @@ static inline void cmnd_get(struct iscsi_cmnd *cmnd) static inline void cmnd_put(struct iscsi_cmnd *cmnd) { - TRACE_DBG("cmnd %p, new ref_cnt %d", cmnd, - atomic_read(&cmnd->ref_cnt)-1); + TRACE_DBG("cmnd %p, new ref_cnt %d", + cmnd, atomic_read(&cmnd->ref_cnt) - 1); EXTRACHECKS_BUG_ON(atomic_read(&cmnd->ref_cnt) == 0); @@ -708,21 +699,19 @@ static inline void cmnd_put(struct iscsi_cmnd *cmnd) } /* conn->write_list_lock supposed to be locked and BHs off */ -static inline void cmd_add_on_write_list(struct iscsi_conn *conn, - struct iscsi_cmnd *cmnd) +static inline void cmd_add_on_write_list(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) { struct iscsi_cmnd *parent = cmnd->parent_req; TRACE_DBG("cmnd %p", cmnd); /* See comment in iscsi_restart_cmnd() */ - EXTRACHECKS_BUG_ON(cmnd->parent_req->hashed && - (cmnd_opcode(cmnd) != ISCSI_OP_R2T)); + EXTRACHECKS_BUG_ON(cmnd->parent_req->hashed && (cmnd_opcode(cmnd) != ISCSI_OP_R2T)); list_add_tail(&cmnd->write_list_entry, &conn->write_list); cmnd->on_write_list = 1; parent->not_processed_rsp_cnt++; TRACE_DBG("not processed rsp cnt %d (parent %p)", - parent->not_processed_rsp_cnt, parent); + parent->not_processed_rsp_cnt, parent); } /* conn->write_list_lock supposed to be locked and BHs off */ @@ -736,17 +725,15 @@ static inline void cmd_del_from_write_list(struct iscsi_cmnd *cmnd) parent->not_processed_rsp_cnt--; TRACE_DBG("not processed rsp cnt %d (parent %p)", - parent->not_processed_rsp_cnt, parent); + parent->not_processed_rsp_cnt, parent); EXTRACHECKS_BUG_ON(parent->not_processed_rsp_cnt < 0); } -static inline void cmd_add_on_rx_ddigest_list(struct iscsi_cmnd *req, - struct iscsi_cmnd *cmnd) +static inline void cmd_add_on_rx_ddigest_list(struct iscsi_cmnd *req, struct iscsi_cmnd *cmnd) { - TRACE_DBG("Adding RX ddigest cmd %p to digest list of req %p", cmnd, - req); - list_add_tail(&cmnd->rx_ddigest_cmd_list_entry, - &req->rx_ddigest_cmd_list); + TRACE_DBG("Adding RX ddigest cmd %p to digest list of req %p", + cmnd, req); + list_add_tail(&cmnd->rx_ddigest_cmd_list_entry, &req->rx_ddigest_cmd_list); #ifdef CONFIG_SCST_EXTRACHECKS cmnd->on_rx_digest_list = 1; #endif @@ -765,7 +752,7 @@ static inline unsigned long iscsi_get_timeout(struct iscsi_cmnd *req) { unsigned long res; - res = (cmnd_opcode(req) == ISCSI_OP_NOP_OUT) ? + res = cmnd_opcode(req) == ISCSI_OP_NOP_OUT ? req->conn->nop_in_timeout : req->conn->data_rsp_timeout; if (unlikely(test_bit(ISCSI_CMD_ABORTED, &req->prelim_compl_flags))) @@ -791,8 +778,8 @@ static inline int test_write_ready(struct iscsi_conn *conn) static inline void conn_get(struct iscsi_conn *conn) { atomic_inc(&conn->conn_ref_cnt); - TRACE_DBG("conn %p, new conn_ref_cnt %d", conn, - atomic_read(&conn->conn_ref_cnt)); + TRACE_DBG("conn %p, new conn_ref_cnt %d", + conn, atomic_read(&conn->conn_ref_cnt)); /* * For the same reason as in kref_get(). Let's be safe and * always do it. @@ -802,8 +789,8 @@ static inline void conn_get(struct iscsi_conn *conn) static inline void conn_put(struct iscsi_conn *conn) { - TRACE_DBG("conn %p, new conn_ref_cnt %d", conn, - atomic_read(&conn->conn_ref_cnt)-1); + TRACE_DBG("conn %p, new conn_ref_cnt %d", + conn, atomic_read(&conn->conn_ref_cnt) - 1); sBUG_ON(atomic_read(&conn->conn_ref_cnt) == 0); /* @@ -823,23 +810,22 @@ static inline void iscsi_extracheck_is_rd_thread(struct iscsi_conn *conn) {} static inline void iscsi_extracheck_is_wr_thread(struct iscsi_conn *conn) {} #endif -extern int iscsi_conn_alloc(struct iscsi_session *session, - struct iscsi_kern_conn_info *info, struct iscsi_conn **new_conn, - struct iscsit_transport *t); +extern int iscsi_conn_alloc(struct iscsi_session *session, struct iscsi_kern_conn_info *info, + struct iscsi_conn **new_conn, struct iscsit_transport *t); extern int conn_activate(struct iscsi_conn *conn); extern void iscsi_tcp_mark_conn_closed(struct iscsi_conn *conn, int flags); extern void iscsi_tcp_conn_free(struct iscsi_conn *conn); extern void iscsi_cmnd_init(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd, - struct iscsi_cmnd *parent); + struct iscsi_cmnd *parent); extern struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn); extern void start_close_conn(struct iscsi_conn *conn); extern __be32 cmnd_set_sn(struct iscsi_cmnd *cmnd, int set_stat_sn); extern void iscsi_set_resid(struct iscsi_cmnd *rsp); -extern int iscsi_init_conn(struct iscsi_session *session, - struct iscsi_kern_conn_info *info, struct iscsi_conn *conn); +extern int iscsi_init_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info, + struct iscsi_conn *conn); extern void req_cmnd_pre_release(struct iscsi_cmnd *req); -extern struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, - int status, const u8 *sense_buf, int sense_len); +extern struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, int status, + const u8 *sense_buf, int sense_len); extern int iscsi_cmnd_set_write_buf(struct iscsi_cmnd *req); #endif /* __ISCSI_H__ */ diff --git a/iscsi-scst/kernel/iscsi_dbg.h b/iscsi-scst/kernel/iscsi_dbg.h index 85ba6d6..550e79b 100644 --- a/iscsi-scst/kernel/iscsi_dbg.h +++ b/iscsi-scst/kernel/iscsi_dbg.h @@ -48,16 +48,15 @@ struct iscsi_pdu; struct iscsi_cmnd; extern void iscsi_dump_pdu(struct iscsi_pdu *pdu); -extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag( - struct iscsi_cmnd *cmnd); +extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(struct iscsi_cmnd *cmnd); #else #define iscsi_dump_pdu(x) do {} while (0) #define iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(x) 0 #endif -#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_CONN_OC, args) +#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG | TRACE_CONN_OC, args) #define TRACE_CONN_CLOSE_DBG(args...) TRACE(TRACE_CONN_OC_DBG, args) #define TRACE_NET_PAGE(args...) TRACE_DBG_FLAG(TRACE_NET_PG, args) -#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_D_WRITE, args) +#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG | TRACE_D_WRITE, args) #endif diff --git a/iscsi-scst/kernel/iscsi_hdr.h b/iscsi-scst/kernel/iscsi_hdr.h index c1d70e7..e8f3ce6 100644 --- a/iscsi-scst/kernel/iscsi_hdr.h +++ b/iscsi-scst/kernel/iscsi_hdr.h @@ -125,7 +125,7 @@ struct iscsi_cdb_ahdr { __be16 ahslength; u8 ahstype; u8 reserved; - u8 cdb[0]; + u8 cdb[]; } __packed; struct iscsi_rlength_ahdr { @@ -163,7 +163,7 @@ struct iscsi_scsi_rsp_hdr { struct iscsi_sense_data { __be16 length; - u8 data[0]; + u8 data[]; } __packed; struct iscsi_task_mgt_hdr { @@ -518,7 +518,7 @@ struct iscsi_nop_in_hdr { #define ISCSI_RESERVED_TAG_CPU32 (0xffffffffU) #define ISCSI_RESERVED_TAG (cpu_to_be32(ISCSI_RESERVED_TAG_CPU32)) -#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *) (&((cmnd)->pdu.bhs))) +#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *)(&((cmnd)->pdu.bhs))) #define cmnd_opcode(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OPCODE_MASK) #define cmnd_scsicode(cmnd) (cmnd_hdr((cmnd))->scb[0]) diff --git a/iscsi-scst/kernel/param.c b/iscsi-scst/kernel/param.c index 77b1a82..1f01389 100644 --- a/iscsi-scst/kernel/param.c +++ b/iscsi-scst/kernel/param.c @@ -83,25 +83,25 @@ static void log_params(struct iscsi_sess_params *params) char hdigest_name[64], ddigest_name[64]; PRINT_INFO("Negotiated parameters: InitialR2T %s, ImmediateData %s, MaxConnections %d, MaxRecvDataSegmentLength %d, MaxXmitDataSegmentLength %d, ", - iscsi_get_bool_value(params->initial_r2t), - iscsi_get_bool_value(params->immediate_data), - params->max_connections, - params->max_recv_data_length, params->max_xmit_data_length); + iscsi_get_bool_value(params->initial_r2t), + iscsi_get_bool_value(params->immediate_data), + params->max_connections, + params->max_recv_data_length, params->max_xmit_data_length); PRINT_INFO(" MaxBurstLength %d, FirstBurstLength %d, DefaultTime2Wait %d, DefaultTime2Retain %d, ", - params->max_burst_length, params->first_burst_length, - params->default_wait_time, params->default_retain_time); + params->max_burst_length, params->first_burst_length, + params->default_wait_time, params->default_retain_time); PRINT_INFO(" MaxOutstandingR2T %d, DataPDUInOrder %s, DataSequenceInOrder %s, ErrorRecoveryLevel %d, ", - params->max_outstanding_r2t, - iscsi_get_bool_value(params->data_pdu_inorder), - iscsi_get_bool_value(params->data_sequence_inorder), - params->error_recovery_level); + params->max_outstanding_r2t, + iscsi_get_bool_value(params->data_pdu_inorder), + iscsi_get_bool_value(params->data_sequence_inorder), + params->error_recovery_level); PRINT_INFO(" HeaderDigest %s, DataDigest %s, OFMarker %s, IFMarker %s, OFMarkInt %d, IFMarkInt %d, RDMAExtensions %s", - iscsi_get_digest_name(params->header_digest, hdigest_name), - iscsi_get_digest_name(params->data_digest, ddigest_name), - iscsi_get_bool_value(params->ofmarker), - iscsi_get_bool_value(params->ifmarker), - params->ofmarkint, params->ifmarkint, - iscsi_get_bool_value(params->rdma_extensions)); + iscsi_get_digest_name(params->header_digest, hdigest_name), + iscsi_get_digest_name(params->data_digest, ddigest_name), + iscsi_get_bool_value(params->ofmarker), + iscsi_get_bool_value(params->ifmarker), + params->ofmarkint, params->ifmarkint, + iscsi_get_bool_value(params->rdma_extensions)); } /* target_mutex supposed to be locked */ @@ -137,13 +137,10 @@ static void sess_params_check(struct iscsi_kern_params_info *info) CHECK_PARAM(info, iparams, rdma_extensions, 0, 1); CHECK_PARAM(info, iparams, target_recv_data_length, 512, max_len); CHECK_PARAM(info, iparams, initiator_recv_data_length, 512, max_len); - - return; } /* target_mutex supposed to be locked */ -static void sess_params_set(struct iscsi_sess_params *params, - struct iscsi_kern_params_info *info) +static void sess_params_set(struct iscsi_sess_params *params, struct iscsi_kern_params_info *info) { int32_t *iparams = info->session_params; @@ -171,11 +168,9 @@ static void sess_params_set(struct iscsi_sess_params *params, SET_PARAM(params, info, iparams, rdma_extensions); SET_PARAM(params, info, iparams, target_recv_data_length); SET_PARAM(params, info, iparams, initiator_recv_data_length); - return; } -static void sess_params_get(struct iscsi_sess_params *params, - struct iscsi_kern_params_info *info) +static void sess_params_get(struct iscsi_sess_params *params, struct iscsi_kern_params_info *info) { int32_t *iparams = info->session_params; @@ -203,12 +198,10 @@ static void sess_params_get(struct iscsi_sess_params *params, GET_PARAM(params, info, iparams, rdma_extensions); GET_PARAM(params, info, iparams, target_recv_data_length); GET_PARAM(params, info, iparams, initiator_recv_data_length); - return; } /* target_mutex supposed to be locked */ -static void tgt_params_check(struct iscsi_session *session, - struct iscsi_kern_params_info *info) +static void tgt_params_check(struct iscsi_session *session, struct iscsi_kern_params_info *info) { int32_t *iparams = info->target_params; unsigned int rsp_timeout, nop_in_timeout; @@ -218,14 +211,10 @@ static void tgt_params_check(struct iscsi_session *session, * performed in the user space. */ - CHECK_PARAM(info, iparams, queued_cmnds, MIN_NR_QUEUED_CMNDS, - MAX_NR_QUEUED_CMNDS); - CHECK_PARAM(info, iparams, rsp_timeout, MIN_RSP_TIMEOUT, - MAX_RSP_TIMEOUT); - CHECK_PARAM(info, iparams, nop_in_interval, MIN_NOP_IN_INTERVAL, - MAX_NOP_IN_INTERVAL); - CHECK_PARAM(info, iparams, nop_in_timeout, MIN_NOP_IN_TIMEOUT, - MAX_NOP_IN_TIMEOUT); + CHECK_PARAM(info, iparams, queued_cmnds, MIN_NR_QUEUED_CMNDS, MAX_NR_QUEUED_CMNDS); + CHECK_PARAM(info, iparams, rsp_timeout, MIN_RSP_TIMEOUT, MAX_RSP_TIMEOUT); + CHECK_PARAM(info, iparams, nop_in_interval, MIN_NOP_IN_INTERVAL, MAX_NOP_IN_INTERVAL); + CHECK_PARAM(info, iparams, nop_in_timeout, MIN_NOP_IN_TIMEOUT, MAX_NOP_IN_TIMEOUT); /* * We adjust too long timeout in req_add_to_write_timeout_list() @@ -240,14 +229,12 @@ static void tgt_params_check(struct iscsi_session *session, else nop_in_timeout = session->tgt_params.nop_in_timeout; if (nop_in_timeout > rsp_timeout) - PRINT_WARNING("%s", "RspTimeout should be >= NopInTimeout, otherwise data transfer failure could take up to NopInTimeout long to detect"); - - return; + PRINT_WARNING("RspTimeout should be >= NopInTimeout, otherwise data transfer failure could take up to NopInTimeout long to detect"); } /* target_mutex supposed to be locked */ -static int iscsi_tgt_params_set(struct iscsi_session *session, - struct iscsi_kern_params_info *info, int set) +static int iscsi_tgt_params_set(struct iscsi_session *session, struct iscsi_kern_params_info *info, + int set) { struct iscsi_tgt_params *params = &session->tgt_params; int32_t *iparams = info->target_params; @@ -264,12 +251,12 @@ static int iscsi_tgt_params_set(struct iscsi_session *session, SET_PARAM(params, info, iparams, nop_in_interval); SET_PARAM(params, info, iparams, nop_in_timeout); - PRINT_INFO("Target parameters set for session %llx: QueuedCommands %d, Response timeout %d, Nop-In interval %d, Nop-In timeout %d", session->sid, - params->queued_cmnds, params->rsp_timeout, - params->nop_in_interval, params->nop_in_timeout); + PRINT_INFO("Target parameters set for session %llx: QueuedCommands %d, Response timeout %d, Nop-In interval %d, Nop-In timeout %d", + session->sid, + params->queued_cmnds, params->rsp_timeout, + params->nop_in_interval, params->nop_in_timeout); - list_for_each_entry(conn, &session->conn_list, - conn_list_entry) { + list_for_each_entry(conn, &session->conn_list, conn_list_entry) { conn->data_rsp_timeout = session->tgt_params.rsp_timeout * HZ; conn->nop_in_interval = @@ -277,11 +264,11 @@ static int iscsi_tgt_params_set(struct iscsi_session *session, conn->nop_in_timeout = session->tgt_params.nop_in_timeout * HZ; spin_lock_bh(&conn->conn_thr_pool->rd_lock); - if (!conn->closing && (conn->nop_in_interval > 0)) { + if (!conn->closing && conn->nop_in_interval > 0) { TRACE_DBG("Schedule Nop-In work for conn %p", conn); schedule_delayed_work(&conn->nop_in_delayed_work, - conn->nop_in_interval + ISCSI_ADD_SCHED_TIME); + conn->nop_in_interval + ISCSI_ADD_SCHED_TIME); } spin_unlock_bh(&conn->conn_thr_pool->rd_lock); } @@ -297,7 +284,7 @@ static int iscsi_tgt_params_set(struct iscsi_session *session, /* target_mutex supposed to be locked */ static int iscsi_sess_params_set(struct iscsi_session *session, - struct iscsi_kern_params_info *info, int set) + struct iscsi_kern_params_info *info, int set) { struct iscsi_sess_params *params; @@ -309,15 +296,15 @@ static int iscsi_sess_params_set(struct iscsi_session *session, if (set) { sess_params_set(params, info); log_params(params); - } else + } else { sess_params_get(params, info); + } return 0; } /* target_mutex supposed to be locked */ -int iscsi_params_set(struct iscsi_target *target, - struct iscsi_kern_params_info *info, int set) +int iscsi_params_set(struct iscsi_target *target, struct iscsi_kern_params_info *info, int set) { int err; struct iscsi_session *session; @@ -331,14 +318,13 @@ int iscsi_params_set(struct iscsi_target *target, } session = session_lookup(target, info->sid); - if (session == NULL) { + if (!session) { PRINT_ERROR("Session for sid %llx not found", info->sid); err = -ENOENT; goto out; } - if (set && !list_empty(&session->conn_list) && - (info->params_type != key_target)) { + if (set && !list_empty(&session->conn_list) && info->params_type != key_target) { err = -EBUSY; goto out; } diff --git a/iscsi-scst/kernel/session.c b/iscsi-scst/kernel/session.c index 1d5d9ca..906a2f9 100644 --- a/iscsi-scst/kernel/session.c +++ b/iscsi-scst/kernel/session.c @@ -29,8 +29,7 @@ struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid) lockdep_assert_held(&target->target_mutex); - list_for_each_entry(session, &target->session_list, - session_list_entry) { + list_for_each_entry(session, &target->session_list, session_list_entry) { if (session->sid == sid) return session; } @@ -38,8 +37,8 @@ struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid) } /* target_mgmt_mutex supposed to be locked */ -static int iscsi_session_alloc(struct iscsi_target *target, - struct iscsi_kern_session_info *info, struct iscsi_session **result) +static int iscsi_session_alloc(struct iscsi_target *target, struct iscsi_kern_session_info *info, + struct iscsi_session **result) { int err; unsigned int i; @@ -76,27 +75,24 @@ static int iscsi_session_alloc(struct iscsi_target *target, session->next_ttt = 1; - session->scst_sess = scst_register_session(target->scst_tgt, 0, - name, session, NULL, NULL); - if (session->scst_sess == NULL) { + session->scst_sess = scst_register_session(target->scst_tgt, 0, name, session, NULL, NULL); + if (!session->scst_sess) { PRINT_ERROR("%s", "scst_register_session() failed"); err = -ENOMEM; goto err; } if (!session->sess_params.rdma_extensions) { - err = iscsi_threads_pool_get( - scst_get_acg_tgt_priv(session->scst_sess->acg) != NULL, - &session->scst_sess->acg->acg_cpu_mask, - &session->sess_thr_pool); + err = iscsi_threads_pool_get((bool)scst_get_acg_tgt_priv(session->scst_sess->acg), + &session->scst_sess->acg->acg_cpu_mask, + &session->sess_thr_pool); if (err != 0) goto err_unreg; } - TRACE(TRACE_MGMT, "Session %p created: target %p, tid %u, sid %#Lx, initiator %s", - session, target, target->tid, info->sid, - session->scst_sess->initiator_name); + session, target, target->tid, info->sid, + session->scst_sess->initiator_name); *result = session; return 0; @@ -131,12 +127,10 @@ void sess_reinst_finished(struct iscsi_session *sess) sess->sess_reinstating = 0; TRACE_EXIT(); - return; } /* target_mgmt_mutex supposed to be locked */ -int __add_session(struct iscsi_target *target, - struct iscsi_kern_session_info *info) +int __add_session(struct iscsi_target *target, struct iscsi_kern_session_info *info) { struct iscsi_session *new_sess = NULL, *sess, *old_sess; int err = 0, i; @@ -155,17 +149,17 @@ int __add_session(struct iscsi_target *target, mutex_lock(&target->target_mutex); sess = session_lookup(target, info->sid); - if (sess != NULL) { + if (sess) { PRINT_ERROR("Attempt to add session with existing SID %llx", - info->sid); + info->sid); err = -EEXIST; goto out_err_unlock; } params_info = kmalloc(sizeof(*params_info), GFP_KERNEL); - if (params_info == NULL) { + if (!params_info) { PRINT_ERROR("Unable to allocate params info (size %zd)", - sizeof(*params_info)); + sizeof(*params_info)); err = -ENOMEM; goto out_err_unlock; } @@ -178,13 +172,12 @@ int __add_session(struct iscsi_target *target, * We need to find the latest session to correctly handle * multi-reinstatements */ - list_for_each_entry_reverse(sess, &target->session_list, - session_list_entry) { + list_for_each_entry_reverse(sess, &target->session_list, session_list_entry) { union iscsi_sid s = *(union iscsi_sid *)&sess->sid; s.id.tsih = 0; - if ((sid.id64 == s.id64) && - (strcmp(info->initiator_name, sess->initiator_name) == 0)) { + if (sid.id64 == s.id64 && + strcmp(info->initiator_name, sess->initiator_name) == 0) { if (!sess->sess_shutting_down) { /* session reinstatement */ old_sess = sess; @@ -221,11 +214,11 @@ int __add_session(struct iscsi_target *target, kfree(params_info); params_info = NULL; - if (old_sess != NULL) { + if (old_sess) { reinstatement = true; TRACE_MGMT_DBG("Reinstating sess %p with SID %llx (old %p, SID %llx)", - new_sess, new_sess->sid, old_sess, old_sess->sid); + new_sess, new_sess->sid, old_sess, old_sess->sid); new_sess->sess_reinstating = 1; old_sess->sess_reinst_successor = new_sess; @@ -246,7 +239,7 @@ int __add_session(struct iscsi_target *target, * SCST core under scst_mutex). */ scst_set_initial_UA(new_sess->scst_sess, - SCST_LOAD_SENSE(scst_sense_nexus_loss_UA)); + SCST_LOAD_SENSE(scst_sense_nexus_loss_UA)); } out: @@ -288,7 +281,6 @@ static void iscsi_unreg_sess_done(struct scst_session *scst_sess) __session_free(session); TRACE_EXIT(); - return; } /* target_mutex supposed to be locked */ @@ -297,29 +289,28 @@ int session_free(struct iscsi_session *session, bool del) unsigned int i; TRACE(TRACE_MGMT, "Freeing session %p (SID %llx)", - session, session->sid); + session, session->sid); lockdep_assert_held(&session->target->target_mutex); sBUG_ON(!list_empty(&session->conn_list)); if (unlikely(atomic_read(&session->active_cmds) != 0)) { PRINT_CRIT_ERROR("active_cmds not 0 (%d)!!", - atomic_read(&session->active_cmds)); + atomic_read(&session->active_cmds)); sBUG(); } for (i = 0; i < ARRAY_SIZE(session->cmnd_data_wait_hash); i++) sBUG_ON(!list_empty(&session->cmnd_data_wait_hash[i])); - if (session->sess_reinst_successor != NULL) + if (session->sess_reinst_successor) sess_reinst_finished(session->sess_reinst_successor); if (session->sess_reinstating) { struct iscsi_session *s; TRACE_MGMT_DBG("Freeing being reinstated sess %p", session); - list_for_each_entry(s, &session->target->session_list, - session_list_entry) { + list_for_each_entry(s, &session->target->session_list, session_list_entry) { if (s->sess_reinst_successor == session) { s->sess_reinst_successor = NULL; break; @@ -330,7 +321,7 @@ int session_free(struct iscsi_session *session, bool del) if (del) list_del(&session->session_list_entry); - if (session->scst_sess != NULL) { + if (session->scst_sess) { /* * We must NOT call scst_unregister_session() in the waiting * mode, since we are under target_mutex. Otherwise we can @@ -338,10 +329,10 @@ int session_free(struct iscsi_session *session, bool del) * and scst_mutex in SCST core (iscsi_report_aen() called by * SCST core under scst_mutex). */ - scst_unregister_session(session->scst_sess, 0, - iscsi_unreg_sess_done); - } else + scst_unregister_session(session->scst_sess, 0, iscsi_unreg_sess_done); + } else { __session_free(session); + } return 0; } @@ -376,19 +367,17 @@ void iscsi_sess_force_close(struct iscsi_session *sess) lockdep_assert_held(&sess->target->target_mutex); PRINT_INFO("Force closing session %llx with initiator %s (%p)", - (unsigned long long)sess->sid, sess->initiator_name, sess); + (unsigned long long)sess->sid, sess->initiator_name, sess); list_for_each_entry(conn, &sess->conn_list, conn_list_entry) { TRACE(TRACE_MGMT, "Force closing connection %p", conn); __mark_conn_closed(conn, - ISCSI_CONN_ACTIVE_CLOSE|ISCSI_CONN_DELETING); + ISCSI_CONN_ACTIVE_CLOSE | ISCSI_CONN_DELETING); } TRACE_EXIT(); - return; } - #define ISCSI_SESS_BOOL_PARAM_ATTR(name, exported_name) \ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ struct kobj_attribute *attr, char *buf) \ @@ -407,7 +396,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ } \ \ static struct kobj_attribute iscsi_sess_attr_##name = \ - __ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL) + __ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL) #define ISCSI_SESS_INT_PARAM_ATTR(name, exported_name) \ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ @@ -426,7 +415,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ } \ \ static struct kobj_attribute iscsi_sess_attr_##name = \ - __ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL) + __ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL) #define ISCSI_SESS_DIGEST_PARAM_ATTR(name, exported_name) \ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ @@ -447,7 +436,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \ } \ \ static struct kobj_attribute iscsi_sess_attr_##name = \ - __ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL) + __ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL) ISCSI_SESS_BOOL_PARAM_ATTR(initial_r2t, InitialR2T); ISCSI_SESS_BOOL_PARAM_ATTR(immediate_data, ImmediateData); @@ -459,8 +448,7 @@ ISCSI_SESS_INT_PARAM_ATTR(max_outstanding_r2t, MaxOutstandingR2T); ISCSI_SESS_DIGEST_PARAM_ATTR(header_digest, HeaderDigest); ISCSI_SESS_DIGEST_PARAM_ATTR(data_digest, DataDigest); -static ssize_t iscsi_sess_sid_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_sess_sid_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int pos; struct scst_session *scst_sess; @@ -478,10 +466,10 @@ static ssize_t iscsi_sess_sid_show(struct kobject *kobj, } static struct kobj_attribute iscsi_attr_sess_sid = - __ATTR(sid, S_IRUGO, iscsi_sess_sid_show, NULL); + __ATTR(sid, 0444, iscsi_sess_sid_show, NULL); -static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) { int pos; struct scst_session *scst_sess; @@ -499,13 +487,12 @@ static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj, } static struct kobj_attribute iscsi_sess_attr_reinstating = - __ATTR(reinstating, S_IRUGO, iscsi_sess_reinstating_show, NULL); + __ATTR(reinstating, 0444, iscsi_sess_reinstating_show, NULL); -static ssize_t iscsi_sess_thread_pid_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_sess_thread_pid_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) { - struct scst_session *scst_sess = container_of(kobj, struct scst_session, - sess_kobj); + struct scst_session *scst_sess = container_of(kobj, struct scst_session, sess_kobj); struct iscsi_session *sess = scst_sess_get_tgt_priv(scst_sess); struct iscsi_thread_pool *thr_pool = sess->sess_thr_pool; struct iscsi_thread *t; @@ -530,7 +517,7 @@ out: } static struct kobj_attribute iscsi_sess_thread_pid = - __ATTR(thread_pid, S_IRUGO, iscsi_sess_thread_pid_show, NULL); + __ATTR(thread_pid, 0444, iscsi_sess_thread_pid_show, NULL); const struct attribute *iscsi_sess_attrs[] = { &iscsi_sess_attr_initial_r2t.attr, @@ -547,4 +534,3 @@ const struct attribute *iscsi_sess_attrs[] = { &iscsi_sess_thread_pid.attr, NULL, }; - diff --git a/iscsi-scst/kernel/target.c b/iscsi-scst/kernel/target.c index a74ef48..bb9ec0b 100644 --- a/iscsi-scst/kernel/target.c +++ b/iscsi-scst/kernel/target.c @@ -60,7 +60,7 @@ static struct iscsi_target *target_lookup_by_name(const char *name) /* target_mgmt_mutex supposed to be locked */ static int iscsi_target_create(struct iscsi_kern_target_info *info, u32 tid, - struct iscsi_target **out_target) + struct iscsi_target **out_target) { int err = -EINVAL, len; char *name = info->name; @@ -87,7 +87,8 @@ static int iscsi_target_create(struct iscsi_kern_target_info *info, u32 tid, goto out_put; } - target->tid = info->tid = tid; + info->tid = tid; + target->tid = info->tid; strscpy(target->name, name, sizeof(target->name)); @@ -154,9 +155,9 @@ int __add_target(struct iscsi_kern_target_info *info) } add_info = kmalloc(sizeof(*add_info), GFP_KERNEL); - if (add_info == NULL) { + if (!add_info) { PRINT_ERROR("Unable to allocate additional info (size %zd)", - sizeof(*add_info)); + sizeof(*add_info)); err = -ENOMEM; goto out; } @@ -194,7 +195,7 @@ int __add_target(struct iscsi_kern_target_info *info) goto out_del_unlock; } - attr_info->name[sizeof(attr_info->name)-1] = '\0'; + attr_info->name[sizeof(attr_info->name) - 1] = '\0'; err = iscsi_add_attr(target, attr_info); if (err != 0) @@ -226,17 +227,14 @@ static void target_destroy(struct iscsi_target *target) TRACE_MGMT_DBG("Destroying target tid %u", target->tid); - list_for_each_entry_safe(attr, t, &target->attrs_list, - attrs_list_entry) { + list_for_each_entry_safe(attr, t, &target->attrs_list, attrs_list_entry) __iscsi_del_attr(target, attr); - } scst_unregister_target(target->scst_tgt); kfree(target); module_put(THIS_MODULE); - return; } /* target_mgmt_mutex supposed to be locked */ @@ -276,13 +274,12 @@ out: } /* target_mutex supposed to be locked */ -void target_del_session(struct iscsi_target *target, - struct iscsi_session *session, int flags) +void target_del_session(struct iscsi_target *target, struct iscsi_session *session, int flags) { TRACE_ENTRY(); - TRACE(TRACE_MGMT, "Deleting session %p (initiator %s)", session, - session->scst_sess->initiator_name); + TRACE(TRACE_MGMT, "Deleting session %p (initiator %s)", + session, session->scst_sess->initiator_name); lockdep_assert_held(&target->target_mutex); @@ -301,7 +298,6 @@ void target_del_session(struct iscsi_target *target, } TRACE_EXIT(); - return; } /* target_mutex supposed to be locked */ @@ -315,14 +311,12 @@ void target_del_all_sess(struct iscsi_target *target, int flags) if (!list_empty(&target->session_list)) { TRACE_MGMT_DBG("Deleting all sessions from target %p", target); - list_for_each_entry_safe(session, ts, &target->session_list, - session_list_entry) { + + list_for_each_entry_safe(session, ts, &target->session_list, session_list_entry) target_del_session(target, session, flags); - } } TRACE_EXIT(); - return; } EXPORT_SYMBOL(target_del_all_sess); @@ -363,14 +357,13 @@ void target_del_all(void) * theyself, but act in advance. */ - list_for_each_entry_safe(target, t, &target_list, - target_list_entry) { + list_for_each_entry_safe(target, t, &target_list, target_list_entry) { mutex_lock(&target->target_mutex); if (!list_empty(&target->session_list)) { target_del_all_sess(target, - ISCSI_CONN_ACTIVE_CLOSE | - ISCSI_CONN_DELETING); + ISCSI_CONN_ACTIVE_CLOSE | + ISCSI_CONN_DELETING); } else if (!first) { TRACE_MGMT_DBG("Deleting target %p", target); list_del(&target->target_list_entry); @@ -393,12 +386,9 @@ void target_del_all(void) TRACE_MGMT_DBG("%s", "Deleting all targets finished"); TRACE_EXIT(); - return; } - -static ssize_t iscsi_tgt_tid_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_tgt_tid_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int res = -E_TGT_PRIV_NOT_YET_SET; struct scst_tgt *scst_tgt; @@ -419,15 +409,15 @@ out: } static struct kobj_attribute iscsi_tgt_attr_tid = - __ATTR(tid, S_IRUGO, iscsi_tgt_tid_show, NULL); + __ATTR(tid, 0444, iscsi_tgt_tid_show, NULL); const struct attribute *iscsi_tgt_attrs[] = { &iscsi_tgt_attr_tid.attr, NULL, }; -ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code, - const char *param1, const char *param2, void **data) +ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code, const char *param1, + const char *param2, void **data) { int res; struct scst_sysfs_user_info *info; @@ -461,7 +451,7 @@ ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code, */ res = scst_wait_info_completion(info, 31 * HZ); - if (data != NULL) + if (data) *data = info->data; out_free: @@ -481,7 +471,7 @@ int iscsi_enable_target(struct scst_tgt *scst_tgt, bool enable) TRACE_ENTRY(); - if (tgt == NULL) { + if (!tgt) { res = -E_TGT_PRIV_NOT_YET_SET; goto out; } @@ -505,7 +495,7 @@ bool iscsi_is_target_enabled(struct scst_tgt *scst_tgt) struct iscsi_target *tgt = (struct iscsi_target *)scst_tgt_get_tgt_priv(scst_tgt); - if (tgt != NULL) + if (tgt) return tgt->tgt_enabled; else return false; @@ -517,8 +507,7 @@ ssize_t iscsi_sysfs_add_target(const char *target_name, char *params) TRACE_ENTRY(); - res = iscsi_sysfs_send_event(0, E_ADD_TARGET, target_name, - params, NULL); + res = iscsi_sysfs_send_event(0, E_ADD_TARGET, target_name, params, NULL); if (res > 0) { /* It's tid */ res = 0; @@ -540,7 +529,7 @@ ssize_t iscsi_sysfs_del_target(const char *target_name) mutex_lock(&target_mgmt_mutex); tgt = target_lookup_by_name(target_name); - if (tgt == NULL) { + if (!tgt) { PRINT_ERROR("Target %s not found", target_name); mutex_unlock(&target_mgmt_mutex); res = -ENOENT; @@ -574,7 +563,7 @@ ssize_t iscsi_sysfs_mgmt_cmd(char *cmd) } static ssize_t iscsi_acg_sess_dedicated_threads_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) + struct kobj_attribute *attr, char *buf) { int pos; struct scst_acg *acg; @@ -583,17 +572,17 @@ static ssize_t iscsi_acg_sess_dedicated_threads_show(struct kobject *kobj, TRACE_ENTRY(); acg = container_of(kobj, struct scst_acg, acg_kobj); - dedicated = scst_get_acg_tgt_priv(acg) != NULL; + dedicated = scst_get_acg_tgt_priv(acg); - pos = sprintf(buf, "%d\n%s", dedicated, - dedicated ? SCST_SYSFS_KEY_MARK "\n" : ""); + pos = sprintf(buf, "%d\n%s", dedicated, dedicated ? SCST_SYSFS_KEY_MARK "\n" : ""); TRACE_EXIT_RES(pos); return pos; } static ssize_t iscsi_acg_sess_dedicated_threads_store(struct kobject *kobj, - struct kobj_attribute *attr, const char *buf, size_t count) + struct kobj_attribute *attr, const char *buf, + size_t count) { int res; struct scst_acg *acg; @@ -619,9 +608,9 @@ out: } static struct kobj_attribute iscsi_acg_attr_sess_dedicated_threads = - __ATTR(per_sess_dedicated_tgt_threads, S_IRUGO | S_IWUSR, - iscsi_acg_sess_dedicated_threads_show, - iscsi_acg_sess_dedicated_threads_store); + __ATTR(per_sess_dedicated_tgt_threads, 0644, + iscsi_acg_sess_dedicated_threads_show, + iscsi_acg_sess_dedicated_threads_store); const struct attribute *iscsi_acg_attrs[] = { &iscsi_acg_attr_sess_dedicated_threads.attr, |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:38:17
|
Commit: 3a54209 GitHub URL: https://github.com/SCST-project/scst/commit/3a54209167eed158b4adc6e9a8c1a8d167acaa4d Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/nthread.c | 269 +++++++-------- 1 file changed, 120 insertions(+), 149 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/nthread.c b/iscsi-scst/kernel/nthread.c index 09a2330..6212444 100644 --- a/iscsi-scst/kernel/nthread.c +++ b/iscsi-scst/kernel/nthread.c @@ -68,13 +68,12 @@ static void free_pending_commands(struct iscsi_conn *conn) req_freed = 0; list_for_each_entry(cmnd, pending_list, pending_list_entry) { TRACE_CONN_CLOSE_DBG("Pending cmd %p (conn %p, cmd_sn %u, exp_cmd_sn %u)", - cmnd, conn, cmnd->pdu.bhs.sn, - session->exp_cmd_sn); - if ((cmnd->conn == conn) && - (session->exp_cmd_sn == cmnd->pdu.bhs.sn)) { + cmnd, conn, cmnd->pdu.bhs.sn, + session->exp_cmd_sn); + if (cmnd->conn == conn && session->exp_cmd_sn == cmnd->pdu.bhs.sn) { TRACE_MGMT_DBG("Freeing pending cmd %p (cmd_sn %u, exp_cmd_sn %u)", - cmnd, cmnd->pdu.bhs.sn, - session->exp_cmd_sn); + cmnd, cmnd->pdu.bhs.sn, + session->exp_cmd_sn); list_del(&cmnd->pending_list_entry); cmnd->pending = 0; @@ -92,8 +91,6 @@ static void free_pending_commands(struct iscsi_conn *conn) } } while (req_freed); spin_unlock(&session->sn_lock); - - return; } static void free_orphaned_pending_commands(struct iscsi_conn *conn) @@ -108,12 +105,12 @@ static void free_orphaned_pending_commands(struct iscsi_conn *conn) req_freed = 0; list_for_each_entry(cmnd, pending_list, pending_list_entry) { TRACE_CONN_CLOSE_DBG("Pending cmd %p (conn %p, cmd_sn %u, exp_cmd_sn %u)", - cmnd, conn, cmnd->pdu.bhs.sn, - session->exp_cmd_sn); + cmnd, conn, cmnd->pdu.bhs.sn, + session->exp_cmd_sn); if (cmnd->conn == conn) { TRACE_MGMT_DBG("Freeing orphaned pending cmnd %p (cmd_sn %u, exp_cmd_sn %u)", - cmnd, cmnd->pdu.bhs.sn, - session->exp_cmd_sn); + cmnd, cmnd->pdu.bhs.sn, + session->exp_cmd_sn); list_del(&cmnd->pending_list_entry); cmnd->pending = 0; @@ -132,8 +129,6 @@ static void free_orphaned_pending_commands(struct iscsi_conn *conn) } } while (req_freed); spin_unlock(&session->sn_lock); - - return; } #ifdef CONFIG_SCST_DEBUG @@ -142,23 +137,19 @@ static void trace_conn_close(struct iscsi_conn *conn) struct iscsi_cmnd *cmnd; #if 0 - if (time_after(jiffies, start_waiting + 10*HZ)) + if (time_after(jiffies, start_waiting + 10 * HZ)) trace_flag |= TRACE_CONN_OC_DBG; #endif spin_lock_bh(&conn->cmd_list_lock); - list_for_each_entry(cmnd, &conn->cmd_list, - cmd_list_entry) { - TRACE_CONN_CLOSE_DBG( - "cmd %p, scst_cmd %p, scst_state %x, scst_cmd state %d, r2t_len_to_receive %d, ref_cnt %d, sn %u, parent_req %p, pending %d", - cmnd, cmnd->scst_cmd, cmnd->scst_state, - ((cmnd->parent_req == NULL) && cmnd->scst_cmd) ? - cmnd->scst_cmd->state : -1, - cmnd->r2t_len_to_receive, atomic_read(&cmnd->ref_cnt), - cmnd->pdu.bhs.sn, cmnd->parent_req, cmnd->pending); + list_for_each_entry(cmnd, &conn->cmd_list, cmd_list_entry) { + TRACE_CONN_CLOSE_DBG("cmd %p, scst_cmd %p, scst_state %x, scst_cmd state %d, r2t_len_to_receive %d, ref_cnt %d, sn %u, parent_req %p, pending %d", + cmnd, cmnd->scst_cmd, cmnd->scst_state, + !cmnd->parent_req && cmnd->scst_cmd ? cmnd->scst_cmd->state : -1, + cmnd->r2t_len_to_receive, atomic_read(&cmnd->ref_cnt), + cmnd->pdu.bhs.sn, cmnd->parent_req, cmnd->pending); } spin_unlock_bh(&conn->cmd_list_lock); - return; } #else /* CONFIG_SCST_DEBUG */ static void trace_conn_close(struct iscsi_conn *conn) {} @@ -178,10 +169,9 @@ void iscsi_task_mgmt_affected_cmds_done(struct scst_mgmt_cmd *scst_mcmd) struct iscsi_session *sess = conn->session; struct iscsi_conn *c; - if (sess->sess_reinst_successor != NULL) - scst_reassign_retained_sess_states( - sess->sess_reinst_successor->scst_sess, - sess->scst_sess); + if (sess->sess_reinst_successor) + scst_reassign_retained_sess_states(sess->sess_reinst_successor->scst_sess, + sess->scst_sess); mutex_lock(&sess->target->target_mutex); @@ -194,19 +184,18 @@ void iscsi_task_mgmt_affected_cmds_done(struct scst_mgmt_cmd *scst_mcmd) */ sess->sess_shutting_down = 1; list_for_each_entry(c, &sess->conn_list, conn_list_entry) { - if (!test_bit(ISCSI_CONN_SHUTTINGDOWN, - &c->conn_aflags)) { + if (!test_bit(ISCSI_CONN_SHUTTINGDOWN, &c->conn_aflags)) { sess->sess_shutting_down = 0; break; } } - if (conn->conn_reinst_successor != NULL) { + if (conn->conn_reinst_successor) { sBUG_ON(!test_bit(ISCSI_CONN_REINSTATING, - &conn->conn_reinst_successor->conn_aflags)); + &conn->conn_reinst_successor->conn_aflags)); conn_reinst_finished(conn->conn_reinst_successor); conn->conn_reinst_successor = NULL; - } else if (sess->sess_reinst_successor != NULL) { + } else if (sess->sess_reinst_successor) { sess_reinst_finished(sess->sess_reinst_successor); sess->sess_reinst_successor = NULL; } @@ -224,8 +213,6 @@ void iscsi_task_mgmt_affected_cmds_done(struct scst_mgmt_cmd *scst_mcmd) /* Nothing to do */ break; } - - return; } /* No locks */ @@ -241,15 +228,15 @@ static void close_conn(struct iscsi_conn *conn) int rc; int lun = 0; -#define CONN_PENDING_TIMEOUT ((typeof(jiffies))10*HZ) -#define CONN_WAIT_TIMEOUT ((typeof(jiffies))10*HZ) -#define CONN_REG_SHUT_TIMEOUT ((typeof(jiffies))125*HZ) -#define CONN_DEL_SHUT_TIMEOUT ((typeof(jiffies))10*HZ) +#define CONN_PENDING_TIMEOUT ((typeof(jiffies))10 * HZ) +#define CONN_WAIT_TIMEOUT ((typeof(jiffies))10 * HZ) +#define CONN_REG_SHUT_TIMEOUT ((typeof(jiffies))125 * HZ) +#define CONN_DEL_SHUT_TIMEOUT ((typeof(jiffies))10 * HZ) TRACE_ENTRY(); - TRACE_MGMT_DBG("Closing connection %p (conn_ref_cnt=%d)", conn, - atomic_read(&conn->conn_ref_cnt)); + TRACE_MGMT_DBG("Closing connection %p (conn_ref_cnt=%d)", + conn, atomic_read(&conn->conn_ref_cnt)); iscsi_extracheck_is_rd_thread(conn); @@ -259,8 +246,7 @@ static void close_conn(struct iscsi_conn *conn) /* We want all our already send operations to complete */ conn->transport->iscsit_conn_close(conn, RCV_SHUTDOWN); } else { - conn->transport->iscsit_conn_close(conn, - RCV_SHUTDOWN|SEND_SHUTDOWN); + conn->transport->iscsit_conn_close(conn, RCV_SHUTDOWN | SEND_SHUTDOWN); } mutex_lock(&session->target->target_mutex); @@ -269,9 +255,8 @@ static void close_conn(struct iscsi_conn *conn) mutex_unlock(&session->target->target_mutex); - rc = scst_rx_mgmt_fn_lun(session->scst_sess, - SCST_NEXUS_LOSS_SESS, &lun, sizeof(lun), - SCST_NON_ATOMIC, conn); + rc = scst_rx_mgmt_fn_lun(session->scst_sess, SCST_NEXUS_LOSS_SESS, &lun, sizeof(lun), + SCST_NON_ATOMIC, conn); if (rc != 0) PRINT_ERROR("SCST_NEXUS_LOSS_SESS failed %d", rc); @@ -282,11 +267,10 @@ static void close_conn(struct iscsi_conn *conn) TRACE_CONN_CLOSE_DBG("Going to wait for cmnd %p to change state from RX_CMD", cmnd); } - wait_event(conn->read_state_waitQ, - cmnd->scst_state != ISCSI_CMD_STATE_RX_CMD); + wait_event(conn->read_state_waitQ, cmnd->scst_state != ISCSI_CMD_STATE_RX_CMD); TRACE_CONN_CLOSE_DBG("Releasing conn->read_cmnd %p (conn %p)", - conn->read_cmnd, conn); + conn->read_cmnd, conn); conn->read_cmnd = NULL; conn->read_state = RX_INIT_BHS; @@ -318,15 +302,13 @@ static void close_conn(struct iscsi_conn *conn) /* It's safe to check it without sn_lock */ if (!list_empty(&session->pending_list)) { TRACE_CONN_CLOSE_DBG("Disposing pending commands on connection %p (conn_ref_cnt=%d)", - conn, atomic_read(&conn->conn_ref_cnt)); + conn, atomic_read(&conn->conn_ref_cnt)); free_pending_commands(conn); - if (time_after(jiffies, - start_waiting + CONN_PENDING_TIMEOUT)) { + if (time_after(jiffies, start_waiting + CONN_PENDING_TIMEOUT)) { if (!pending_reported) { - TRACE_CONN_CLOSE("%s", - "Pending wait time expired"); + TRACE_CONN_CLOSE("Pending wait time expired"); pending_reported = 1; } free_orphaned_pending_commands(conn); @@ -360,8 +342,8 @@ static void close_conn(struct iscsi_conn *conn) msleep(1000); TRACE_CONN_CLOSE_DBG("conn %p, conn_ref_cnt %d left, wr_state %d, exp_cmd_sn %u", - conn, atomic_read(&conn->conn_ref_cnt), - conn->wr_state, session->exp_cmd_sn); + conn, atomic_read(&conn->conn_ref_cnt), + conn->wr_state, session->exp_cmd_sn); trace_conn_close(conn); @@ -416,7 +398,6 @@ static void close_conn(struct iscsi_conn *conn) event_send(tid, sid, cid, 0, E_CONN_CLOSE, NULL, NULL); TRACE_EXIT(); - return; } static int close_conn_thr(void *arg) @@ -454,12 +435,10 @@ void start_close_conn(struct iscsi_conn *conn) } TRACE_EXIT(); - return; } EXPORT_SYMBOL(start_close_conn); -static inline void iscsi_conn_init_read(struct iscsi_conn *conn, - void *data, size_t len) +static inline void iscsi_conn_init_read(struct iscsi_conn *conn, void *data, size_t len) { conn->read_iov[0].iov_base = data; conn->read_iov[0].iov_len = len; @@ -470,19 +449,16 @@ static inline void iscsi_conn_init_read(struct iscsi_conn *conn, conn->read_msg.msg_iovlen = 1; conn->read_size = len; #endif - return; } -static void iscsi_conn_prepare_read_ahs(struct iscsi_conn *conn, - struct iscsi_cmnd *cmnd) +static void iscsi_conn_prepare_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) { int asize = (cmnd->pdu.ahssize + 3) & -4; /* ToDo: __GFP_NOFAIL ?? */ - cmnd->pdu.ahs = kmalloc(asize, __GFP_NOFAIL|GFP_KERNEL); - sBUG_ON(cmnd->pdu.ahs == NULL); + cmnd->pdu.ahs = kmalloc(asize, __GFP_NOFAIL | GFP_KERNEL); + sBUG_ON(!cmnd->pdu.ahs); iscsi_conn_init_read(conn, cmnd->pdu.ahs, asize); - return; } struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn) @@ -491,8 +467,7 @@ struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn) spin_lock_bh(&conn->write_list_lock); if (!list_empty(&conn->write_list)) { - cmnd = list_first_entry(&conn->write_list, struct iscsi_cmnd, - write_list_entry); + cmnd = list_first_entry(&conn->write_list, struct iscsi_cmnd, write_list_entry); cmd_del_from_write_list(cmnd); cmnd->write_processing_started = 1; } else { @@ -501,8 +476,7 @@ struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn) } spin_unlock_bh(&conn->write_list_lock); - if (unlikely(test_bit(ISCSI_CMD_ABORTED, - &cmnd->parent_req->prelim_compl_flags))) { + if (unlikely(test_bit(ISCSI_CMD_ABORTED, &cmnd->parent_req->prelim_compl_flags))) { TRACE_MGMT_DBG("Going to send acmd %p (scst cmd %p, state %d, parent_req %p)", cmnd, cmnd->scst_cmd, cmnd->scst_state, cmnd->parent_req); @@ -514,10 +488,10 @@ struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn) (struct iscsi_task_mgt_hdr *)&cmnd->parent_req->pdu.bhs; struct iscsi_task_rsp_hdr *rsp_hdr = (struct iscsi_task_rsp_hdr *)&cmnd->pdu.bhs; - TRACE_MGMT_DBG("Going to send TM response %p (status %d, " - "fn %d, parent_req %p)", cmnd, rsp_hdr->response, - req_hdr->function & ISCSI_FUNCTION_MASK, - cmnd->parent_req); + TRACE_MGMT_DBG("Going to send TM response %p (status %d, fn %d, parent_req %p)", + cmnd, rsp_hdr->response, + req_hdr->function & ISCSI_FUNCTION_MASK, + cmnd->parent_req); #endif } @@ -538,7 +512,7 @@ static int do_recv(struct iscsi_conn *conn) int first_len; #endif - EXTRACHECKS_BUG_ON(conn->read_cmnd == NULL); + EXTRACHECKS_BUG_ON(!conn->read_cmnd); if (unlikely(conn->closing)) { res = -EIO; @@ -604,7 +578,7 @@ restart: default: if (!conn->closing) { PRINT_ERROR("sock_recvmsg() failed: %d (conn %p)", - res, conn); + res, conn); mark_conn_closed(conn); } if (res == 0) @@ -627,7 +601,7 @@ static int iscsi_rx_check_ddigest(struct iscsi_conn *conn) if (res == 0) { conn->read_state = RX_END; - if (cmnd->pdu.datasize <= 16*1024) { + if (cmnd->pdu.datasize <= 16 * 1024) { /* * It's cache hot, so let's compute it inline. The * choice here about what will expose more latency: @@ -644,14 +618,14 @@ static int iscsi_rx_check_ddigest(struct iscsi_conn *conn) orig_req = cmnd->cmd_req; else orig_req = cmnd; - if (unlikely(orig_req->scst_cmd == NULL)) { + if (unlikely(!orig_req->scst_cmd)) { /* Just drop it */ iscsi_preliminary_complete(cmnd, orig_req, false); } else { set_scst_preliminary_status_rsp(orig_req, false, - SCST_LOAD_SENSE(iscsi_sense_crc_error)); + SCST_LOAD_SENSE(iscsi_sense_crc_error)); /* * Let's prelim complete cmnd too to * handle the DATA OUT case @@ -697,7 +671,7 @@ static int process_read_io(struct iscsi_conn *conn, int *closed) do { switch (conn->read_state) { case RX_INIT_BHS: - EXTRACHECKS_BUG_ON(conn->read_cmnd != NULL); + EXTRACHECKS_BUG_ON(conn->read_cmnd); cmnd = conn->transport->iscsit_alloc_cmd(conn, NULL); conn->read_cmnd = cmnd; iscsi_conn_init_read(cmnd->conn, &cmnd->pdu.bhs, @@ -742,23 +716,24 @@ static int process_read_io(struct iscsi_conn *conn, int *closed) conn->read_state = RX_END; else conn->read_state = RX_DATA; - } else if (res > 0) + } else if (res > 0) { conn->read_state = RX_CMD_CONTINUE; - else + } else { sBUG_ON(!conn->closing); + } break; case RX_CMD_CONTINUE: if (cmnd->scst_state == ISCSI_CMD_STATE_RX_CMD) { TRACE_DBG("cmnd %p is still in RX_CMD state", - cmnd); + cmnd); res = 1; break; } res = cmnd_rx_continue(cmnd); - if (unlikely(res != 0)) + if (unlikely(res != 0)) { sBUG_ON(!conn->closing); - else { + } else { if (cmnd->pdu.datasize == 0) conn->read_state = RX_END; else @@ -774,13 +749,13 @@ static int process_read_io(struct iscsi_conn *conn, int *closed) if (psz != 0) { TRACE_DBG("padding %d bytes", psz); - iscsi_conn_init_read(conn, - &conn->rpadding, psz); + iscsi_conn_init_read(conn, &conn->rpadding, psz); conn->read_state = RX_PADDING; - } else if ((conn->ddigest_type & DIGEST_NONE) != 0) + } else if ((conn->ddigest_type & DIGEST_NONE) != 0) { conn->read_state = RX_END; - else + } else { conn->read_state = RX_INIT_DDIGEST; + } } break; @@ -826,11 +801,12 @@ static int process_read_io(struct iscsi_conn *conn, int *closed) res = digest_rx_header(cmnd); if (unlikely(res != 0)) { PRINT_ERROR("rx header digest for initiator %s (conn %p) failed (%d)", - conn->session->initiator_name, - conn, res); + conn->session->initiator_name, + conn, res); mark_conn_closed(conn); - } else + } else { conn->read_state = RX_CMD_START; + } } break; @@ -926,15 +902,15 @@ static void scst_do_job_rd(struct iscsi_thread_pool *p) #ifdef CONFIG_SCST_EXTRACHECKS conn->rd_task = NULL; #endif - if ((rc == 0) || conn->rd_data_ready) { + if (rc == 0 || conn->rd_data_ready) { list_add_tail(&conn->rd_list_entry, &p->rd_list); conn->rd_state = ISCSI_CONN_RD_STATE_IN_LIST; - } else + } else { conn->rd_state = ISCSI_CONN_RD_STATE_IDLE; + } } TRACE_EXIT(); - return; } static inline int test_rd_list(struct iscsi_thread_pool *p) @@ -990,7 +966,7 @@ void req_add_to_write_timeout_list(struct iscsi_cmnd *req) conn = req->conn; TRACE_DBG("Adding req %p to conn %p write_timeout_list", - req, conn); + req, conn); spin_lock_bh(&conn->write_list_lock); @@ -1008,15 +984,14 @@ void req_add_to_write_timeout_list(struct iscsi_cmnd *req) struct iscsi_cmnd *r; bool inserted = false; - list_for_each_entry(r, &conn->write_timeout_list, - write_timeout_list_entry) { + list_for_each_entry(r, &conn->write_timeout_list, write_timeout_list_entry) { unsigned long tt = iscsi_get_timeout_time(r); if (time_after(tt, req_tt)) { TRACE_DBG("Add NOP IN req %p (tt %ld) before req %p (tt %ld)", req, req_tt, r, tt); list_add_tail(&req->write_timeout_list_entry, - &r->write_timeout_list_entry); + &r->write_timeout_list_entry); inserted = true; break; } @@ -1026,8 +1001,7 @@ void req_add_to_write_timeout_list(struct iscsi_cmnd *req) } if (!inserted) { TRACE_DBG("Add NOP IN req %p in the tail", req); - list_add_tail(&req->write_timeout_list_entry, - &conn->write_timeout_list); + list_add_tail(&req->write_timeout_list_entry, &conn->write_timeout_list); } /* We suppose that nop_in_timeout must be <= data_rsp_timeout */ @@ -1038,38 +1012,37 @@ void req_add_to_write_timeout_list(struct iscsi_cmnd *req) req); mod_timer(&conn->rsp_timer, req_tt); } - } else - list_add_tail(&req->write_timeout_list_entry, - &conn->write_timeout_list); + } else { + list_add_tail(&req->write_timeout_list_entry, &conn->write_timeout_list); + } if (!timer_pending(&conn->rsp_timer)) { unsigned long timeout_time; if (unlikely(conn->conn_tm_active || - test_bit(ISCSI_CMD_ABORTED, - &req->prelim_compl_flags))) { + test_bit(ISCSI_CMD_ABORTED, &req->prelim_compl_flags))) { set_conn_tm_active = true; timeout_time = req->write_start + ISCSI_TM_DATA_WAIT_TIMEOUT; - } else + } else { timeout_time = iscsi_get_timeout_time(req); + } timeout_time += ISCSI_ADD_SCHED_TIME; TRACE_DBG("Starting timer on %ld (con %p, write_start %ld)", - timeout_time, conn, req->write_start); + timeout_time, conn, req->write_start); conn->rsp_timer.expires = timeout_time; add_timer(&conn->rsp_timer); - } else if (unlikely(test_bit(ISCSI_CMD_ABORTED, - &req->prelim_compl_flags))) { + } else if (unlikely(test_bit(ISCSI_CMD_ABORTED, &req->prelim_compl_flags))) { unsigned long timeout_time = jiffies + ISCSI_TM_DATA_WAIT_TIMEOUT + ISCSI_ADD_SCHED_TIME; set_conn_tm_active = true; if (time_after(conn->rsp_timer.expires, timeout_time)) { TRACE_MGMT_DBG("Mod timer on %ld (conn %p)", - timeout_time, conn); + timeout_time, conn); mod_timer(&conn->rsp_timer, timeout_time); } } @@ -1090,7 +1063,6 @@ void req_add_to_write_timeout_list(struct iscsi_cmnd *req) out: TRACE_EXIT(); - return; } static int write_data(struct iscsi_conn *conn) @@ -1129,7 +1101,8 @@ static int write_data(struct iscsi_conn *conn) req_add_to_write_timeout_list(parent_req); - saved_size = size = conn->write_size; + size = conn->write_size; + saved_size = size; if (conn->write_iop) { struct file *file = conn->file; @@ -1183,7 +1156,7 @@ static int write_data(struct iscsi_conn *conn) } sg = write_cmnd->sg; - if (unlikely(sg == NULL)) { + if (unlikely(!sg)) { PRINT_INFO("WARNING: Data missed (cmd %p)!", write_cmnd); res = 0; goto out; @@ -1255,8 +1228,7 @@ static int write_data(struct iscsi_conn *conn) iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, sendsize); res = sock_sendmsg(sock, &msg); #endif - TRACE_WRITE( - "sid %#Lx cid %u: res %d (page[%p] index %lu, offset %u, sendsize %lu, size %lu, cmd %p)", + TRACE_WRITE("sid %#Lx cid %u: res %d (page[%p] index %lu, offset %u, sendsize %lu, size %lu, cmd %p)", (unsigned long long)conn->session->sid, conn->cid, res, page, page->index, offset, sendsize, size, write_cmnd); @@ -1313,11 +1285,11 @@ out_err: if (ref_cmd->scst_state == ISCSI_CMD_STATE_AEN) { if (ref_cmd->scst_aen) scst_set_aen_delivery_status(ref_cmd->scst_aen, - SCST_AEN_RES_FAILED); + SCST_AEN_RES_FAILED); } else { if (ref_cmd->scst_cmd) scst_set_delivery_status(ref_cmd->scst_cmd, - SCST_CMD_DELIVERY_FAILED); + SCST_CMD_DELIVERY_FAILED); } } @@ -1339,17 +1311,15 @@ static void exit_tx(struct iscsi_conn *conn, int res) { #endif PRINT_ERROR("Sending data failed: initiator %s (conn %p), write_size %d, write_state %d, res %d", - conn->session->initiator_name, conn, - conn->write_size, - conn->write_state, res); + conn->session->initiator_name, conn, + conn->write_size, + conn->write_state, res); } conn->write_state = TX_END; conn->write_size = 0; mark_conn_closed(conn); break; } - - return; } static int tx_ddigest(struct iscsi_cmnd *cmnd, int state) @@ -1370,8 +1340,9 @@ static int tx_ddigest(struct iscsi_cmnd *cmnd, int state) cmnd->conn->write_size -= res; if (!cmnd->conn->write_size) cmnd->conn->write_state = state; - } else + } else { exit_tx(cmnd->conn, res); + } return res; } @@ -1392,8 +1363,6 @@ static void init_tx_hdigest(struct iscsi_cmnd *cmnd) iop->iov_base = &cmnd->hdigest; iop->iov_len = sizeof(u32); conn->write_size += sizeof(u32); - - return; } static int tx_padding(struct iscsi_cmnd *cmnd, int state) @@ -1417,8 +1386,9 @@ static int tx_padding(struct iscsi_cmnd *cmnd, int state) cmnd->conn->write_size -= res; if (!cmnd->conn->write_size) cmnd->conn->write_state = state; - } else + } else { exit_tx(cmnd->conn, res); + } return res; } @@ -1433,8 +1403,9 @@ static int iscsi_do_send(struct iscsi_conn *conn, int state) if (res > 0) { if (!conn->write_size) conn->write_state = state; - } else + } else { exit_tx(conn, res); + } return res; } @@ -1461,24 +1432,24 @@ int iscsi_send(struct iscsi_conn *conn) switch (conn->write_state) { case TX_INIT: - sBUG_ON(cmnd != NULL); - cmnd = conn->write_cmnd = iscsi_get_send_cmnd(conn); - if (!cmnd) + sBUG_ON(cmnd); + conn->write_cmnd = iscsi_get_send_cmnd(conn); + if (!conn->write_cmnd) goto out; + + cmnd = conn->write_cmnd; cmnd_tx_start(cmnd); if (!(conn->hdigest_type & DIGEST_NONE)) init_tx_hdigest(cmnd); conn->write_state = TX_BHS_DATA; fallthrough; case TX_BHS_DATA: - res = iscsi_do_send(conn, cmnd->pdu.datasize ? - TX_INIT_PADDING : TX_END); + res = iscsi_do_send(conn, cmnd->pdu.datasize ? TX_INIT_PADDING : TX_END); if (res <= 0 || conn->write_state != TX_INIT_PADDING) break; fallthrough; case TX_INIT_PADDING: - cmnd->conn->write_size = ((cmnd->pdu.datasize + 3) & -4) - - cmnd->pdu.datasize; + cmnd->conn->write_size = ((cmnd->pdu.datasize + 3) & -4) - cmnd->pdu.datasize; if (cmnd->conn->write_size != 0) conn->write_state = TX_PADDING; else if (ddigest) @@ -1499,8 +1470,8 @@ int iscsi_send(struct iscsi_conn *conn) res = tx_ddigest(cmnd, TX_END); break; default: - PRINT_CRIT_ERROR("%d %d %x", res, conn->write_state, - cmnd_opcode(cmnd)); + PRINT_CRIT_ERROR("%d %d %x", + res, conn->write_state, cmnd_opcode(cmnd)); sBUG(); } @@ -1508,8 +1479,8 @@ int iscsi_send(struct iscsi_conn *conn) goto out; if (unlikely(conn->write_size)) { - PRINT_CRIT_ERROR("%d %x %u", res, cmnd_opcode(cmnd), - conn->write_size); + PRINT_CRIT_ERROR("%d %x %u", + res, cmnd_opcode(cmnd), conn->write_size); sBUG(); } cmnd_tx_end(cmnd); @@ -1540,12 +1511,12 @@ static void scst_do_job_wr(struct iscsi_thread_pool *p) while (!list_empty(&p->wr_list)) { int rc; - struct iscsi_conn *conn = list_first_entry(&p->wr_list, - typeof(*conn), wr_list_entry); + struct iscsi_conn *conn = + list_first_entry(&p->wr_list, typeof(*conn), wr_list_entry); TRACE_DBG("conn %p, wr_state %x, wr_space_ready %d, write ready %d", - conn, conn->wr_state, - conn->wr_space_ready, test_write_ready(conn)); + conn, conn->wr_state, + conn->wr_space_ready, test_write_ready(conn)); list_del(&conn->wr_list_entry); @@ -1566,27 +1537,27 @@ static void scst_do_job_wr(struct iscsi_thread_pool *p) #ifdef CONFIG_SCST_EXTRACHECKS conn->wr_task = NULL; #endif - if ((rc == -EAGAIN) && !conn->wr_space_ready) { + if (rc == -EAGAIN && !conn->wr_space_ready) { TRACE_DBG("EAGAIN, setting WR_STATE_SPACE_WAIT (conn %p)", conn); conn->wr_state = ISCSI_CONN_WR_STATE_SPACE_WAIT; } else if (test_write_ready(conn)) { list_add_tail(&conn->wr_list_entry, &p->wr_list); conn->wr_state = ISCSI_CONN_WR_STATE_IN_LIST; - } else + } else { conn->wr_state = ISCSI_CONN_WR_STATE_IDLE; + } conn_put(conn); } TRACE_EXIT(); - return; } static inline int test_wr_list(struct iscsi_thread_pool *p) { - int res = !list_empty(&p->wr_list) || - unlikely(kthread_should_stop()); + int res = !list_empty(&p->wr_list) || unlikely(kthread_should_stop()); + return res; } |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:37:59
|
Commit: ae5ea42 GitHub URL: https://github.com/SCST-project/scst/commit/ae5ea425940c24c760dfe0fbad65328d489deb58 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/isert-scst/TODO | 5 +-- iscsi-scst/kernel/isert-scst/iser.h | 1 - iscsi-scst/kernel/isert-scst/iser_datamover.c | 4 +- iscsi-scst/kernel/isert-scst/iser_global.c | 8 ++-- iscsi-scst/kernel/isert-scst/iser_pdu.c | 27 +++++-------- iscsi-scst/kernel/isert-scst/iser_rdma.c | 23 +++++------ iscsi-scst/kernel/isert-scst/isert.c | 25 +++++------- iscsi-scst/kernel/isert-scst/isert_login.c | 31 ++++++--------- 8 files changed, 48 insertions(+), 76 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/isert-scst/TODO b/iscsi-scst/kernel/isert-scst/TODO index e1708f8..9f2663f 100644 --- a/iscsi-scst/kernel/isert-scst/TODO +++ b/iscsi-scst/kernel/isert-scst/TODO @@ -1,8 +1,7 @@ -* Add suppport for immediate data in iSER -* Add suppport for data-out in iSER +* Add support for immediate data in iSER +* Add support for data-out in iSER * Look into separating between RX pdu and TX pdu * Do not signal every "response sent" notification * Make the code NUMA aware * Add support for AHS * Add support for bidi commands - diff --git a/iscsi-scst/kernel/isert-scst/iser.h b/iscsi-scst/kernel/isert-scst/iser.h index 6a08153..1cb9205 100644 --- a/iscsi-scst/kernel/isert-scst/iser.h +++ b/iscsi-scst/kernel/isert-scst/iser.h @@ -173,7 +173,6 @@ struct isert_conn { spinlock_t post_recv_lock; - spinlock_t tx_lock ____cacheline_aligned; /* Following two protected by tx_lock */ diff --git a/iscsi-scst/kernel/isert-scst/iser_datamover.c b/iscsi-scst/kernel/isert-scst/iser_datamover.c index d8241c0..1441a49 100644 --- a/iscsi-scst/kernel/isert-scst/iser_datamover.c +++ b/iscsi-scst/kernel/isert-scst/iser_datamover.c @@ -193,9 +193,7 @@ int isert_login_rsp_tx(struct iscsi_cmnd *login_rsp, int last, int discovery) isert_pdu_free(isert_conn->login_req_pdu); isert_conn->login_req_pdu = NULL; } else { - err = isert_post_recv(isert_conn, - &isert_conn->login_req_pdu->wr[0], - 1); + err = isert_post_recv(isert_conn, &isert_conn->login_req_pdu->wr[0], 1); if (unlikely(err)) { PRINT_ERROR("Failed to post recv login req rx buf, err:%d", err); diff --git a/iscsi-scst/kernel/isert-scst/iser_global.c b/iscsi-scst/kernel/isert-scst/iser_global.c index c070a66..7f7ec72 100644 --- a/iscsi-scst/kernel/isert-scst/iser_global.c +++ b/iscsi-scst/kernel/isert-scst/iser_global.c @@ -144,16 +144,14 @@ int isert_global_init(void) return -ENOMEM; } - isert_cmnd_cache = KMEM_CACHE_USERCOPY(isert_cmnd, - SCST_SLAB_FLAGS|SLAB_HWCACHE_ALIGN, - iscsi); + isert_cmnd_cache = KMEM_CACHE_USERCOPY(isert_cmnd, SCST_SLAB_FLAGS | SLAB_HWCACHE_ALIGN, + iscsi); if (!isert_cmnd_cache) { PRINT_ERROR("Failed to alloc iser command cache"); goto free_wq; } - isert_conn_cache = KMEM_CACHE(isert_conn, - SCST_SLAB_FLAGS|SLAB_HWCACHE_ALIGN); + isert_conn_cache = KMEM_CACHE(isert_conn, SCST_SLAB_FLAGS | SLAB_HWCACHE_ALIGN); if (!isert_conn_cache) { PRINT_ERROR("Failed to alloc iser connection cache"); goto free_cmnd_cache; diff --git a/iscsi-scst/kernel/isert-scst/iser_pdu.c b/iscsi-scst/kernel/isert-scst/iser_pdu.c index b4b5b5e..2d54a06 100644 --- a/iscsi-scst/kernel/isert-scst/iser_pdu.c +++ b/iscsi-scst/kernel/isert-scst/iser_pdu.c @@ -43,23 +43,21 @@ #include "iser_datamover.h" static inline int isert_pdu_rx_buf_init(struct isert_cmnd *isert_pdu, - struct isert_conn *isert_conn) + struct isert_conn *isert_conn) { struct isert_buf *isert_buf = &isert_pdu->buf; - return isert_wr_init(&isert_pdu->wr[0], ISER_WR_RECV, isert_buf, - isert_conn, isert_pdu, isert_pdu->sg_pool, - 0, isert_buf->sg_cnt, 0); + return isert_wr_init(&isert_pdu->wr[0], ISER_WR_RECV, isert_buf, isert_conn, isert_pdu, + isert_pdu->sg_pool, 0, isert_buf->sg_cnt, 0); } static inline int isert_pdu_tx_buf_init(struct isert_cmnd *isert_pdu, - struct isert_conn *isert_conn) + struct isert_conn *isert_conn) { struct isert_buf *isert_buf = &isert_pdu->buf; - return isert_wr_init(&isert_pdu->wr[0], ISER_WR_SEND, isert_buf, - isert_conn, isert_pdu, isert_pdu->sg_pool, - 0, isert_buf->sg_cnt, 0); + return isert_wr_init(&isert_pdu->wr[0], ISER_WR_SEND, isert_buf, isert_conn, isert_pdu, + isert_pdu->sg_pool, 0, isert_buf->sg_cnt, 0); } static inline void isert_pdu_set_hdr_plain(struct isert_cmnd *isert_pdu) @@ -139,11 +137,9 @@ void isert_tx_pdu_convert_from_iscsi(struct isert_cmnd *isert_cmnd, #endif TRACE_EXIT(); - return; } -static inline int isert_pdu_prepare_send(struct isert_conn *isert_conn, - struct isert_cmnd *tx_pdu) +static inline int isert_pdu_prepare_send(struct isert_conn *isert_conn, struct isert_cmnd *tx_pdu) { struct isert_device *isert_dev = isert_conn->isert_dev; struct ib_sge *sge = tx_pdu->wr[0].sge_list; @@ -176,14 +172,14 @@ static int isert_alloc_for_rdma(struct isert_cmnd *pdu, int sge_cnt, int wr_cnt; sg_pool = kmalloc_array(sge_cnt, sizeof(*sg_pool), GFP_KERNEL); - if (unlikely(sg_pool == NULL)) { + if (unlikely(!sg_pool)) { ret = -ENOMEM; goto out; } wr_cnt = DIV_ROUND_UP(sge_cnt, isert_conn->max_sge); wr = kmalloc_array(wr_cnt, sizeof(*wr), GFP_KERNEL); - if (unlikely(wr == NULL)) { + if (unlikely(!wr)) { ret = -ENOMEM; goto out_free_sg_pool; } @@ -465,7 +461,7 @@ int isert_alloc_conn_resources(struct isert_conn *isert_conn) goto clean_pdus; } - if (unlikely(first_pdu == NULL)) + if (unlikely(!first_pdu)) first_pdu = pdu; else isert_link_recv_pdu_wrs(prev_pdu, pdu); @@ -529,7 +525,7 @@ int isert_rx_pdu_done(struct isert_cmnd *pdu) if (++isert_conn->to_post_recv > isert_conn->repost_threshold) { err = isert_post_recv(isert_conn, isert_conn->post_recv_first, - isert_conn->to_post_recv); + isert_conn->to_post_recv); isert_conn->to_post_recv = 0; } spin_unlock(&isert_conn->post_recv_lock); @@ -650,4 +646,3 @@ int isert_pdu_post_rdma_read(struct isert_conn *isert_conn, TRACE_EXIT_RES(err); return err; } - diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index 08a7bbe..a096d6f 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -63,7 +63,7 @@ static int isert_num_recv_posted_on_err(struct ib_recv_wr *first_ib_wr, struct ib_recv_wr *wr; int num_posted = 0; - for (wr = first_ib_wr; wr != NULL && wr != bad_wr; wr = wr->next) + for (wr = first_ib_wr; wr && wr != bad_wr; wr = wr->next) num_posted++; return num_posted; @@ -106,7 +106,7 @@ static int isert_num_send_posted_on_err(struct ib_send_wr *first_ib_wr, struct ib_send_wr *wr; int num_posted = 0; - for (wr = first_ib_wr; wr != NULL && wr != bad_wr; wr = wr->next) + for (wr = first_ib_wr; wr && wr != bad_wr; wr = wr->next) num_posted++; return num_posted; @@ -429,7 +429,6 @@ static void isert_send_completion_handler(struct isert_wr *wr) struct isert_cmnd *isert_req_pdu = container_of(iscsi_req_pdu, struct isert_cmnd, iscsi); - TRACE_ENTRY(); if (iscsi_req_pdu && iscsi_req_pdu->bufflen && @@ -764,7 +763,6 @@ static void isert_cq_comp_work_cb(struct work_struct *work) out: TRACE_EXIT(); - return; } static void isert_cq_comp_handler(struct ib_cq *cq, void *context) @@ -909,7 +907,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) TRACE_ENTRY(); isert_dev = kzalloc(sizeof(*isert_dev), GFP_KERNEL); - if (unlikely(isert_dev == NULL)) { + if (unlikely(!isert_dev)) { PRINT_ERROR("Failed to allocate iser dev"); err = -ENOMEM; goto out; @@ -931,7 +929,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) isert_dev->cq_qps = kcalloc(isert_dev->num_cqs, sizeof(*isert_dev->cq_qps), GFP_KERNEL); - if (unlikely(isert_dev->cq_qps == NULL)) { + if (unlikely(!isert_dev->cq_qps)) { PRINT_ERROR("Failed to allocate %d iser cq_qps", isert_dev->num_cqs); err = -ENOMEM; @@ -939,7 +937,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) } isert_dev->cq_desc = vmalloc_array(isert_dev->num_cqs, sizeof(*isert_dev->cq_desc)); - if (unlikely(isert_dev->cq_desc == NULL)) { + if (unlikely(!isert_dev->cq_desc)) { PRINT_ERROR("Failed to allocate %zd bytes for iser cq_desc", sizeof(*isert_dev->cq_desc) * isert_dev->num_cqs); err = -ENOMEM; @@ -1196,7 +1194,7 @@ isert_init_conn(struct isert_conn *isert_conn) } static struct isert_conn *isert_conn_create(struct rdma_cm_id *cm_id, - struct isert_device *isert_dev) + struct isert_device *isert_dev) { struct isert_conn *isert_conn; int err; @@ -1333,7 +1331,6 @@ static void isert_release_kref(struct kref *kref) isert_portal_free(isert_conn->portal); mutex_unlock(&dev_list_mutex); - if (atomic_read(&isert_conn->dev_removed)) { atomic_set(&isert_conn->dev_removed, 0); wake_up_interruptible(&isert_conn->rem_wait); @@ -1572,7 +1569,7 @@ static void isert_portal_reinit_id_work(struct work_struct *w) portal->cm_id = isert_setup_id(portal); if (IS_ERR(portal->cm_id)) { PRINT_ERROR("Failed to create rdma id, err:%ld\n", - PTR_ERR(portal->cm_id)); + PTR_ERR(portal->cm_id)); portal->cm_id = NULL; } } @@ -1725,11 +1722,9 @@ isert_setup_id(struct isert_portal *portal) sa = (struct sockaddr *)&portal->addr; #if !RDMA_CREATE_ID_TAKES_NET_ARG - id = rdma_create_id(isert_cm_evt_handler, portal, RDMA_PS_TCP, - IB_QPT_RC); + id = rdma_create_id(isert_cm_evt_handler, portal, RDMA_PS_TCP, IB_QPT_RC); #else - id = rdma_create_id(iscsi_net_ns, isert_cm_evt_handler, portal, - RDMA_PS_TCP, IB_QPT_RC); + id = rdma_create_id(iscsi_net_ns, isert_cm_evt_handler, portal, RDMA_PS_TCP, IB_QPT_RC); #endif if (IS_ERR(id)) { ret = PTR_ERR(id); diff --git a/iscsi-scst/kernel/isert-scst/isert.c b/iscsi-scst/kernel/isert-scst/isert.c index 56c136d..8c26862 100644 --- a/iscsi-scst/kernel/isert-scst/isert.c +++ b/iscsi-scst/kernel/isert-scst/isert.c @@ -54,7 +54,7 @@ unsigned long isert_trace_flag = ISERT_DEFAULT_LOG_FLAGS; #endif static unsigned int isert_nr_devs = ISERT_NR_DEVS; -module_param(isert_nr_devs, uint, S_IRUGO); +module_param(isert_nr_devs, uint, 0444); MODULE_PARM_DESC(isert_nr_devs, "Maximum concurrent number of connection requests to handle (up to 999)."); @@ -206,10 +206,10 @@ static void isert_cmnd_free(struct iscsi_cmnd *cmnd) struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); PRINT_CRIT_ERROR("cmnd %p still on some list?, %x, %x, %x, %x, %x, %x, %x", - cmnd, req->opcode, req->scb[0], - req->flags, req->itt, be32_to_cpu(req->data_length), - req->cmd_sn, - be32_to_cpu((__force __be32)(cmnd->pdu.datasize))); + cmnd, req->opcode, req->scb[0], + req->flags, req->itt, be32_to_cpu(req->data_length), + req->cmd_sn, + be32_to_cpu((__force __be32)(cmnd->pdu.datasize))); if (unlikely(cmnd->parent_req)) { struct iscsi_scsi_cmd_hdr *preq = @@ -233,8 +233,7 @@ static void isert_preprocessing_done(struct iscsi_cmnd *req) req->scst_state = ISCSI_CMD_STATE_AFTER_PREPROC; } -static void isert_set_sense_data(struct iscsi_cmnd *rsp, - const u8 *sense_buf, int sense_len) +static void isert_set_sense_data(struct iscsi_cmnd *rsp, const u8 *sense_buf, int sense_len) { u8 *buf; @@ -432,18 +431,15 @@ static ssize_t isert_get_initiator_ip(struct iscsi_conn *conn, switch (ss.ss_family) { case AF_INET: - pos = scnprintf(buf, size, - "%pI4", &((struct sockaddr_in *)&ss)->sin_addr.s_addr); + pos = scnprintf(buf, size, "%pI4", &((struct sockaddr_in *)&ss)->sin_addr.s_addr); break; #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) case AF_INET6: - pos = scnprintf(buf, size, "[%pI6]", - &((struct sockaddr_in6 *)&ss)->sin6_addr); + pos = scnprintf(buf, size, "[%pI6]", &((struct sockaddr_in6 *)&ss)->sin6_addr); break; #endif default: - pos = scnprintf(buf, size, "Unknown family %d", - ss.ss_family); + pos = scnprintf(buf, size, "Unknown family %d", ss.ss_family); break; } @@ -505,7 +501,6 @@ MODULE_LICENSE("Dual BSD/GPL"); MODULE_IMPORT_NS(SCST); #define DRV_VERSION "3.9.0-pre" "#" __stringify(OFED_FLAVOR) #define DRV_RELDATE "15 January 2024" -MODULE_DESCRIPTION("iSER target transport driver " - "v" DRV_VERSION " (" DRV_RELDATE ")"); +MODULE_DESCRIPTION("iSER target transport driver v" DRV_VERSION " (" DRV_RELDATE ")"); module_init(isert_init_module); module_exit(isert_cleanup_module); diff --git a/iscsi-scst/kernel/isert-scst/isert_login.c b/iscsi-scst/kernel/isert-scst/isert_login.c index 6516217..859f6a0 100644 --- a/iscsi-scst/kernel/isert-scst/isert_login.c +++ b/iscsi-scst/kernel/isert-scst/isert_login.c @@ -212,7 +212,7 @@ int isert_conn_alloc(struct iscsi_session *session, cmnd = dev->login_rsp; - sBUG_ON(cmnd == NULL); + sBUG_ON(!cmnd); dev->login_rsp = NULL; *new_conn = dev->conn; @@ -340,8 +340,7 @@ static ssize_t isert_listen_read(struct file *filp, char __user *buf, wait_for_connection: if (filp->f_flags & O_NONBLOCK) return -EAGAIN; - res = wait_event_freezable(dev->waitqueue, - !have_new_connection(dev)); + res = wait_event_freezable(dev->waitqueue, !have_new_connection(dev)); if (res < 0) goto out; } @@ -358,7 +357,7 @@ wait_for_connection: mutex_unlock(&dev->conn_lock); to_write = min_t(size_t, sizeof(k_buff), count); - res = scnprintf(k_buff, to_write, "/dev/"ISER_CONN_DEV_PREFIX"%d", + res = scnprintf(k_buff, to_write, "/dev/" ISER_CONN_DEV_PREFIX "%d", conn_dev->idx); ++res; /* copy trailing \0 as well */ @@ -494,7 +493,7 @@ static bool will_read_block(struct isert_conn_dev *dev) bool res = true; spin_lock(&dev->pdu_lock); - if (dev->login_req != NULL) { + if (dev->login_req) { switch (dev->state) { case CS_REQ_BHS: case CS_REQ_DATA: @@ -596,8 +595,7 @@ static ssize_t isert_read(struct file *filp, char __user *buf, size_t count, mutex_unlock(&conn_mgmt_mutex); return -EAGAIN; } - ret = wait_event_freezable(dev->waitqueue, - !will_read_block(dev)); + ret = wait_event_freezable(dev->waitqueue, !will_read_block(dev)); if (ret < 0) { mutex_unlock(&conn_mgmt_mutex); return ret; @@ -767,9 +765,7 @@ static long isert_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) spin_lock(&dev->pdu_lock); dev->login_req = NULL; spin_unlock(&dev->pdu_lock); - res = isert_login_rsp_tx(dev->login_rsp, - last, - dev->is_discovery); + res = isert_login_rsp_tx(dev->login_rsp, last, dev->is_discovery); vunmap(dev->sg_virt); dev->sg_virt = NULL; dev->login_rsp = NULL; @@ -781,9 +777,8 @@ static long isert_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct isert_addr_info addr; - res = isert_get_target_addr(dev->conn, - (struct sockaddr *)&addr.addr, - &addr.addr_len); + res = isert_get_target_addr(dev->conn, (struct sockaddr *)&addr.addr, + &addr.addr_len); if (unlikely(res)) goto out; @@ -850,7 +845,7 @@ int isert_login_req_rx(struct iscsi_cmnd *login_req) switch (dev->state) { case CS_INIT: case CS_RSP_FINISHED: - if (unlikely(dev->login_req != NULL)) + if (unlikely(dev->login_req)) sBUG(); break; @@ -870,7 +865,6 @@ int isert_login_req_rx(struct iscsi_cmnd *login_req) sBUG(); } - spin_lock(&dev->pdu_lock); dev->login_req = login_req; dev->read_len = sizeof(login_req->pdu.bhs); @@ -937,12 +931,12 @@ static void __init isert_setup_cdev(struct isert_conn_dev *dev, err = cdev_add(&dev->cdev, dev->devno, 1); /* Fail gracefully if need be */ if (unlikely(err)) - PRINT_ERROR("Error %d adding "ISER_CONN_DEV_PREFIX"%d", err, + PRINT_ERROR("Error %d adding " ISER_CONN_DEV_PREFIX "%d", err, index); dev->dev = device_create(isert_class, NULL, dev->devno, NULL, - ISER_CONN_DEV_PREFIX"%d", index); + ISER_CONN_DEV_PREFIX "%d", index); TRACE_EXIT(); } @@ -984,8 +978,7 @@ int __init isert_init_login_devs(unsigned int ndevs) n_devs = ndevs; - res = alloc_chrdev_region(&devno, 0, n_devs, - "isert_scst"); + res = alloc_chrdev_region(&devno, 0, n_devs, "isert_scst"); isert_major = MAJOR(devno); if (unlikely(res < 0)) { |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:36:46
|
Commit: 8aa9371 GitHub URL: https://github.com/SCST-project/scst/commit/8aa93714e6f9eb64f0e9999f1d7ea58f19ec03e5 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/iscsi.c | 783 +++++++-------- 1 file changed, 340 insertions(+), 443 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/iscsi.c b/iscsi-scst/kernel/iscsi.c index 1641b60..e858747 100644 --- a/iscsi-scst/kernel/iscsi.c +++ b/iscsi-scst/kernel/iscsi.c @@ -56,22 +56,19 @@ static struct page *dummy_page; static struct scatterlist dummy_sg[1]; static void cmnd_remove_data_wait_hash(struct iscsi_cmnd *cmnd); -static void iscsi_send_task_mgmt_resp(struct iscsi_cmnd *req, int status, - bool dropped); +static void iscsi_send_task_mgmt_resp(struct iscsi_cmnd *req, int status, bool dropped); static void iscsi_check_send_delayed_tm_resp(struct iscsi_session *sess); static void req_cmnd_release(struct iscsi_cmnd *req); static int cmnd_insert_data_wait_hash(struct iscsi_cmnd *cmnd); static void iscsi_cmnd_init_write(struct iscsi_cmnd *rsp, int flags); static void iscsi_set_resid_no_scst_cmd(struct iscsi_cmnd *rsp); -static void iscsi_set_not_received_data_len(struct iscsi_cmnd *req, - unsigned int not_received) +static void iscsi_set_not_received_data_len(struct iscsi_cmnd *req, unsigned int not_received) { req->not_received_data_len = not_received; - if (req->scst_cmd != NULL) - scst_cmd_set_write_not_received_data_len(req->scst_cmd, - not_received); - return; + + if (req->scst_cmd) + scst_cmd_set_write_not_received_data_len(req->scst_cmd, not_received); } static void req_del_from_write_timeout_list(struct iscsi_cmnd *req) @@ -86,7 +83,7 @@ static void req_del_from_write_timeout_list(struct iscsi_cmnd *req) conn = req->conn; TRACE_DBG("Deleting cmd %p from conn %p write_timeout_list", - req, conn); + req, conn); spin_lock_bh(&conn->write_list_lock); @@ -102,7 +99,6 @@ out_unlock: out: TRACE_EXIT(); - return; } static inline u32 cmnd_write_size(struct iscsi_cmnd *cmnd) @@ -125,7 +121,7 @@ static inline int cmnd_read_size(struct iscsi_cmnd *cmnd) return be32_to_cpu(hdr->data_length); ahdr = (struct iscsi_ahs_hdr *)cmnd->pdu.ahs; - if (ahdr != NULL) { + if (ahdr) { uint8_t *p = (uint8_t *)ahdr; unsigned int size = 0; @@ -173,15 +169,13 @@ void iscsi_restart_cmnd(struct iscsi_cmnd *cmnd) if (cmnd->hashed) cmnd_remove_data_wait_hash(cmnd); - if (unlikely(test_bit(ISCSI_CONN_REINSTATING, - &cmnd->conn->conn_aflags))) { + if (unlikely(test_bit(ISCSI_CONN_REINSTATING, &cmnd->conn->conn_aflags))) { struct iscsi_target *target = cmnd->conn->session->target; bool get_out; mutex_lock(&target->target_mutex); - get_out = test_bit(ISCSI_CONN_REINSTATING, - &cmnd->conn->conn_aflags); + get_out = test_bit(ISCSI_CONN_REINSTATING, &cmnd->conn->conn_aflags); /* Let's don't look dead */ if (scst_cmd_get_cdb(cmnd->scst_cmd)[0] == TEST_UNIT_READY) get_out = false; @@ -194,7 +188,7 @@ void iscsi_restart_cmnd(struct iscsi_cmnd *cmnd) cmnd->scst_state = ISCSI_CMD_STATE_REINST_PENDING; list_add_tail(&cmnd->reinst_pending_cmd_list_entry, - &cmnd->conn->reinst_pending_cmd_list); + &cmnd->conn->reinst_pending_cmd_list); unlock_cont: mutex_unlock(&target->target_mutex); @@ -205,13 +199,13 @@ unlock_cont: if (unlikely(cmnd->prelim_compl_flags != 0)) { if (test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags)) { - TRACE_MGMT_DBG("cmnd %p (scst_cmd %p) aborted", cmnd, - cmnd->scst_cmd); + TRACE_MGMT_DBG("cmnd %p (scst_cmd %p) aborted", + cmnd, cmnd->scst_cmd); req_cmnd_release_force(cmnd); goto out; } - if (cmnd->scst_cmd == NULL) { + if (!cmnd->scst_cmd) { TRACE_MGMT_DBG("Finishing preliminary completed cmd %p with NULL scst_cmd", cmnd); req_cmnd_release(cmnd); @@ -219,8 +213,9 @@ unlock_cont: } status = SCST_PREPROCESS_STATUS_ERROR_SENSE_SET; - } else + } else { status = SCST_PREPROCESS_STATUS_SUCCESS; + } cmnd->scst_state = ISCSI_CMD_STATE_RESTARTED; @@ -228,7 +223,6 @@ unlock_cont: out: TRACE_EXIT(); - return; } static struct iscsi_cmnd *iscsi_create_tm_clone(struct iscsi_cmnd *cmnd) @@ -238,14 +232,15 @@ static struct iscsi_cmnd *iscsi_create_tm_clone(struct iscsi_cmnd *cmnd) TRACE_ENTRY(); tm_clone = cmnd->conn->transport->iscsit_alloc_cmd(cmnd->conn, NULL); - if (tm_clone != NULL) { + if (tm_clone) { set_bit(ISCSI_CMD_ABORTED, &tm_clone->prelim_compl_flags); tm_clone->pdu = cmnd->pdu; TRACE_MGMT_DBG("TM clone %p for cmnd %p created", - tm_clone, cmnd); - } else + tm_clone, cmnd); + } else { PRINT_ERROR("Failed to create TM clone for cmnd %p", cmnd); + } TRACE_EXIT_HRES((unsigned long)tm_clone); return tm_clone; @@ -256,7 +251,7 @@ void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd) TRACE_ENTRY(); TRACE_MGMT_DBG("Failing data waiting cmnd %p (data_out_in_data_receiving %d)", - cmnd, cmnd->data_out_in_data_receiving); + cmnd, cmnd->data_out_in_data_receiving); /* * There is no race with conn_abort(), since all functions @@ -273,7 +268,7 @@ void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd) struct iscsi_cmnd *tm_clone; TRACE_MGMT_DBG("Unpending cmnd %p (sn %u, exp_cmd_sn %u)", cmnd, - cmnd->pdu.bhs.sn, session->exp_cmd_sn); + cmnd->pdu.bhs.sn, session->exp_cmd_sn); /* * If cmnd is pending, then the next command, if any, must be @@ -285,11 +280,10 @@ void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd) spin_lock(&session->sn_lock); - if (tm_clone != NULL) { + if (tm_clone) { TRACE_MGMT_DBG("Adding tm_clone %p after its cmnd", - tm_clone); - list_add(&tm_clone->pending_list_entry, - &cmnd->pending_list_entry); + tm_clone); + list_add(&tm_clone->pending_list_entry, &cmnd->pending_list_entry); } list_del(&cmnd->pending_list_entry); @@ -301,7 +295,6 @@ void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd) req_cmnd_release_force(cmnd); TRACE_EXIT(); - return; } void iscsi_cmnd_init(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd, @@ -312,7 +305,7 @@ void iscsi_cmnd_init(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd, cmnd->conn = conn; cmnd->parent_req = parent; - if (parent == NULL) { + if (!parent) { conn_get(conn); INIT_LIST_HEAD(&cmnd->rsp_cmd_list); @@ -332,10 +325,10 @@ static struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd; /* ToDo: __GFP_NOFAIL?? */ - cmnd = kmem_cache_zalloc(iscsi_cmnd_cache, GFP_KERNEL|__GFP_NOFAIL); + cmnd = kmem_cache_zalloc(iscsi_cmnd_cache, GFP_KERNEL | __GFP_NOFAIL); /* Tell Coverity about __GFP_NOFAIL. */ - EXTRACHECKS_BUG_ON(cmnd == NULL); + EXTRACHECKS_BUG_ON(!cmnd); iscsi_cmnd_init(conn, cmnd, parent); @@ -350,11 +343,9 @@ static void cmnd_free(struct iscsi_cmnd *cmnd) TRACE_DBG("cmnd %p", cmnd); - if (unlikely(test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags))) { + if (unlikely(test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags))) TRACE_MGMT_DBG("Free aborted cmd %p (scst cmd %p, state %d, parent_req %p)", - cmnd, cmnd->scst_cmd, - cmnd->scst_state, cmnd->parent_req); - } + cmnd, cmnd->scst_cmd, cmnd->scst_state, cmnd->parent_req); /* Catch users from cmd_list or rsp_cmd_list */ EXTRACHECKS_BUG_ON(atomic_read(&cmnd->ref_cnt) != 0); @@ -366,15 +357,15 @@ static void cmnd_free(struct iscsi_cmnd *cmnd) struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd); PRINT_CRIT_ERROR("cmnd %p still on some list?, %x, %x, %x, %x, %x, %x, %x", - cmnd, req->opcode, req->scb[0], req->flags, req->itt, - be32_to_cpu(req->data_length), req->cmd_sn, - be32_to_cpu((__force __be32)(cmnd->pdu.datasize))); + cmnd, req->opcode, req->scb[0], req->flags, req->itt, + be32_to_cpu(req->data_length), req->cmd_sn, + be32_to_cpu((__force __be32)(cmnd->pdu.datasize))); if (unlikely(cmnd->parent_req)) { struct iscsi_scsi_cmd_hdr *preq = cmnd_hdr(cmnd->parent_req); - PRINT_CRIT_ERROR("%p %x %u", preq, preq->opcode, - preq->scb[0]); + PRINT_CRIT_ERROR("%p %x %u", + preq, preq->opcode, preq->scb[0]); } sBUG(); } @@ -383,7 +374,6 @@ static void cmnd_free(struct iscsi_cmnd *cmnd) kmem_cache_free(iscsi_cmnd_cache, cmnd); TRACE_EXIT(); - return; } static void iscsi_dec_active_cmds(struct iscsi_cmnd *req) @@ -391,7 +381,7 @@ static void iscsi_dec_active_cmds(struct iscsi_cmnd *req) struct iscsi_session *sess = req->conn->session; TRACE_DBG("Decrementing active_cmds (req %p, sess %p, new value %d)", - req, sess, atomic_read(&sess->active_cmds)-1); + req, sess, atomic_read(&sess->active_cmds) - 1); EXTRACHECKS_BUG_ON(!req->dec_active_cmds); @@ -401,11 +391,10 @@ static void iscsi_dec_active_cmds(struct iscsi_cmnd *req) #ifdef CONFIG_SCST_EXTRACHECKS if (unlikely(atomic_read(&sess->active_cmds) < 0)) { PRINT_CRIT_ERROR("active_cmds < 0 (%d)!!", - atomic_read(&sess->active_cmds)); + atomic_read(&sess->active_cmds)); sBUG(); } #endif - return; } /* Might be called under some lock and on SIRQ */ @@ -415,11 +404,10 @@ void cmnd_done(struct iscsi_cmnd *cmnd) TRACE_DBG("cmnd %p", cmnd); - if (unlikely(test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags))) { + if (unlikely(test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags))) TRACE_MGMT_DBG("Done aborted cmd %p (scst cmd %p, state %d, parent_req %p)", - cmnd, cmnd->scst_cmd, cmnd->scst_state, - cmnd->parent_req); - } + cmnd, cmnd->scst_cmd, cmnd->scst_state, + cmnd->parent_req); EXTRACHECKS_BUG_ON(cmnd->on_rx_digest_list); EXTRACHECKS_BUG_ON(cmnd->hashed); @@ -428,7 +416,7 @@ void cmnd_done(struct iscsi_cmnd *cmnd) req_del_from_write_timeout_list(cmnd); - if (cmnd->parent_req == NULL) { + if (!cmnd->parent_req) { struct iscsi_conn *conn = cmnd->conn; struct iscsi_cmnd *rsp, *t; @@ -444,7 +432,7 @@ void cmnd_done(struct iscsi_cmnd *cmnd) /* Order between above and below code is important! */ - if ((cmnd->scst_cmd != NULL) || (cmnd->scst_aen != NULL)) { + if (cmnd->scst_cmd || cmnd->scst_aen) { /* * Tell Coverity when cmnd->scst_cmd or scst_aen is set. */ @@ -456,8 +444,7 @@ void cmnd_done(struct iscsi_cmnd *cmnd) switch (cmnd->scst_state) { case ISCSI_CMD_STATE_PROCESSED: TRACE_DBG("cmd %p PROCESSED", cmnd); - scst_tgt_cmd_done(cmnd->scst_cmd, - SCST_CONTEXT_DIRECT_ATOMIC); + scst_tgt_cmd_done(cmnd->scst_cmd, SCST_CONTEXT_DIRECT_ATOMIC); break; case ISCSI_CMD_STATE_AFTER_PREPROC: @@ -468,9 +455,8 @@ void cmnd_done(struct iscsi_cmnd *cmnd) TRACE_DBG("cmd %p AFTER_PREPROC", cmnd); cmnd->scst_state = ISCSI_CMD_STATE_RESTARTED; cmnd->scst_cmd = NULL; - scst_restart_cmd(scst_cmd, - SCST_PREPROCESS_STATUS_ERROR_FATAL, - SCST_CONTEXT_THREAD); + scst_restart_cmd(scst_cmd, SCST_PREPROCESS_STATUS_ERROR_FATAL, + SCST_CONTEXT_THREAD); break; } @@ -510,10 +496,8 @@ void cmnd_done(struct iscsi_cmnd *cmnd) if (unlikely(cmnd->dec_active_cmds)) iscsi_dec_active_cmds(cmnd); - list_for_each_entry_safe(rsp, t, &cmnd->rsp_cmd_list, - rsp_cmd_list_entry) { + list_for_each_entry_safe(rsp, t, &cmnd->rsp_cmd_list, rsp_cmd_list_entry) cmnd->conn->transport->iscsit_free_cmd(rsp); - } cmnd->conn->transport->iscsit_free_cmd(cmnd); } else { @@ -534,8 +518,8 @@ void cmnd_done(struct iscsi_cmnd *cmnd) EXTRACHECKS_BUG_ON(cmnd->dec_active_cmds); if (cmnd == parent->main_rsp) { - TRACE_DBG("Finishing main rsp %p (req %p)", cmnd, - parent); + TRACE_DBG("Finishing main rsp %p (req %p)", + cmnd, parent); parent->main_rsp = NULL; } @@ -547,7 +531,6 @@ void cmnd_done(struct iscsi_cmnd *cmnd) } TRACE_EXIT(); - return; } EXPORT_SYMBOL(cmnd_done); @@ -578,14 +561,15 @@ void req_cmnd_release_force(struct iscsi_cmnd *req) EXTRACHECKS_BUG_ON(!req->release_called); sBUG_ON(req->hashed); sBUG_ON(req->cmd_req); - sBUG_ON(req->main_rsp != NULL); + sBUG_ON(req->main_rsp); sBUG_ON(!list_empty(&req->rx_ddigest_cmd_list)); sBUG_ON(req->pending); cmnd_put(req); goto out; - } else - TRACE_MGMT_DBG("req %p", req); + } + + TRACE_MGMT_DBG("req %p", req); req->force_release_done = 1; @@ -609,8 +593,7 @@ void req_cmnd_release_force(struct iscsi_cmnd *req) } /* Supposed nobody can add responses in the list anymore */ - list_for_each_entry_reverse(rsp, &req->rsp_cmd_list, - rsp_cmd_list_entry) { + list_for_each_entry_reverse(rsp, &req->rsp_cmd_list, rsp_cmd_list_entry) { bool r; if (rsp->force_cleanup_done) @@ -638,7 +621,7 @@ void req_cmnd_release_force(struct iscsi_cmnd *req) cmnd_put(rsp); } - if (req->main_rsp != NULL) { + if (req->main_rsp) { TRACE_MGMT_DBG("Putting main rsp %p", req->main_rsp); cmnd_put(req->main_rsp); req->main_rsp = NULL; @@ -648,7 +631,6 @@ void req_cmnd_release_force(struct iscsi_cmnd *req) out: TRACE_EXIT(); - return; } EXPORT_SYMBOL(req_cmnd_release_force); @@ -670,7 +652,7 @@ void req_cmnd_pre_release(struct iscsi_cmnd *req) req, req->scst_cmd, req->scst_state); } - sBUG_ON(req->parent_req != NULL); + sBUG_ON(req->parent_req); if (unlikely(req->hashed)) { /* It sometimes can happen during errors recovery */ @@ -687,10 +669,10 @@ void req_cmnd_pre_release(struct iscsi_cmnd *req) req->cmd_req = NULL; } - if (unlikely(req->main_rsp != NULL)) { + if (unlikely(req->main_rsp)) { TRACE_DBG("Sending main rsp %p", req->main_rsp); if (cmnd_opcode(req) == ISCSI_OP_SCSI_CMD) { - if (req->scst_cmd != NULL) + if (req->scst_cmd) iscsi_set_resid(req->main_rsp); else iscsi_set_resid_no_scst_cmd(req->main_rsp); @@ -699,8 +681,7 @@ void req_cmnd_pre_release(struct iscsi_cmnd *req) req->main_rsp = NULL; } - list_for_each_entry_safe(c, t, &req->rx_ddigest_cmd_list, - rx_ddigest_cmd_list_entry) { + list_for_each_entry_safe(c, t, &req->rx_ddigest_cmd_list, rx_ddigest_cmd_list_entry) { cmd_del_from_rx_ddigest_list(c); cmnd_put(c); } @@ -711,7 +692,6 @@ void req_cmnd_pre_release(struct iscsi_cmnd *req) iscsi_dec_active_cmds(req); TRACE_EXIT(); - return; } EXPORT_SYMBOL(req_cmnd_pre_release); @@ -727,7 +707,6 @@ static void req_cmnd_release(struct iscsi_cmnd *req) cmnd_put(req); TRACE_EXIT(); - return; } /* @@ -743,10 +722,9 @@ void rsp_cmnd_release(struct iscsi_cmnd *cmnd) cmnd->release_called = 1; #endif - EXTRACHECKS_BUG_ON(cmnd->parent_req == NULL); + EXTRACHECKS_BUG_ON(!cmnd->parent_req); cmnd_put(cmnd); - return; } EXPORT_SYMBOL(rsp_cmnd_release); @@ -773,7 +751,7 @@ static inline struct iscsi_cmnd *iscsi_alloc_main_rsp(struct iscsi_cmnd *parent) TRACE_ENTRY(); - EXTRACHECKS_BUG_ON(parent->main_rsp != NULL); + EXTRACHECKS_BUG_ON(parent->main_rsp); rsp = iscsi_alloc_rsp(parent); parent->main_rsp = rsp; @@ -793,12 +771,11 @@ static void iscsi_cmnds_init_write(struct list_head *send, int flags) if (!(conn->ddigest_type & DIGEST_NONE)) { list_for_each(pos, send) { - rsp = list_entry(pos, struct iscsi_cmnd, - write_list_entry); + rsp = list_entry(pos, struct iscsi_cmnd, write_list_entry); if (rsp->pdu.datasize != 0) { - TRACE_DBG("Doing data digest (%p:%x)", rsp, - cmnd_opcode(rsp)); + TRACE_DBG("Doing data digest (%p:%x)", + rsp, cmnd_opcode(rsp)); digest_tx_data(rsp); } } @@ -819,8 +796,6 @@ static void iscsi_cmnds_init_write(struct list_head *send, int flags) if (flags & ISCSI_INIT_WRITE_WAKE) conn->transport->iscsit_make_conn_wr_active(conn); - - return; } static void iscsi_cmnd_init_write(struct iscsi_cmnd *rsp, int flags) @@ -830,15 +805,14 @@ static void iscsi_cmnd_init_write(struct iscsi_cmnd *rsp, int flags) #ifdef CONFIG_SCST_EXTRACHECKS if (unlikely(rsp->on_write_list)) { PRINT_CRIT_ERROR("cmd already on write list (%x %x %x %u %u %d %d", - rsp->pdu.bhs.itt, cmnd_opcode(rsp), cmnd_scsicode(rsp), - rsp->hdigest, rsp->ddigest, - list_empty(&rsp->rsp_cmd_list), rsp->hashed); + rsp->pdu.bhs.itt, cmnd_opcode(rsp), cmnd_scsicode(rsp), + rsp->hdigest, rsp->ddigest, + list_empty(&rsp->rsp_cmd_list), rsp->hashed); sBUG(); } #endif list_add_tail(&rsp->write_list_entry, &head); iscsi_cmnds_init_write(&head, flags); - return; } static void iscsi_set_resid_no_scst_cmd(struct iscsi_cmnd *rsp) @@ -851,11 +825,11 @@ static void iscsi_set_resid_no_scst_cmd(struct iscsi_cmnd *rsp) TRACE_ENTRY(); - sBUG_ON(req->scst_cmd != NULL); + sBUG_ON(req->scst_cmd); TRACE_DBG("req %p, rsp %p, outstanding_r2t %d, r2t_len_to_receive %d, r2t_len_to_send %d, not_received_data_len %d", - req, rsp, req->outstanding_r2t, req->r2t_len_to_receive, - req->r2t_len_to_send, req->not_received_data_len); + req, rsp, req->outstanding_r2t, req->r2t_len_to_receive, + req->r2t_len_to_send, req->not_received_data_len); if ((req_hdr->flags & ISCSI_CMD_READ) && (req_hdr->flags & ISCSI_CMD_WRITE)) { @@ -893,7 +867,6 @@ static void iscsi_set_resid_no_scst_cmd(struct iscsi_cmnd *rsp) } TRACE_EXIT(); - return; } void iscsi_set_resid(struct iscsi_cmnd *rsp) @@ -948,7 +921,6 @@ void iscsi_set_resid(struct iscsi_cmnd *rsp) out: TRACE_EXIT(); - return; } EXPORT_SYMBOL(iscsi_set_resid); @@ -997,8 +969,8 @@ static void send_data_rsp(struct iscsi_cmnd *req, u8 status, int send_status) break; } - TRACE_DBG("pdusize %d, offset %d, size %d", pdusize, offset, - size); + TRACE_DBG("pdusize %d, offset %d, size %d", + pdusize, offset, size); rsp->pdu.datasize = pdusize; @@ -1009,25 +981,25 @@ static void send_data_rsp(struct iscsi_cmnd *req, u8 status, int send_status) list_add_tail(&rsp->write_list_entry, &send); } iscsi_cmnds_init_write(&send, 0); - return; } -static void iscsi_tcp_set_sense_data(struct iscsi_cmnd *rsp, - const u8 *sense_buf, int sense_len) +static void iscsi_tcp_set_sense_data(struct iscsi_cmnd *rsp, const u8 *sense_buf, int sense_len) { struct scatterlist *sg; - sg = rsp->sg = rsp->rsp_sg; + rsp->sg = rsp->rsp_sg; rsp->sg_cnt = 2; rsp->own_sg = 1; + sg = rsp->sg; + sg_init_table(sg, 2); sg_set_buf(&sg[0], &rsp->sense_hdr, sizeof(rsp->sense_hdr)); sg_set_buf(&sg[1], (u8 *)sense_buf, sense_len); } -static void iscsi_init_status_rsp(struct iscsi_cmnd *rsp, - int status, const u8 *sense_buf, int sense_len) +static void iscsi_init_status_rsp(struct iscsi_cmnd *rsp, int status, const u8 *sense_buf, + int sense_len) { struct iscsi_cmnd *req = rsp->parent_req; struct iscsi_scsi_rsp_hdr *rsp_hdr; @@ -1057,11 +1029,10 @@ static void iscsi_init_status_rsp(struct iscsi_cmnd *rsp, } TRACE_EXIT(); - return; } -struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, - int status, const u8 *sense_buf, int sense_len) +struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, int status, const u8 *sense_buf, + int sense_len) { struct iscsi_cmnd *rsp; @@ -1078,21 +1049,19 @@ struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, } EXPORT_SYMBOL(create_status_rsp); -static void iscsi_tcp_send_data_rsp(struct iscsi_cmnd *req, u8 *sense, - int sense_len, u8 status, +static void iscsi_tcp_send_data_rsp(struct iscsi_cmnd *req, u8 *sense, int sense_len, u8 status, int is_send_status) { - if ((status != SAM_STAT_CHECK_CONDITION) && - ((cmnd_hdr(req)->flags & (ISCSI_CMD_WRITE|ISCSI_CMD_READ)) != - (ISCSI_CMD_WRITE|ISCSI_CMD_READ))) { + if (status != SAM_STAT_CHECK_CONDITION && + (cmnd_hdr(req)->flags & (ISCSI_CMD_WRITE | ISCSI_CMD_READ)) != + (ISCSI_CMD_WRITE | ISCSI_CMD_READ)) { send_data_rsp(req, status, is_send_status); } else { struct iscsi_cmnd *rsp; send_data_rsp(req, 0, 0); if (is_send_status) { - rsp = create_status_rsp(req, status, sense, - sense_len); + rsp = create_status_rsp(req, status, sense, sense_len); iscsi_cmnd_init_write(rsp, 0); } } @@ -1114,8 +1083,7 @@ static int iscsi_set_prelim_r2t_len_to_receive(struct iscsi_cmnd *req) if (req_hdr->flags & ISCSI_CMD_FINAL) { if (req_hdr->flags & ISCSI_CMD_WRITE) iscsi_set_not_received_data_len(req, - be32_to_cpu(req_hdr->data_length) - - req->pdu.datasize); + be32_to_cpu(req_hdr->data_length) - req->pdu.datasize); goto out; } @@ -1148,17 +1116,17 @@ static int iscsi_set_prelim_r2t_len_to_receive(struct iscsi_cmnd *req) iscsi_set_not_received_data_len(req, not_received); TRACE_DBG("req %p, op %x, outstanding_r2t %d, r2t_len_to_receive %d, r2t_len_to_send %d, not_received_data_len %d", - req, - cmnd_opcode(req), req->outstanding_r2t, req->r2t_len_to_receive, - req->r2t_len_to_send, req->not_received_data_len); + req, + cmnd_opcode(req), req->outstanding_r2t, req->r2t_len_to_receive, + req->r2t_len_to_send, req->not_received_data_len); out: TRACE_EXIT_RES(res); return res; } -static int create_preliminary_no_scst_rsp(struct iscsi_cmnd *req, - int status, const u8 *sense_buf, int sense_len) +static int create_preliminary_no_scst_rsp(struct iscsi_cmnd *req, int status, const u8 *sense_buf, + int sense_len) { struct iscsi_cmnd *rsp; int res = 0; @@ -1172,7 +1140,7 @@ static int create_preliminary_no_scst_rsp(struct iscsi_cmnd *req, req->scst_state = ISCSI_CMD_STATE_OUT_OF_SCST_PRELIM_COMPL; - sBUG_ON(req->scst_cmd != NULL); + sBUG_ON(req->scst_cmd); res = iscsi_preliminary_complete(req, req, true); @@ -1188,14 +1156,14 @@ out: return res; } -int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req, - bool get_data, int key, int asc, int ascq) +int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req, bool get_data, int key, int asc, + int ascq) { int res = 0; TRACE_ENTRY(); - if (req->scst_cmd == NULL) { + if (!req->scst_cmd) { /* There must be already error set */ goto complete; } @@ -1221,7 +1189,7 @@ static int create_reject_rsp(struct iscsi_cmnd *req, int reason, bool get_data) TRACE_MGMT_DBG("Reject: req %p, reason %x", req, reason); if (cmnd_opcode(req) == ISCSI_OP_SCSI_CMD) { - if (req->scst_cmd == NULL) { + if (!req->scst_cmd) { /* BUSY status must be already set */ struct iscsi_scsi_rsp_hdr *rsp_hdr1; @@ -1243,7 +1211,7 @@ static int create_reject_rsp(struct iscsi_cmnd *req, int reason, bool get_data) * RFC 3720. */ set_scst_preliminary_status_rsp(req, get_data, - SCST_LOAD_SENSE(scst_sense_invalid_message)); + SCST_LOAD_SENSE(scst_sense_invalid_message)); } } @@ -1254,11 +1222,14 @@ static int create_reject_rsp(struct iscsi_cmnd *req, int reason, bool get_data) rsp_hdr->ffffffff = ISCSI_RESERVED_TAG; rsp_hdr->reason = reason; - sg = rsp->sg = rsp->rsp_sg; + rsp->sg = rsp->rsp_sg; rsp->sg_cnt = 1; rsp->own_sg = 1; + + sg = rsp->sg; sg_init_one(sg, &req->pdu.bhs, sizeof(struct iscsi_hdr)); - rsp->bufflen = rsp->pdu.datasize = sizeof(struct iscsi_hdr); + rsp->pdu.datasize = sizeof(struct iscsi_hdr); + rsp->bufflen = rsp->pdu.datasize; res = iscsi_preliminary_complete(req, req, true); @@ -1269,10 +1240,12 @@ out: static inline int iscsi_get_allowed_cmds(struct iscsi_session *sess) { - int res = max(-1, (int)sess->tgt_params.queued_cmnds - - atomic_read(&sess->active_cmds)-1); + int res = max(-1, + (int)sess->tgt_params.queued_cmnds - atomic_read(&sess->active_cmds) - 1); + TRACE_DBG("allowed cmds %d (sess %p, active_cmds %d)", res, - sess, atomic_read(&sess->active_cmds)); + sess, atomic_read(&sess->active_cmds)); + return res; } @@ -1303,15 +1276,16 @@ static void update_stat_sn(struct iscsi_cmnd *cmnd) struct iscsi_conn *conn = cmnd->conn; u32 exp_stat_sn; - cmnd->pdu.bhs.exp_sn = exp_stat_sn = - be32_to_cpu((__force __be32)cmnd->pdu.bhs.exp_sn); + exp_stat_sn = be32_to_cpu((__force __be32)cmnd->pdu.bhs.exp_sn); + cmnd->pdu.bhs.exp_sn = exp_stat_sn; + TRACE_DBG("%x,%x", cmnd_opcode(cmnd), exp_stat_sn); + if ((int)(exp_stat_sn - conn->exp_stat_sn) > 0 && (int)(exp_stat_sn - conn->stat_sn) <= 0) { /* free pdu resources */ cmnd->conn->exp_stat_sn = exp_stat_sn; } - return; } static struct iscsi_cmnd *cmnd_find_itt_get(struct iscsi_conn *conn, __be32 itt) @@ -1320,7 +1294,7 @@ static struct iscsi_cmnd *cmnd_find_itt_get(struct iscsi_conn *conn, __be32 itt) spin_lock_bh(&conn->cmd_list_lock); list_for_each_entry(cmnd, &conn->cmd_list, cmd_list_entry) { - if ((cmnd->pdu.bhs.itt == itt) && !cmnd_get_check(cmnd)) { + if (cmnd->pdu.bhs.itt == itt && !cmnd_get_check(cmnd)) { found_cmnd = cmnd; break; } @@ -1336,14 +1310,12 @@ static struct iscsi_cmnd *cmnd_find_itt_get(struct iscsi_conn *conn, __be32 itt) **/ /* Must be called under cmnd_data_wait_hash_lock */ -static struct iscsi_cmnd *__cmnd_find_data_wait_hash(struct iscsi_conn *conn, - __be32 itt) +static struct iscsi_cmnd *__cmnd_find_data_wait_hash(struct iscsi_conn *conn, __be32 itt) { struct list_head *head; struct iscsi_cmnd *cmnd; - head = &conn->session->cmnd_data_wait_hash[ - cmnd_hashfn((__force u32)itt)]; + head = &conn->session->cmnd_data_wait_hash[cmnd_hashfn((__force u32)itt)]; list_for_each_entry(cmnd, head, hash_list_entry) { if (cmnd->pdu.bhs.itt == itt) @@ -1352,8 +1324,7 @@ static struct iscsi_cmnd *__cmnd_find_data_wait_hash(struct iscsi_conn *conn, return NULL; } -static struct iscsi_cmnd *cmnd_find_data_wait_hash(struct iscsi_conn *conn, - __be32 itt) +static struct iscsi_cmnd *cmnd_find_data_wait_hash(struct iscsi_conn *conn, __be32 itt) { struct iscsi_cmnd *res; struct iscsi_session *session = conn->session; @@ -1408,8 +1379,7 @@ static int cmnd_insert_data_wait_hash(struct iscsi_cmnd *cmnd) TRACE_DBG("%p:%x", cmnd, itt); if (unlikely(itt == ISCSI_RESERVED_TAG)) { PRINT_ERROR("ITT is RESERVED_TAG (conn %p)", cmnd->conn); - PRINT_BUFFER("Incorrect BHS", &cmnd->pdu.bhs, - sizeof(cmnd->pdu.bhs)); + PRINT_BUFFER("Incorrect BHS", &cmnd->pdu.bhs, sizeof(cmnd->pdu.bhs)); err = -ISCSI_REASON_PROTOCOL_ERROR; goto out; } @@ -1420,13 +1390,13 @@ static int cmnd_insert_data_wait_hash(struct iscsi_cmnd *cmnd) tmp = __cmnd_find_data_wait_hash(cmnd->conn, itt); if (likely(!tmp)) { - TRACE_DBG("Adding cmnd %p to the hash (ITT %x)", cmnd, - cmnd->pdu.bhs.itt); + TRACE_DBG("Adding cmnd %p to the hash (ITT %x)", + cmnd, cmnd->pdu.bhs.itt); list_add_tail(&cmnd->hash_list_entry, head); cmnd->hashed = 1; } else { PRINT_ERROR("Task %x in progress, cmnd %p (conn %p)", - itt, cmnd, cmnd->conn); + itt, cmnd, cmnd->conn); err = -ISCSI_REASON_TASK_IN_PROGRESS; } @@ -1447,15 +1417,14 @@ static void cmnd_remove_data_wait_hash(struct iscsi_cmnd *cmnd) if (likely(tmp && tmp == cmnd)) { TRACE_DBG("Deleting cmnd %p from the hash (ITT %x)", cmnd, - cmnd->pdu.bhs.itt); + cmnd->pdu.bhs.itt); list_del(&cmnd->hash_list_entry); cmnd->hashed = 0; - } else + } else { PRINT_ERROR("%p:%x not found", cmnd, cmnd->pdu.bhs.itt); + } spin_unlock(&session->cmnd_data_wait_hash_lock); - - return; } static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd) @@ -1469,11 +1438,11 @@ static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd) TRACE_ENTRY(); TRACE_DBG_FLAG(iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(cmnd), - "Skipping (cmnd %p, ITT %x, op %x, cmd op %x, datasize %u, scst_cmd %p, scst state %d, status %d)", - cmnd, - cmnd->pdu.bhs.itt, cmnd_opcode(cmnd), cmnd_hdr(cmnd)->scb[0], - cmnd->pdu.datasize, cmnd->scst_cmd, cmnd->scst_state, - cmnd->scst_cmd ? cmnd->scst_cmd->status : -1); + "Skipping (cmnd %p, ITT %x, op %x, cmd op %x, datasize %u, scst_cmd %p, scst state %d, status %d)", + cmnd, + cmnd->pdu.bhs.itt, cmnd_opcode(cmnd), cmnd_hdr(cmnd)->scb[0], + cmnd->pdu.datasize, cmnd->scst_cmd, cmnd->scst_state, + cmnd->scst_cmd ? cmnd->scst_cmd->status : -1); iscsi_extracheck_is_rd_thread(conn); @@ -1489,7 +1458,7 @@ static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd) * will be read and then discarded. */ sg = &dummy_sg[0]; - if (cmnd->sg == NULL) { + if (!cmnd->sg) { /* just in case */ cmnd->sg = sg; cmnd->bufflen = PAGE_SIZE; @@ -1514,11 +1483,9 @@ static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd) out: TRACE_EXIT(); - return; } -int iscsi_preliminary_complete(struct iscsi_cmnd *req, - struct iscsi_cmnd *orig_req, bool get_data) +int iscsi_preliminary_complete(struct iscsi_cmnd *req, struct iscsi_cmnd *orig_req, bool get_data) { int res = 0; bool set_r2t_len; @@ -1531,14 +1498,14 @@ int iscsi_preliminary_complete(struct iscsi_cmnd *req, struct iscsi_hdr *req_hdr = &req->pdu.bhs; TRACE_DBG_FLAG(iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(orig_req), - "Prelim completed req %p, orig_req %p (FINAL %x, outstanding_r2t %d)", - req, orig_req, (req_hdr->flags & ISCSI_CMD_FINAL), - orig_req->outstanding_r2t); + "Prelim completed req %p, orig_req %p (FINAL %x, outstanding_r2t %d)", + req, orig_req, (req_hdr->flags & ISCSI_CMD_FINAL), + orig_req->outstanding_r2t); } #endif iscsi_extracheck_is_rd_thread(req->conn); - sBUG_ON(req->parent_req != NULL); + sBUG_ON(req->parent_req); if (test_bit(ISCSI_CMD_PRELIM_COMPLETED, &req->prelim_compl_flags)) { TRACE_MGMT_DBG("req %p already prelim completed", req); @@ -1564,17 +1531,16 @@ int iscsi_preliminary_complete(struct iscsi_cmnd *req, if (test_bit(ISCSI_CMD_PRELIM_COMPLETED, &orig_req->prelim_compl_flags)) goto out_set; - if (set_r2t_len) + if (set_r2t_len) { res = iscsi_set_prelim_r2t_len_to_receive(orig_req); - else if (orig_req_hdr->flags & ISCSI_CMD_WRITE) { + } else if (orig_req_hdr->flags & ISCSI_CMD_WRITE) { /* * We will get here if orig_req prelim completed in the middle * of data receiving. We won't send more R2T's, so * r2t_len_to_send is final and won't be updated anymore in * future. */ - iscsi_set_not_received_data_len(orig_req, - orig_req->r2t_len_to_send); + iscsi_set_not_received_data_len(orig_req, orig_req->r2t_len_to_send); } out_set: @@ -1585,8 +1551,8 @@ out_set: return res; } -static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn, - struct iscsi_cmnd *cmd, u32 offset, u32 size) +static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn, struct iscsi_cmnd *cmd, u32 offset, + u32 size) { struct scatterlist *sg = cmd->sg; unsigned int bufflen = cmd->bufflen; @@ -1596,8 +1562,8 @@ static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn, TRACE_ENTRY(); - TRACE_DBG("cmd %p, sg %p, offset %u, size %u", cmd, cmd->sg, - offset, size); + TRACE_DBG("cmd %p, sg %p, offset %u, size %u", + cmd, cmd->sg, offset, size); iscsi_extracheck_is_rd_thread(conn); @@ -1622,14 +1588,14 @@ static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn, /* To suppress a false positive Coverity complaint. */ EXTRACHECKS_BUG_ON(sg == &dummy_sg[0] && idx > 0); addr = page_address(sg_page(&sg[idx])); - EXTRACHECKS_BUG_ON(addr == NULL); + EXTRACHECKS_BUG_ON(!addr); sg_len = sg[idx].offset + sg[idx].length - offset; conn->read_iov[i].iov_base = addr + offset; if (size <= sg_len) { TRACE_DBG("idx=%d, i=%d, offset=%u, size=%d, addr=%p", - idx, i, offset, size, addr); + idx, i, offset, size, addr); conn->read_iov[i].iov_len = size; break; } @@ -1644,7 +1610,7 @@ static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn, i++; if (unlikely(i >= ISCSI_CONN_IOV_MAX)) { PRINT_ERROR("Initiator %s violated negotiated parameters by sending too much data (size left %d), conn %p", - conn->session->initiator_name, size, conn); + conn->session->initiator_name, size, conn); mark_conn_closed(conn); res = -EINVAL; goto out; @@ -1726,10 +1692,10 @@ static void send_r2t(struct iscsi_cmnd *req) } TRACE_WRITE("req %p, data_length %u, buffer_offset %u, r2t_sn %u, outstanding_r2t %u", - req, be32_to_cpu(rsp_hdr->data_length), - be32_to_cpu(rsp_hdr->buffer_offset), - be32_to_cpu((__force __be32)rsp_hdr->r2t_sn), - req->outstanding_r2t); + req, be32_to_cpu(rsp_hdr->data_length), + be32_to_cpu(rsp_hdr->buffer_offset), + be32_to_cpu((__force __be32)rsp_hdr->r2t_sn), + req->outstanding_r2t); list_add_tail(&rsp->write_list_entry, &send); req->outstanding_r2t++; @@ -1741,7 +1707,6 @@ static void send_r2t(struct iscsi_cmnd *req) out: TRACE_EXIT(); - return; } static int iscsi_pre_exec(struct scst_cmd *scst_cmd) @@ -1755,12 +1720,10 @@ static int iscsi_pre_exec(struct scst_cmd *scst_cmd) EXTRACHECKS_BUG_ON(scst_cmd_atomic(scst_cmd)); /* If data digest isn't used this list will be empty */ - list_for_each_entry_safe(c, t, &req->rx_ddigest_cmd_list, - rx_ddigest_cmd_list_entry) { + list_for_each_entry_safe(c, t, &req->rx_ddigest_cmd_list, rx_ddigest_cmd_list_entry) { TRACE_DBG("Checking digest of RX ddigest cmd %p", c); if (digest_rx_data(c) != 0) { - scst_set_cmd_error(scst_cmd, - SCST_LOAD_SENSE(iscsi_sense_crc_error)); + scst_set_cmd_error(scst_cmd, SCST_LOAD_SENSE(iscsi_sense_crc_error)); res = SCST_PREPROCESS_STATUS_ERROR_SENSE_SET; /* * The rest of rx_ddigest_cmd_list will be freed @@ -1807,14 +1770,14 @@ static int nop_out_start(struct iscsi_cmnd *cmnd) if (cmnd->pdu.bhs.itt != ISCSI_RESERVED_TAG) { struct scatterlist *sg; - cmnd->sg = sg = scst_alloc_sg(size, GFP_KERNEL, - &cmnd->sg_cnt); - if (sg == NULL) { + sg = scst_alloc_sg(size, GFP_KERNEL, &cmnd->sg_cnt); + if (!sg) { TRACE(TRACE_OUT_OF_MEM, "Allocation of buffer for %d Nop-Out payload failed", size); err = -ISCSI_REASON_OUT_OF_RESOURCES; goto out; } + cmnd->sg = sg; /* We already checked it in check_segment_length() */ sBUG_ON(cmnd->sg_cnt > (signed int)ISCSI_CONN_IOV_MAX); @@ -1823,8 +1786,7 @@ static int nop_out_start(struct iscsi_cmnd *cmnd) cmnd->bufflen = size; for (i = 0; i < cmnd->sg_cnt; i++) { - conn->read_iov[i].iov_base = - page_address(sg_page(&sg[i])); + conn->read_iov[i].iov_base = page_address(sg_page(&sg[i])); tmp = min_t(u32, size, PAGE_SIZE); conn->read_iov[i].iov_len = tmp; size -= tmp; @@ -1872,41 +1834,36 @@ int iscsi_cmnd_set_write_buf(struct iscsi_cmnd *req) bool unsolicited_data_expected = false; int res = 0; - req->bufflen = scst_cmd_get_write_fields(scst_cmd, &req->sg, - &req->sg_cnt); + req->bufflen = scst_cmd_get_write_fields(scst_cmd, &req->sg, &req->sg_cnt); unsolicited_data_expected = !(req_hdr->flags & ISCSI_CMD_FINAL); - if (unlikely(session->sess_params.initial_r2t && - unsolicited_data_expected)) { + if (unlikely(session->sess_params.initial_r2t && unsolicited_data_expected)) { PRINT_ERROR("Initiator %s violated negotiated parameters: initial R2T is required (ITT %x, op %x, conn %p)", - session->initiator_name, req->pdu.bhs.itt, - req_hdr->scb[0], conn); + session->initiator_name, req->pdu.bhs.itt, + req_hdr->scb[0], conn); res = -EINVAL; goto out_close; } - if (unlikely(!session->sess_params.immediate_data && - req->pdu.datasize)) { + if (unlikely(!session->sess_params.immediate_data && req->pdu.datasize)) { PRINT_ERROR("Initiator %s violated negotiated parameters: forbidden immediate data sent (ITT %x, op %x, conn %p)", - session->initiator_name, - req->pdu.bhs.itt, req_hdr->scb[0], conn); + session->initiator_name, + req->pdu.bhs.itt, req_hdr->scb[0], conn); res = -EINVAL; goto out_close; } - if (unlikely(session->sess_params.first_burst_length < - req->pdu.datasize)) { + if (unlikely(session->sess_params.first_burst_length < req->pdu.datasize)) { PRINT_ERROR("Initiator %s violated negotiated parameters: immediate data len (%d) > first_burst_length (%d) (ITT %x, op %x, conn %p)", - session->initiator_name, - req->pdu.datasize, - session->sess_params.first_burst_length, - req->pdu.bhs.itt, req_hdr->scb[0], conn); + session->initiator_name, + req->pdu.datasize, + session->sess_params.first_burst_length, + req->pdu.bhs.itt, req_hdr->scb[0], conn); res = -EINVAL; goto out_close; } - req->r2t_len_to_receive = be32_to_cpu(req_hdr->data_length) - - req->pdu.datasize; + req->r2t_len_to_receive = be32_to_cpu(req_hdr->data_length) - req->pdu.datasize; /* * In case of residual overflow req->r2t_len_to_receive and @@ -1919,11 +1876,11 @@ int iscsi_cmnd_set_write_buf(struct iscsi_cmnd *req) req->outstanding_r2t = 1; req->r2t_len_to_send = req->r2t_len_to_receive - min_t(unsigned int, - session->sess_params.first_burst_length - - req->pdu.datasize, + session->sess_params.first_burst_length - req->pdu.datasize, req->r2t_len_to_receive); - } else + } else { req->r2t_len_to_send = req->r2t_len_to_receive; + } if (likely(res == 0)) req_add_to_write_timeout_list(req); @@ -1953,8 +1910,7 @@ int cmnd_rx_continue(struct iscsi_cmnd *req) * Check for preliminary completion here to save R2Ts. For TASK QUEUE * FULL statuses that might be a big performance win. */ - if (unlikely(scst_cmd_prelim_completed(scst_cmd) || - unlikely(req->prelim_compl_flags != 0))) { + if (unlikely(scst_cmd_prelim_completed(scst_cmd) || req->prelim_compl_flags != 0)) { /* * If necessary, ISCSI_CMD_ABORTED will be set by * iscsi_xmit_response(). @@ -1978,10 +1934,9 @@ int cmnd_rx_continue(struct iscsi_cmnd *req) } if (req->pdu.datasize) { - res = cmnd_prepare_recv_pdu(conn, req, 0, - req->pdu.datasize); + res = cmnd_prepare_recv_pdu(conn, req, 0, req->pdu.datasize); /* For performance better to send R2Ts ASAP */ - if (likely(res == 0) && (req->r2t_len_to_send != 0)) + if (likely(res == 0) && req->r2t_len_to_send != 0) send_r2t(req); } } else { @@ -1989,8 +1944,7 @@ int cmnd_rx_continue(struct iscsi_cmnd *req) req->sg_cnt = scst_cmd_get_sg_cnt(scst_cmd); req->bufflen = scst_cmd_get_bufflen(scst_cmd); - if (unlikely(!(req_hdr->flags & ISCSI_CMD_FINAL) || - req->pdu.datasize)) { + if (unlikely(!(req_hdr->flags & ISCSI_CMD_FINAL) || req->pdu.datasize)) { PRINT_ERROR("Unexpected unsolicited data (ITT %x CDB %x)", req->pdu.bhs.itt, req_hdr->scb[0]); set_scst_preliminary_status_rsp(req, true, @@ -2000,8 +1954,8 @@ int cmnd_rx_continue(struct iscsi_cmnd *req) trace: TRACE_DBG("req=%p, dir=%d, r2t_len_to_receive=%d, r2t_len_to_send=%d, bufflen=%d, own_sg %d", - req, dir, req->r2t_len_to_receive, - req->r2t_len_to_send, req->bufflen, req->own_sg); + req, dir, req->r2t_len_to_receive, + req->r2t_len_to_send, req->bufflen, req->own_sg); out: TRACE_EXIT_RES(res); @@ -2028,18 +1982,16 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) TRACE_DBG("scsi command: %x", req_hdr->scb[0]); TRACE_DBG("Incrementing active_cmds (cmd %p, sess %p, new value %d)", - req, session, atomic_read(&session->active_cmds)+1); + req, session, atomic_read(&session->active_cmds) + 1); atomic_inc(&session->active_cmds); req->dec_active_cmds = 1; - EXTRACHECKS_BUG_ON(session->scst_sess == NULL); + EXTRACHECKS_BUG_ON(!session->scst_sess); - scst_cmd = scst_rx_cmd(session->scst_sess, - (uint8_t *)&req_hdr->lun, sizeof(req_hdr->lun), - req_hdr->scb, sizeof(req_hdr->scb), SCST_NON_ATOMIC); - if (scst_cmd == NULL) { - res = create_preliminary_no_scst_rsp(req, SAM_STAT_BUSY, - NULL, 0); + scst_cmd = scst_rx_cmd(session->scst_sess, (uint8_t *)&req_hdr->lun, sizeof(req_hdr->lun), + req_hdr->scb, sizeof(req_hdr->scb), SCST_NON_ATOMIC); + if (!scst_cmd) { + res = create_preliminary_no_scst_rsp(req, SAM_STAT_BUSY, NULL, 0); goto out; } @@ -2054,25 +2006,23 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) if (unlikely(sz < 0)) { PRINT_ERROR("BIDI data transfer, but initiator not supplied Bidirectional Read Expected Data Transfer Length AHS"); set_scst_preliminary_status_rsp(req, true, - SCST_LOAD_SENSE(scst_sense_parameter_value_invalid)); + SCST_LOAD_SENSE(scst_sense_parameter_value_invalid)); } else { dir = SCST_DATA_BIDI; scst_cmd_set_expected(scst_cmd, dir, sz); scst_cmd_set_expected_out_transfer_len(scst_cmd, - be32_to_cpu(req_hdr->data_length)); + be32_to_cpu(req_hdr->data_length)); if (conn->transport->need_alloc_write_buf) scst_cmd_set_tgt_need_alloc_data_buf(scst_cmd); } } else if (req_hdr->flags & ISCSI_CMD_READ) { dir = SCST_DATA_READ; - scst_cmd_set_expected(scst_cmd, dir, - be32_to_cpu(req_hdr->data_length)); + scst_cmd_set_expected(scst_cmd, dir, be32_to_cpu(req_hdr->data_length)); if (conn->transport->need_alloc_write_buf) scst_cmd_set_tgt_need_alloc_data_buf(scst_cmd); } else if (req_hdr->flags & ISCSI_CMD_WRITE) { dir = SCST_DATA_WRITE; - scst_cmd_set_expected(scst_cmd, dir, - be32_to_cpu(req_hdr->data_length)); + scst_cmd_set_expected(scst_cmd, dir, be32_to_cpu(req_hdr->data_length)); } else { dir = SCST_DATA_NONE; scst_cmd_set_expected(scst_cmd, dir, 0); @@ -2096,7 +2046,7 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) break; default: PRINT_WARNING("Unknown task code %x, use ORDERED instead", - req_hdr->flags & ISCSI_CMD_ATTR_MASK); + req_hdr->flags & ISCSI_CMD_ATTR_MASK); scst_cmd_set_queue_type(scst_cmd, SCST_CMD_QUEUE_ORDERED); break; } @@ -2104,7 +2054,7 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) scst_cmd_set_tgt_sn(scst_cmd, req_hdr->cmd_sn); ahdr = (struct iscsi_ahs_hdr *)req->pdu.ahs; - if (ahdr != NULL) { + if (ahdr) { uint8_t *p = (uint8_t *)ahdr; unsigned int size = 0; @@ -2114,11 +2064,10 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) ahdr = (struct iscsi_ahs_hdr *)p; if (ahdr->ahstype == ISCSI_AHSTYPE_CDB) { - struct iscsi_cdb_ahdr *eca = - (struct iscsi_cdb_ahdr *)ahdr; + struct iscsi_cdb_ahdr *eca = (struct iscsi_cdb_ahdr *)ahdr; + scst_cmd_set_ext_cdb(scst_cmd, eca->cdb, - be16_to_cpu(ahdr->ahslength) - 1, - GFP_KERNEL); + be16_to_cpu(ahdr->ahslength) - 1, GFP_KERNEL); break; } s = 3 + be16_to_cpu(ahdr->ahslength); @@ -2129,7 +2078,7 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) } TRACE_DBG("START Command (itt %x, queue_type %d)", - req_hdr->itt, scst_cmd_get_queue_type(scst_cmd)); + req_hdr->itt, scst_cmd_get_queue_type(scst_cmd)); req->scst_state = ISCSI_CMD_STATE_RX_CMD; conn->rx_task = current; scst_cmd_init_stage1_done(scst_cmd, SCST_CONTEXT_DIRECT, 0); @@ -2137,11 +2086,11 @@ static int scsi_cmnd_start(struct iscsi_cmnd *req) conn->rx_task = NULL; #endif - if (req->scst_state != ISCSI_CMD_STATE_RX_CMD) + if (req->scst_state != ISCSI_CMD_STATE_RX_CMD) { res = req->conn->transport->iscsit_receive_cmnd_data(req); - else { + } else { TRACE_DBG("Delaying req %p post processing (scst_state %d)", - req, req->scst_state); + req, req->scst_state); res = 1; } @@ -2175,14 +2124,14 @@ static int data_out_start(struct iscsi_cmnd *cmnd) orig_req = cmnd_find_data_wait_hash(conn, req_hdr->itt); cmnd->cmd_req = orig_req; - if (unlikely(orig_req == NULL)) { + if (unlikely(!orig_req)) { /* * It shouldn't happen, since we don't abort any request until * we received all related PDUs from the initiator or timeout * them. Let's quietly drop such PDUs. */ TRACE_MGMT_DBG("Unable to find scsi task ITT %x", - cmnd->pdu.bhs.itt); + cmnd->pdu.bhs.itt); res = iscsi_preliminary_complete(cmnd, cmnd, true); goto out; } @@ -2195,9 +2144,9 @@ static int data_out_start(struct iscsi_cmnd *cmnd) goto go; } PRINT_ERROR("Data size (%d) > R2T length to receive (%d)", - cmnd->pdu.datasize, orig_req->r2t_len_to_receive); + cmnd->pdu.datasize, orig_req->r2t_len_to_receive); set_scst_preliminary_status_rsp(orig_req, false, - SCST_LOAD_SENSE(iscsi_sense_incorrect_amount_of_data)); + SCST_LOAD_SENSE(iscsi_sense_incorrect_amount_of_data)); goto go; } @@ -2206,8 +2155,8 @@ static int data_out_start(struct iscsi_cmnd *cmnd) orig_req_hdr = &orig_req->pdu.bhs; if (unlikely(orig_req_hdr->lun != req_hdr->lun)) { PRINT_ERROR("Wrong LUN (%lld) in Data-Out PDU (expected %lld), orig_req %p, cmnd %p", - (unsigned long long)req_hdr->lun, - (unsigned long long)orig_req_hdr->lun, orig_req, cmnd); + (unsigned long long)req_hdr->lun, + (unsigned long long)orig_req_hdr->lun, orig_req, cmnd); create_reject_rsp(orig_req, ISCSI_REASON_PROTOCOL_ERROR, false); goto go; } @@ -2221,7 +2170,7 @@ go: orig_req->data_out_in_data_receiving = 1; TRACE_WRITE("cmnd %p, orig_req %p, offset %u, datasize %u", cmnd, - orig_req, offset, cmnd->pdu.datasize); + orig_req, offset, cmnd->pdu.datasize); if (unlikely(orig_req->prelim_compl_flags != 0)) res = iscsi_preliminary_complete(cmnd, orig_req, true); @@ -2242,9 +2191,9 @@ static void data_out_end(struct iscsi_cmnd *cmnd) TRACE_ENTRY(); - EXTRACHECKS_BUG_ON(cmnd == NULL); + EXTRACHECKS_BUG_ON(!cmnd); req = cmnd->cmd_req; - if (unlikely(req == NULL)) + if (unlikely(!req)) goto out; TRACE_DBG("cmnd %p, req %p", cmnd, req); @@ -2285,9 +2234,9 @@ static void data_out_end(struct iscsi_cmnd *cmnd) } TRACE_DBG("req %p, FINAL %x, outstanding_r2t %d, r2t_len_to_receive %d, r2t_len_to_send %d", - req, req_hdr->flags & ISCSI_FLG_FINAL, - req->outstanding_r2t, req->r2t_len_to_receive, - req->r2t_len_to_send); + req, req_hdr->flags & ISCSI_FLG_FINAL, + req->outstanding_r2t, req->r2t_len_to_receive, + req->r2t_len_to_send); if (!(req_hdr->flags & ISCSI_FLG_FINAL)) goto out_put; @@ -2295,8 +2244,9 @@ static void data_out_end(struct iscsi_cmnd *cmnd) if (req->r2t_len_to_receive == 0) { if (!req->pending) iscsi_restart_cmnd(req); - } else if (req->r2t_len_to_send != 0) + } else if (req->r2t_len_to_send != 0) { send_r2t(req); + } out_put: cmnd_put(req); @@ -2304,7 +2254,6 @@ out_put: out: TRACE_EXIT(); - return; } /* Might be called under target_mutex and cmd_list_lock */ @@ -2320,14 +2269,14 @@ static void __cmnd_abort(struct iscsi_cmnd *cmnd) #endif TRACE_MGMT_DBG("Aborting cmd %p, scst_cmd %p (scst state %x, ref_cnt %d, on_write_timeout_list %d, write_start %ld, ITT %x, sn %u, op %x, r2t_len_to_receive %d, r2t_len_to_send %d, CDB op %x, size to write %u, outstanding_r2t %d, sess->exp_cmd_sn %u, conn %p, rd_task %p, read_cmnd %p, read_state %d)", - cmnd, cmnd->scst_cmd, cmnd->scst_state, - atomic_read(&cmnd->ref_cnt), cmnd->on_write_timeout_list, - cmnd->write_start, cmnd->pdu.bhs.itt, cmnd->pdu.bhs.sn, - cmnd_opcode(cmnd), cmnd->r2t_len_to_receive, - cmnd->r2t_len_to_send, cmnd_scsicode(cmnd), - cmnd_write_size(cmnd), cmnd->outstanding_r2t, - cmnd->conn->session->exp_cmd_sn, cmnd->conn, - rdt, cmnd->conn->read_cmnd, cmnd->conn->read_state); + cmnd, cmnd->scst_cmd, cmnd->scst_state, + atomic_read(&cmnd->ref_cnt), cmnd->on_write_timeout_list, + cmnd->write_start, cmnd->pdu.bhs.itt, cmnd->pdu.bhs.sn, + cmnd_opcode(cmnd), cmnd->r2t_len_to_receive, + cmnd->r2t_len_to_send, cmnd_scsicode(cmnd), + cmnd_write_size(cmnd), cmnd->outstanding_r2t, + cmnd->conn->session->exp_cmd_sn, cmnd->conn, + rdt, cmnd->conn->read_cmnd, cmnd->conn->read_state); /* * Lock to sync with iscsi_check_tm_data_wait_timeouts(), including @@ -2356,15 +2305,14 @@ static void __cmnd_abort(struct iscsi_cmnd *cmnd) spin_lock_bh(&conn->write_list_lock); if (!timer_pending(&conn->rsp_timer) || time_after(conn->rsp_timer.expires, timeout_time)) { - TRACE_MGMT_DBG("Mod timer on %ld (conn %p)", timeout_time, - conn); + TRACE_MGMT_DBG("Mod timer on %ld (conn %p)", + timeout_time, conn); mod_timer(&conn->rsp_timer, timeout_time); - } else + } else { TRACE_MGMT_DBG("Timer for conn %p is going to fire on %ld (timeout time %ld)", conn, conn->rsp_timer.expires, timeout_time); + } spin_unlock_bh(&conn->write_list_lock); - - return; } /* Must be called from the read or conn close thread */ @@ -2379,7 +2327,7 @@ static int cmnd_abort_pre_checks(struct iscsi_cmnd *req, int *status) if (!before(req_hdr->ref_cmd_sn, req_hdr->cmd_sn)) { TRACE(TRACE_MGMT, "ABORT TASK: RefCmdSN(%u) > CmdSN(%u)", - req_hdr->ref_cmd_sn, req_hdr->cmd_sn); + req_hdr->ref_cmd_sn, req_hdr->cmd_sn); *status = ISCSI_RESPONSE_UNKNOWN_TASK; goto out; } @@ -2400,23 +2348,20 @@ static int cmnd_abort_pre_checks(struct iscsi_cmnd *req, int *status) if (cmnd->pdu.bhs.opcode & ISCSI_OP_IMMEDIATE) { if (req_hdr->ref_cmd_sn != req_hdr->cmd_sn) { PRINT_ERROR("ABORT TASK: RefCmdSN(%u) != TM cmd CmdSN(%u) for immediate command %p", - req_hdr->ref_cmd_sn, req_hdr->cmd_sn, - cmnd); + req_hdr->ref_cmd_sn, req_hdr->cmd_sn, cmnd); *status = ISCSI_RESPONSE_FUNCTION_REJECTED; goto out_put; } } else { if (req_hdr->ref_cmd_sn != hdr->cmd_sn) { PRINT_ERROR("ABORT TASK: RefCmdSN(%u) != CmdSN(%u) for command %p", - req_hdr->ref_cmd_sn, req_hdr->cmd_sn, - cmnd); + req_hdr->ref_cmd_sn, req_hdr->cmd_sn, cmnd); *status = ISCSI_RESPONSE_FUNCTION_REJECTED; goto out_put; } } - if (before(req_hdr->cmd_sn, hdr->cmd_sn) || - (req_hdr->cmd_sn == hdr->cmd_sn)) { + if (before(req_hdr->cmd_sn, hdr->cmd_sn) || req_hdr->cmd_sn == hdr->cmd_sn) { PRINT_ERROR("ABORT TASK: SN mismatch: req SN %x, cmd SN %x, rtt %u", req_hdr->cmd_sn, hdr->cmd_sn, req_hdr->rtt); *status = ISCSI_RESPONSE_FUNCTION_REJECTED; @@ -2449,8 +2394,9 @@ static int cmnd_abort_pre_checks(struct iscsi_cmnd *req, int *status) req_hdr->cmd_sn)) { *status = ISCSI_RESPONSE_FUNCTION_COMPLETE; res = 0; - } else + } else { *status = ISCSI_RESPONSE_UNKNOWN_TASK; + } } out: @@ -2514,7 +2460,6 @@ static void iscsi_cmnd_abort_fn(struct work_struct *work) mempool_free(params, iscsi_cmnd_abort_mempool); TRACE_EXIT(); - return; } static void iscsi_on_abort_cmd(struct scst_cmd *scst_cmd) @@ -2524,9 +2469,9 @@ static void iscsi_on_abort_cmd(struct scst_cmd *scst_cmd) TRACE_ENTRY(); params = mempool_alloc(iscsi_cmnd_abort_mempool, GFP_ATOMIC); - if (params == NULL) { + if (!params) { PRINT_CRIT_ERROR("Unable to create iscsi_cmnd_abort_params, iSCSI cmnd for scst_cmd %p may not be aborted", - scst_cmd); + scst_cmd); goto out; } @@ -2542,7 +2487,6 @@ static void iscsi_on_abort_cmd(struct scst_cmd *scst_cmd) out: TRACE_EXIT(); - return; } /* Must be called from the read or conn close thread */ @@ -2557,8 +2501,7 @@ void conn_abort(struct iscsi_conn *conn) cancel_delayed_work_sync(&conn->nop_in_delayed_work); /* No locks, we are the only user */ - list_for_each_entry_safe(r, t, &conn->nop_req_list, - nop_req_list_entry) { + list_for_each_entry_safe(r, t, &conn->nop_req_list, nop_req_list_entry) { list_del(&r->nop_req_list_entry); cmnd_put(r); } @@ -2587,8 +2530,6 @@ again: } } spin_unlock_bh(&conn->cmd_list_lock); - - return; } /* @@ -2608,7 +2549,6 @@ void iscsi_drop_delayed_tm_rsp(struct iscsi_cmnd *tm_rsp) sBUG_ON(sess->tm_active < 0); TRACE_EXIT(); - return; } static void execute_task_management(struct iscsi_cmnd *req) @@ -2623,8 +2563,8 @@ static void execute_task_management(struct iscsi_cmnd *req) TRACE(TRACE_MGMT, "iSCSI TM fn %d", function); - TRACE_MGMT_DBG("TM req %p, ITT %x, RTT %x, sn %u, con %p", req, - req->pdu.bhs.itt, req_hdr->rtt, req_hdr->cmd_sn, conn); + TRACE_MGMT_DBG("TM req %p, ITT %x, RTT %x, sn %u, con %p", + req, req->pdu.bhs.itt, req_hdr->rtt, req_hdr->cmd_sn, conn); iscsi_extracheck_is_rd_thread(conn); @@ -2638,10 +2578,9 @@ static void execute_task_management(struct iscsi_cmnd *req) params.atomic = SCST_NON_ATOMIC; params.tgt_priv = req; - if ((function != ISCSI_FUNCTION_ABORT_TASK) && - (req_hdr->rtt != ISCSI_RESERVED_TAG)) { - PRINT_ERROR("Invalid RTT %x (TM fn %d)", req_hdr->rtt, - function); + if (function != ISCSI_FUNCTION_ABORT_TASK && req_hdr->rtt != ISCSI_RESERVED_TAG) { + PRINT_ERROR("Invalid RTT %x (TM fn %d)", + req_hdr->rtt, function); rc = -1; status = ISCSI_RESPONSE_FUNCTION_REJECTED; goto reject; @@ -2661,8 +2600,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.lun_set = 1; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; } break; @@ -2673,8 +2611,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.lun_set = 1; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; break; case ISCSI_FUNCTION_CLEAR_TASK_SET: @@ -2684,8 +2621,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.lun_set = 1; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; break; case ISCSI_FUNCTION_CLEAR_ACA: @@ -2695,8 +2631,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.lun_set = 1; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; break; case ISCSI_FUNCTION_TARGET_COLD_RESET: @@ -2704,8 +2639,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.fn = SCST_TARGET_RESET; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; break; case ISCSI_FUNCTION_LOGICAL_UNIT_RESET: @@ -2715,8 +2649,7 @@ static void execute_task_management(struct iscsi_cmnd *req) params.lun_set = 1; params.cmd_sn = req_hdr->cmd_sn; params.cmd_sn_set = 1; - rc = scst_rx_mgmt_fn(conn->session->scst_sess, - ¶ms); + rc = scst_rx_mgmt_fn(conn->session->scst_sess, ¶ms); status = ISCSI_RESPONSE_FUNCTION_REJECTED; break; case ISCSI_FUNCTION_TASK_REASSIGN: @@ -2733,8 +2666,6 @@ static void execute_task_management(struct iscsi_cmnd *req) reject: if (rc != 0) iscsi_send_task_mgmt_resp(req, status, false); - - return; } static void iscsi_tcp_set_req_data(struct iscsi_cmnd *req, @@ -2764,9 +2695,9 @@ static void nop_out_exec(struct iscsi_cmnd *req) rsp_hdr->ttt = ISCSI_RESERVED_TAG; if (req->pdu.datasize) - sBUG_ON(req->sg == NULL); + sBUG_ON(!req->sg); else - sBUG_ON(req->sg != NULL); + sBUG_ON(req->sg); if (req->bufflen) req->conn->transport->iscsit_set_req_data(req, rsp); @@ -2784,8 +2715,7 @@ static void nop_out_exec(struct iscsi_cmnd *req) be32_to_cpu(req->pdu.bhs.ttt)); spin_lock_bh(&conn->nop_req_list_lock); - list_for_each_entry(r, &conn->nop_req_list, - nop_req_list_entry) { + list_for_each_entry(r, &conn->nop_req_list, nop_req_list_entry) { if (req->pdu.bhs.ttt == r->pdu.bhs.ttt) { list_del(&r->nop_req_list_entry); found = true; @@ -2803,7 +2733,6 @@ static void nop_out_exec(struct iscsi_cmnd *req) req_cmnd_release(req); TRACE_EXIT(); - return; } static void logout_exec(struct iscsi_cmnd *req) @@ -2813,7 +2742,7 @@ static void logout_exec(struct iscsi_cmnd *req) struct iscsi_logout_rsp_hdr *rsp_hdr; PRINT_INFO("Logout received from initiator %s", - req->conn->session->initiator_name); + req->conn->session->initiator_name); TRACE_DBG("%p", req); req_hdr = (struct iscsi_logout_req_hdr *)&req->pdu.bhs; @@ -2825,16 +2754,14 @@ static void logout_exec(struct iscsi_cmnd *req) rsp->should_close_conn = 1; req_cmnd_release(req); - - return; } static void iscsi_cmnd_exec(struct iscsi_cmnd *cmnd) { TRACE_ENTRY(); - TRACE_DBG("cmnd %p, op %x, SN %u", cmnd, cmnd_opcode(cmnd), - cmnd->pdu.bhs.sn); + TRACE_DBG("cmnd %p, op %x, SN %u", + cmnd, cmnd_opcode(cmnd), cmnd->pdu.bhs.sn); iscsi_extracheck_is_rd_thread(cmnd->conn); @@ -2871,7 +2798,6 @@ static void iscsi_cmnd_exec(struct iscsi_cmnd *cmnd) out: TRACE_EXIT(); - return; } static inline void set_cork(struct socket *sock, int on) @@ -2884,7 +2810,6 @@ static inline void set_cork(struct socket *sock, int on) sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, KERNEL_SOCKPTR(&opt), sizeof(opt)); set_fs(oldfs); - return; } void cmnd_tx_start(struct iscsi_cmnd *cmnd) @@ -2927,8 +2852,8 @@ void cmnd_tx_start(struct iscsi_cmnd *cmnd) (struct iscsi_data_in_hdr *)&cmnd->pdu.bhs; u32 offset = be32_to_cpu(rsp->buffer_offset); - TRACE_DBG("cmnd %p, offset %u, datasize %u, bufflen %u", cmnd, - offset, cmnd->pdu.datasize, cmnd->bufflen); + TRACE_DBG("cmnd %p, offset %u, datasize %u, bufflen %u", + cmnd, offset, cmnd->pdu.datasize, cmnd->bufflen); sBUG_ON(offset > cmnd->bufflen); sBUG_ON(offset + cmnd->pdu.datasize > cmnd->bufflen); @@ -2956,7 +2881,6 @@ void cmnd_tx_start(struct iscsi_cmnd *cmnd) } iscsi_dump_pdu(&cmnd->pdu); - return; } void cmnd_tx_end(struct iscsi_cmnd *cmnd) @@ -2964,8 +2888,8 @@ void cmnd_tx_end(struct iscsi_cmnd *cmnd) struct iscsi_conn *conn = cmnd->conn; TRACE_DBG("%p:%x (should_close_conn %d, should_close_all_conn %d)", - cmnd, cmnd_opcode(cmnd), cmnd->should_close_conn, - cmnd->should_close_all_conn); + cmnd, cmnd_opcode(cmnd), cmnd->should_close_conn, + cmnd->should_close_all_conn); #ifdef CONFIG_SCST_EXTRACHECKS switch (cmnd_opcode(cmnd)) { @@ -2988,8 +2912,7 @@ void cmnd_tx_end(struct iscsi_cmnd *cmnd) if (unlikely(cmnd->should_close_conn)) { if (cmnd->should_close_all_conn) { - struct iscsi_target *target = - cmnd->conn->session->target; + struct iscsi_target *target = cmnd->conn->session->target; PRINT_INFO("Closing all connections for target %x at initiator's %s request", target->tid, conn->session->initiator_name); @@ -3005,7 +2928,6 @@ void cmnd_tx_end(struct iscsi_cmnd *cmnd) } set_cork(cmnd->conn->sock, 0); - return; } /* @@ -3026,17 +2948,17 @@ static void iscsi_push_cmnd(struct iscsi_cmnd *cmnd) u32 cmd_sn; TRACE_DBG("cmnd %p, iSCSI opcode %x, sn %u, exp sn %u", cmnd, - cmnd_opcode(cmnd), cmnd->pdu.bhs.sn, session->exp_cmd_sn); + cmnd_opcode(cmnd), cmnd->pdu.bhs.sn, session->exp_cmd_sn); iscsi_extracheck_is_rd_thread(cmnd->conn); - sBUG_ON(cmnd->parent_req != NULL); + sBUG_ON(cmnd->parent_req); if (cmnd->pdu.bhs.opcode & ISCSI_OP_IMMEDIATE) { TRACE_DBG("Immediate cmd %p (cmd_sn %u)", cmnd, - cmnd->pdu.bhs.sn); + cmnd->pdu.bhs.sn); iscsi_cmnd_exec(cmnd); - goto out; + return; } spin_lock(&session->sn_lock); @@ -3069,9 +2991,8 @@ static void iscsi_push_cmnd(struct iscsi_cmnd *cmnd) if (list_empty(&session->pending_list)) break; - cmnd = list_first_entry(&session->pending_list, - struct iscsi_cmnd, - pending_list_entry); + cmnd = list_first_entry(&session->pending_list, struct iscsi_cmnd, + pending_list_entry); if (cmnd->pdu.bhs.sn != cmd_sn) break; @@ -3079,13 +3000,13 @@ static void iscsi_push_cmnd(struct iscsi_cmnd *cmnd) cmnd->pending = 0; TRACE_MGMT_DBG("Processing pending cmd %p (cmd_sn %u)", - cmnd, cmd_sn); + cmnd, cmd_sn); } } else { int drop = 0; TRACE_DBG("Pending cmd %p (cmd_sn %u, exp_cmd_sn %u)", - cmnd, cmd_sn, session->exp_cmd_sn); + cmnd, cmd_sn, session->exp_cmd_sn); /* * iSCSI RFC 3720: "The target MUST silently ignore any @@ -3100,8 +3021,8 @@ static void iscsi_push_cmnd(struct iscsi_cmnd *cmnd) if (unlikely(before(cmd_sn, session->exp_cmd_sn))) { TRACE_MGMT_DBG("Ignoring out of expected range cmd_sn (sn %u, e... [truncated message content] |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:36:32
|
Commit: 1414c9d GitHub URL: https://github.com/SCST-project/scst/commit/1414c9dda3c9a72d116d823a41522d44af38e630 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/conn.c | 181 ++++++--------- iscsi-scst/kernel/digest.c | 22 +- iscsi-scst/kernel/event.c | 12 +- 3 files changed, 89 insertions(+), 126 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/conn.c b/iscsi-scst/kernel/conn.c index 487cf65..57ac05c 100644 --- a/iscsi-scst/kernel/conn.c +++ b/iscsi-scst/kernel/conn.c @@ -71,7 +71,6 @@ out: return pos; } - static void iscsi_conn_release(struct kobject *kobj) { struct iscsi_conn *conn; @@ -79,25 +78,22 @@ static void iscsi_conn_release(struct kobject *kobj) TRACE_ENTRY(); conn = container_of(kobj, struct iscsi_conn, conn_kobj); - if (conn->conn_kobj_release_cmpl != NULL) + if (conn->conn_kobj_release_cmpl) complete_all(conn->conn_kobj_release_cmpl); TRACE_EXIT(); - return; } struct kobj_type iscsi_conn_ktype = { .release = iscsi_conn_release, }; -static ssize_t iscsi_get_initiator_ip(struct iscsi_conn *conn, - char *buf, int size) +static ssize_t iscsi_get_initiator_ip(struct iscsi_conn *conn, char *buf, int size) { return conn->transport->iscsit_get_initiator_ip(conn, buf, size); } -static ssize_t iscsi_conn_ip_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_conn_ip_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int pos; struct iscsi_conn *conn; @@ -113,10 +109,9 @@ static ssize_t iscsi_conn_ip_show(struct kobject *kobj, } static struct kobj_attribute iscsi_conn_ip_attr = - __ATTR(ip, S_IRUGO, iscsi_conn_ip_show, NULL); + __ATTR(ip, 0444, iscsi_conn_ip_show, NULL); -static ssize_t iscsi_get_target_ip(struct iscsi_conn *conn, - char *buf, int size) +static ssize_t iscsi_get_target_ip(struct iscsi_conn *conn, char *buf, int size) { int pos; struct sock *sk; @@ -129,8 +124,7 @@ static ssize_t iscsi_get_target_ip(struct iscsi_conn *conn, sk = conn->sock->sk; switch (sk->sk_family) { case AF_INET: - pos = scnprintf(buf, size, - "%pI4", &inet_sk(sk)->inet_saddr); + pos = scnprintf(buf, size, "%pI4", &inet_sk(sk)->inet_saddr); break; #ifdef CONFIG_IPV6 case AF_INET6: @@ -142,8 +136,7 @@ static ssize_t iscsi_get_target_ip(struct iscsi_conn *conn, #endif break; default: - pos = scnprintf(buf, size, "Unknown family %d", - sk->sk_family); + pos = scnprintf(buf, size, "Unknown family %d", sk->sk_family); break; } @@ -151,8 +144,8 @@ static ssize_t iscsi_get_target_ip(struct iscsi_conn *conn, return pos; } -static ssize_t iscsi_conn_target_ip_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_conn_target_ip_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) { int pos; struct iscsi_conn *conn; @@ -168,10 +161,9 @@ static ssize_t iscsi_conn_target_ip_show(struct kobject *kobj, } static struct kobj_attribute iscsi_conn_target_ip_attr = - __ATTR(target_ip, S_IRUGO, iscsi_conn_target_ip_show, NULL); + __ATTR(target_ip, 0444, iscsi_conn_target_ip_show, NULL); -static ssize_t iscsi_conn_cid_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_conn_cid_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int pos; struct iscsi_conn *conn; @@ -187,10 +179,9 @@ static ssize_t iscsi_conn_cid_show(struct kobject *kobj, } static struct kobj_attribute iscsi_conn_cid_attr = - __ATTR(cid, S_IRUGO, iscsi_conn_cid_show, NULL); + __ATTR(cid, 0444, iscsi_conn_cid_show, NULL); -static ssize_t iscsi_conn_state_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_conn_state_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int pos; struct iscsi_conn *conn; @@ -206,7 +197,7 @@ static ssize_t iscsi_conn_state_show(struct kobject *kobj, } static struct kobj_attribute iscsi_conn_state_attr = - __ATTR(state, S_IRUGO, iscsi_conn_state_show, NULL); + __ATTR(state, 0444, iscsi_conn_state_show, NULL); static void conn_sysfs_del(struct iscsi_conn *conn) { @@ -223,7 +214,6 @@ static void conn_sysfs_del(struct iscsi_conn *conn) &scst_conn_dep_map); TRACE_EXIT(); - return; } int conn_sysfs_add(struct iscsi_conn *conn) @@ -257,44 +247,40 @@ restart: } res = kobject_init_and_add(&conn->conn_kobj, &iscsi_conn_ktype, - scst_sysfs_get_sess_kobj(session->scst_sess), addr); + scst_sysfs_get_sess_kobj(session->scst_sess), addr); if (res != 0) { PRINT_ERROR("Unable create sysfs entries for conn %s", - addr); + addr); goto out; } TRACE_DBG("conn %p, conn_kobj %p", conn, &conn->conn_kobj); - res = sysfs_create_file(&conn->conn_kobj, - &iscsi_conn_state_attr.attr); + res = sysfs_create_file(&conn->conn_kobj, &iscsi_conn_state_attr.attr); if (res != 0) { PRINT_ERROR("Unable create sysfs attribute %s for conn %s", - iscsi_conn_state_attr.attr.name, addr); + iscsi_conn_state_attr.attr.name, addr); goto out_err; } - res = sysfs_create_file(&conn->conn_kobj, - &iscsi_conn_cid_attr.attr); + res = sysfs_create_file(&conn->conn_kobj, &iscsi_conn_cid_attr.attr); if (res != 0) { PRINT_ERROR("Unable create sysfs attribute %s for conn %s", - iscsi_conn_cid_attr.attr.name, addr); + iscsi_conn_cid_attr.attr.name, addr); goto out_err; } - res = sysfs_create_file(&conn->conn_kobj, - &iscsi_conn_ip_attr.attr); + res = sysfs_create_file(&conn->conn_kobj, &iscsi_conn_ip_attr.attr); if (res != 0) { PRINT_ERROR("Unable create sysfs attribute %s for conn %s", - iscsi_conn_ip_attr.attr.name, addr); + iscsi_conn_ip_attr.attr.name, addr); goto out_err; } - res = sysfs_create_file(&conn->conn_kobj, - &iscsi_conn_target_ip_attr.attr); + res = sysfs_create_file(&conn->conn_kobj, &iscsi_conn_target_ip_attr.attr); if (res != 0) { PRINT_ERROR("Unable create sysfs attribute %s for conn %s", - iscsi_conn_target_ip_attr.attr.name, addr); + iscsi_conn_target_ip_attr.attr.name, addr); goto out_err; } @@ -308,7 +294,6 @@ out_err: } EXPORT_SYMBOL(conn_sysfs_add); - /* target_mutex supposed to be locked */ struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid) { @@ -320,8 +305,7 @@ struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid) * We need to find the latest conn to correctly handle * multi-reinstatements */ - list_for_each_entry_reverse(conn, &session->conn_list, - conn_list_entry) { + list_for_each_entry_reverse(conn, &session->conn_list, conn_list_entry) { if (conn->cid == cid && !conn->closing) return conn; } @@ -336,8 +320,8 @@ void iscsi_make_conn_rd_active(struct iscsi_conn *conn) spin_lock_bh(&p->rd_lock); - TRACE_DBG("conn %p, rd_state %x, rd_data_ready %d", conn, - conn->rd_state, conn->rd_data_ready); + TRACE_DBG("conn %p, rd_state %x, rd_data_ready %d", + conn, conn->rd_state, conn->rd_data_ready); /* * Let's start processing ASAP not waiting for all the being waited @@ -357,7 +341,6 @@ void iscsi_make_conn_rd_active(struct iscsi_conn *conn) spin_unlock_bh(&p->rd_lock); TRACE_EXIT(); - return; } void iscsi_make_conn_wr_active(struct iscsi_conn *conn) @@ -369,7 +352,7 @@ void iscsi_make_conn_wr_active(struct iscsi_conn *conn) spin_lock_bh(&p->wr_lock); TRACE_DBG("conn %p, wr_state %x, wr_space_ready %d", conn, - conn->wr_state, conn->wr_space_ready); + conn->wr_state, conn->wr_space_ready); /* * Let's start sending waiting to be sent data ASAP, even if there's @@ -387,7 +370,6 @@ void iscsi_make_conn_wr_active(struct iscsi_conn *conn) spin_unlock_bh(&p->wr_lock); TRACE_EXIT(); - return; } void iscsi_tcp_mark_conn_closed(struct iscsi_conn *conn, int flags) @@ -424,15 +406,15 @@ static void __iscsi_state_change(struct sock *sk) if (!conn->closing) { PRINT_ERROR("Connection %p with initiator %s unexpectedly closed!", conn, conn->session->initiator_name); - TRACE_MGMT_DBG("conn %p, sk state %d", conn, - sk->sk_state); + TRACE_MGMT_DBG("conn %p, sk state %d", + conn, sk->sk_state); __mark_conn_closed(conn, 0); } - } else + } else { iscsi_make_conn_rd_active(conn); + } TRACE_EXIT(); - return; } static void iscsi_state_change(struct sock *sk) @@ -441,8 +423,6 @@ static void iscsi_state_change(struct sock *sk) __iscsi_state_change(sk); conn->old_state_change(sk); - - return; } #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)) @@ -464,7 +444,6 @@ static void iscsi_data_ready(struct sock *sk, int len) #endif TRACE_EXIT(); - return; } void __iscsi_write_space_ready(struct iscsi_conn *conn) @@ -484,7 +463,6 @@ void __iscsi_write_space_ready(struct iscsi_conn *conn) spin_unlock_bh(&p->wr_lock); TRACE_EXIT(); - return; } static void iscsi_write_space_ready(struct sock *sk) @@ -500,7 +478,6 @@ static void iscsi_write_space_ready(struct sock *sk) conn->old_write_space(sk); TRACE_EXIT(); - return; } static void conn_rsp_timer_fn(struct timer_list *timer) @@ -518,19 +495,18 @@ static void conn_rsp_timer_fn(struct timer_list *timer) if (!list_empty(&conn->write_timeout_list)) { unsigned long timeout_time; - cmnd = list_first_entry(&conn->write_timeout_list, - struct iscsi_cmnd, write_timeout_list_entry); + cmnd = list_first_entry(&conn->write_timeout_list, struct iscsi_cmnd, + write_timeout_list_entry); - timeout_time = iscsi_get_timeout_time(cmnd) + - ISCSI_ADD_SCHED_TIME; + timeout_time = iscsi_get_timeout_time(cmnd) + ISCSI_ADD_SCHED_TIME; if (unlikely(time_after_eq(j, iscsi_get_timeout_time(cmnd)))) { if (!conn->closing) { PRINT_ERROR("Timeout %ld sec sending data/waiting for reply to/from initiator %s (SID %llx), closing connection %p", - iscsi_get_timeout(cmnd)/HZ, - conn->session->initiator_name, - (unsigned long long)conn->session->sid, - conn); + iscsi_get_timeout(cmnd) / HZ, + conn->session->initiator_name, + (unsigned long long)conn->session->sid, + conn); /* * We must call mark_conn_closed() outside of * write_list_lock or we will have a circular @@ -543,7 +519,7 @@ static void conn_rsp_timer_fn(struct timer_list *timer) } else if (!timer_pending(&conn->rsp_timer) || time_after(conn->rsp_timer.expires, timeout_time)) { TRACE_DBG("Restarting timer on %ld (conn %p)", - timeout_time, conn); + timeout_time, conn); /* * Timer might have been restarted while we were * entering here. @@ -565,7 +541,6 @@ static void conn_rsp_timer_fn(struct timer_list *timer) out: TRACE_EXIT(); - return; } static void conn_nop_in_delayed_work_fn(struct work_struct *work) @@ -583,8 +558,7 @@ static void conn_nop_in_delayed_work_fn(struct work_struct *work) next_timeout = conn->nop_in_interval; } - if ((conn->nop_in_interval > 0) && - !test_bit(ISCSI_CONN_SHUTTINGDOWN, &conn->conn_aflags)) { + if (conn->nop_in_interval > 0 && !test_bit(ISCSI_CONN_SHUTTINGDOWN, &conn->conn_aflags)) { if (next_timeout == 0) next_timeout = conn->nop_in_interval - (jiffies - conn->last_rcv_time); @@ -595,7 +569,6 @@ static void conn_nop_in_delayed_work_fn(struct work_struct *work) } TRACE_EXIT(); - return; } /* Must be called from rd thread only */ @@ -610,9 +583,9 @@ void iscsi_check_tm_data_wait_timeouts(struct iscsi_conn *conn, bool force) TRACE_ENTRY(); TRACE_DBG_FLAG(TRACE_MGMT_DEBUG, - "conn %p, read_cmnd %p, read_state %d, j %ld (TIMEOUT %d, force %d)", - conn, conn->read_cmnd, conn->read_state, j, - ISCSI_TM_DATA_WAIT_TIMEOUT + ISCSI_ADD_SCHED_TIME, force); + "conn %p, read_cmnd %p, read_state %d, j %ld (TIMEOUT %d, force %d)", + conn, conn->read_cmnd, conn->read_state, j, + ISCSI_TM_DATA_WAIT_TIMEOUT + ISCSI_ADD_SCHED_TIME, force); iscsi_extracheck_is_rd_thread(conn); @@ -621,21 +594,19 @@ again: spin_lock(&conn->write_list_lock); aborted_cmds_pending = false; - list_for_each_entry(cmnd, &conn->write_timeout_list, - write_timeout_list_entry) { + list_for_each_entry(cmnd, &conn->write_timeout_list, write_timeout_list_entry) { /* * This should not happen, because DATA OUT commands can't get * into write_timeout_list. */ - sBUG_ON(cmnd->cmd_req != NULL); + sBUG_ON(cmnd->cmd_req); if (test_bit(ISCSI_CMD_ABORTED, &cmnd->prelim_compl_flags)) { TRACE_MGMT_DBG("Checking aborted cmnd %p (scst_state %d, on_write_timeout_list %d, write_start %ld, r2t_len_to_receive %d)", - cmnd, - cmnd->scst_state, cmnd->on_write_timeout_list, - cmnd->write_start, cmnd->r2t_len_to_receive); - if ((cmnd == conn->read_cmnd) || - cmnd->data_out_in_data_receiving) { + cmnd, + cmnd->scst_state, cmnd->on_write_timeout_list, + cmnd->write_start, cmnd->r2t_len_to_receive); + if (cmnd == conn->read_cmnd || cmnd->data_out_in_data_receiving) { sBUG_ON((cmnd == conn->read_cmnd) && force); /* * We can't abort command waiting for data from @@ -645,14 +616,13 @@ again: * action and close this connection. */ TRACE_MGMT_DBG("Aborted cmnd %p is %s, keep waiting", - cmnd, - (cmnd == conn->read_cmnd) ? "RX cmnd" : - "waiting for DATA OUT data"); + cmnd, + cmnd == conn->read_cmnd ? "RX cmnd" : + "waiting for DATA OUT data"); goto cont; } - if ((cmnd->r2t_len_to_receive != 0) && - (time_after_eq(j, cmnd->write_start + - ISCSI_TM_DATA_WAIT_TIMEOUT) || + if (cmnd->r2t_len_to_receive != 0 && + (time_after_eq(j, cmnd->write_start + ISCSI_TM_DATA_WAIT_TIMEOUT) || force)) { spin_unlock(&conn->write_list_lock); spin_unlock_bh(&conn->conn_thr_pool->rd_lock); @@ -669,7 +639,7 @@ cont: (!timer_pending(&conn->rsp_timer) || time_after(conn->rsp_timer.expires, timeout_time))) { TRACE_MGMT_DBG("Mod timer on %ld (conn %p)", - timeout_time, conn); + timeout_time, conn); mod_timer(&conn->rsp_timer, timeout_time); } } else { @@ -681,7 +651,6 @@ cont: spin_unlock_bh(&conn->conn_thr_pool->rd_lock); TRACE_EXIT(); - return; } /* target_mutex supposed to be locked */ @@ -694,9 +663,9 @@ void conn_reinst_finished(struct iscsi_conn *conn) clear_bit(ISCSI_CONN_REINSTATING, &conn->conn_aflags); list_for_each_entry_safe(cmnd, t, &conn->reinst_pending_cmd_list, - reinst_pending_cmd_list_entry) { + reinst_pending_cmd_list_entry) { TRACE_MGMT_DBG("Restarting reinst pending cmnd %p", - cmnd); + cmnd); list_del(&cmnd->reinst_pending_cmd_list_entry); @@ -707,7 +676,6 @@ void conn_reinst_finished(struct iscsi_conn *conn) } TRACE_EXIT(); - return; } int conn_activate(struct iscsi_conn *conn) @@ -750,7 +718,7 @@ static int conn_setup_sock(struct iscsi_conn *conn) conn->sock = SOCKET_I(file_inode(conn->file)); #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0) - if (conn->sock->ops->sendpage == NULL) { + if (!conn->sock->ops->sendpage) { PRINT_ERROR("Socket for sid %llx doesn't support sendpage()", (unsigned long long)session->sid); return -EINVAL; @@ -790,8 +758,8 @@ void conn_free(struct iscsi_conn *conn) TRACE_ENTRY(); TRACE(TRACE_MGMT, "Freeing conn %p (sess=%p, %#Lx %u, initiator %s)", - conn, session, (unsigned long long)session->sid, conn->cid, - session->scst_sess->initiator_name); + conn, session, (unsigned long long)session->sid, conn->cid, + session->scst_sess->initiator_name); lockdep_assert_held(&conn->target->target_mutex); @@ -803,7 +771,7 @@ void conn_free(struct iscsi_conn *conn) sBUG_ON(!list_empty(&conn->cmd_list)); sBUG_ON(!list_empty(&conn->write_list)); sBUG_ON(!list_empty(&conn->write_timeout_list)); - sBUG_ON(conn->conn_reinst_successor != NULL); + sBUG_ON(conn->conn_reinst_successor); sBUG_ON(!test_bit(ISCSI_CONN_SHUTTINGDOWN, &conn->conn_aflags)); /* Just in case if new conn gets freed before the old one */ @@ -811,8 +779,7 @@ void conn_free(struct iscsi_conn *conn) struct iscsi_conn *c; TRACE_MGMT_DBG("Freeing being reinstated conn %p", conn); - list_for_each_entry(c, &session->conn_list, - conn_list_entry) { + list_for_each_entry(c, &session->conn_list, conn_list_entry) { if (c->conn_reinst_successor == conn) { c->conn_reinst_successor = NULL; break; @@ -825,7 +792,7 @@ void conn_free(struct iscsi_conn *conn) conn->transport->iscsit_conn_free(conn); if (list_empty(&session->conn_list)) { - sBUG_ON(session->sess_reinst_successor != NULL); + sBUG_ON(session->sess_reinst_successor); session_free(session, true); } } @@ -877,7 +844,7 @@ int iscsi_init_conn(struct iscsi_session *session, if (conn->nop_in_interval > 0) { TRACE_DBG("Schedule Nop-In work for conn %p", conn); schedule_delayed_work(&conn->nop_in_delayed_work, - conn->nop_in_interval + ISCSI_ADD_SCHED_TIME); + conn->nop_in_interval + ISCSI_ADD_SCHED_TIME); } return 0; @@ -885,9 +852,8 @@ int iscsi_init_conn(struct iscsi_session *session, EXPORT_SYMBOL(iscsi_init_conn); /* target_mutex supposed to be locked */ -int iscsi_conn_alloc(struct iscsi_session *session, - struct iscsi_kern_conn_info *info, struct iscsi_conn **new_conn, - struct iscsit_transport *t) +int iscsi_conn_alloc(struct iscsi_session *session, struct iscsi_kern_conn_info *info, + struct iscsi_conn **new_conn, struct iscsit_transport *t) { struct iscsi_conn *conn; int res = 0; @@ -909,7 +875,7 @@ int iscsi_conn_alloc(struct iscsi_session *session, /* Changing it, change ISCSI_CONN_IOV_MAX as well !! */ conn->read_iov = (void *)get_zeroed_page(GFP_KERNEL); - if (conn->read_iov == NULL) { + if (!conn->read_iov) { res = -ENOMEM; goto out_err_free_conn; } @@ -959,8 +925,7 @@ int __add_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info) lockdep_assert_held(&session->target->target_mutex); conn = conn_lookup(session, info->cid); - if ((conn != NULL) && - !test_bit(ISCSI_CONN_SHUTTINGDOWN, &conn->conn_aflags)) { + if (conn && !test_bit(ISCSI_CONN_SHUTTINGDOWN, &conn->conn_aflags)) { /* conn reinstatement */ reinstatement = true; } else if (!list_empty(&session->conn_list)) { @@ -982,8 +947,8 @@ int __add_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info) goto out; if (reinstatement) { - TRACE(TRACE_MGMT, "Reinstating conn (old %p, new %p)", conn, - new_conn); + TRACE(TRACE_MGMT, "Reinstating conn (old %p, new %p)", + conn, new_conn); conn->conn_reinst_successor = new_conn; __set_bit(ISCSI_CONN_REINSTATING, &new_conn->conn_aflags); __mark_conn_closed(conn, 0); @@ -1008,9 +973,9 @@ int __del_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info) } PRINT_INFO("Deleting connection with initiator %s (%p)", - conn->session->initiator_name, conn); + conn->session->initiator_name, conn); - __mark_conn_closed(conn, ISCSI_CONN_ACTIVE_CLOSE|ISCSI_CONN_DELETING); + __mark_conn_closed(conn, ISCSI_CONN_ACTIVE_CLOSE | ISCSI_CONN_DELETING); return 0; } diff --git a/iscsi-scst/kernel/digest.c b/iscsi-scst/kernel/digest.c index baca70b..37796b5 100644 --- a/iscsi-scst/kernel/digest.c +++ b/iscsi-scst/kernel/digest.c @@ -54,8 +54,7 @@ int digest_init(struct iscsi_conn *conn) return 0; } -static __be32 evaluate_crc32_from_sg(struct scatterlist *sg, int nbytes, - uint32_t padding) +static __be32 evaluate_crc32_from_sg(struct scatterlist *sg, int nbytes, uint32_t padding) { u32 crc = ~0; @@ -103,8 +102,7 @@ static __be32 digest_header(struct iscsi_pdu *pdu) return evaluate_crc32_from_sg(sg, nbytes, 0); } -static __be32 digest_data(struct iscsi_cmnd *cmd, u32 size, u32 offset, - uint32_t padding) +static __be32 digest_data(struct iscsi_cmnd *cmd, u32 size, u32 offset, uint32_t padding) { struct scatterlist *sg = cmd->sg; int idx, count; @@ -163,7 +161,7 @@ int digest_rx_data(struct iscsi_cmnd *cmnd) switch (cmnd_opcode(cmnd)) { case ISCSI_OP_SCSI_DATA_OUT: req = cmnd->cmd_req; - if (unlikely(req == NULL)) { + if (unlikely(!req)) { /* It can be for prelim completed commands */ req = cmnd; goto out; @@ -197,22 +195,22 @@ int digest_rx_data(struct iscsi_cmnd *cmnd) */ if (unlikely(offset + cmnd->pdu.datasize > req->bufflen)) { PRINT_WARNING("Skipping RX data digest check for residual overflow command op %x (data size %d, buffer size %d)", - cmnd_hdr(req)->scb[0], offset + cmnd->pdu.datasize, - req->bufflen); + cmnd_hdr(req)->scb[0], offset + cmnd->pdu.datasize, + req->bufflen); goto out; } - crc = digest_data(req, cmnd->pdu.datasize, offset, - cmnd->conn->rpadding); + crc = digest_data(req, cmnd->pdu.datasize, offset, cmnd->conn->rpadding); if (unlikely(crc != cmnd->ddigest)) { PRINT_ERROR("RX data digest failed, stable pages disabled?"); TRACE_MGMT_DBG("Calculated crc %x, ddigest %x, offset %d", crc, - cmnd->ddigest, offset); + cmnd->ddigest, offset); iscsi_dump_pdu(&cmnd->pdu); res = -EIO; - } else + } else { TRACE_DBG("RX data digest OK for cmd %p", cmnd); + } out: return res; @@ -240,5 +238,5 @@ void digest_tx_data(struct iscsi_cmnd *cmnd) cmnd->ddigest = digest_data(cmnd, cmnd->pdu.datasize, offset, 0); TRACE_DBG("TX data digest for cmd %p: %x (offset %d, opcode %x)", cmnd, - cmnd->ddigest, offset, cmnd_opcode(cmnd)); + cmnd->ddigest, offset, cmnd_opcode(cmnd)); } diff --git a/iscsi-scst/kernel/event.c b/iscsi-scst/kernel/event.c index f40234c..235acb3 100644 --- a/iscsi-scst/kernel/event.c +++ b/iscsi-scst/kernel/event.c @@ -39,6 +39,7 @@ static inline void netlink_ack_backport(struct sk_buff *in_skb, WARN_ON_ONCE(extack); netlink_ack(in_skb, nlh, err); } + #define netlink_ack netlink_ack_backport #endif @@ -98,7 +99,7 @@ static int __event_send(const void *buf, int buf_len) len = NLMSG_SPACE(buf_len); skb = alloc_skb(len, GFP_KERNEL); - if (skb == NULL) { + if (!skb) { PRINT_ERROR("alloc_skb() failed (len %d)", len); res = -ENOMEM; goto out; @@ -123,17 +124,16 @@ out: return res; } -int event_send(u32 tid, u64 sid, u32 cid, u32 cookie, - enum iscsi_kern_event_code code, - const char *param1, const char *param2) +int event_send(u32 tid, u64 sid, u32 cid, u32 cookie, enum iscsi_kern_event_code code, + const char *param1, const char *param2) { int err; static DEFINE_MUTEX(event_mutex); struct iscsi_kern_event event = {}; int param1_size, param2_size; - param1_size = (param1 != NULL) ? strlen(param1) : 0; - param2_size = (param2 != NULL) ? strlen(param2) : 0; + param1_size = param1 ? strlen(param1) : 0; + param2_size = param2 ? strlen(param2) : 0; event.tid = tid; event.sid = sid; |
From: Gleb C. <lna...@ya...> - 2024-11-16 11:34:33
|
Commit: ec80741 GitHub URL: https://github.com/SCST-project/scst/commit/ec80741a240fef961d67ef187ad0c1fb3c992478 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/config.c | 190 +++++++-------- scripts/checkpatch | 2 + 2 files changed, 88 insertions(+), 104 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/config.c b/iscsi-scst/kernel/config.c index 307775f..7a4b053 100644 --- a/iscsi-scst/kernel/config.c +++ b/iscsi-scst/kernel/config.c @@ -20,12 +20,10 @@ /* Protected by target_mgmt_mutex */ int ctr_open_state; - /* Protected by target_mgmt_mutex */ static LIST_HEAD(iscsi_attrs_list); -static ssize_t iscsi_version_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_version_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { TRACE_ENTRY(); @@ -52,10 +50,9 @@ static ssize_t iscsi_version_show(struct kobject *kobj, } static struct kobj_attribute iscsi_version_attr = - __ATTR(version, S_IRUGO, iscsi_version_show, NULL); + __ATTR(version, 0444, iscsi_version_show, NULL); -static ssize_t iscsi_open_state_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_open_state_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { switch (ctr_open_state) { case ISCSI_CTR_OPEN_STATE_CLOSED: @@ -76,7 +73,7 @@ static ssize_t iscsi_open_state_show(struct kobject *kobj, } static struct kobj_attribute iscsi_open_state_attr = - __ATTR(open_state, S_IRUGO, iscsi_open_state_show, NULL); + __ATTR(open_state, 0444, iscsi_open_state_show, NULL); const struct attribute *iscsi_attrs[] = { &iscsi_version_attr.attr, @@ -84,7 +81,6 @@ const struct attribute *iscsi_attrs[] = { NULL, }; - /* target_mgmt_mutex supposed to be locked */ static int add_conn(void __user *ptr) { @@ -103,7 +99,7 @@ static int add_conn(void __user *ptr) } target = target_lookup_by_id(info.tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", info.tid); err = -ENOENT; goto out; @@ -114,7 +110,7 @@ static int add_conn(void __user *ptr) session = session_lookup(target, info.sid); if (!session) { PRINT_ERROR("Session %lld not found", - (unsigned long long)info.tid); + (unsigned long long)info.tid); err = -ENOENT; goto out_unlock; } @@ -147,7 +143,7 @@ static int del_conn(void __user *ptr) } target = target_lookup_by_id(info.tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", info.tid); err = -ENOENT; goto out; @@ -158,7 +154,7 @@ static int del_conn(void __user *ptr) session = session_lookup(target, info.sid); if (!session) { PRINT_ERROR("Session %llx not found", - (unsigned long long)info.sid); + (unsigned long long)info.sid); err = -ENOENT; goto out_unlock; } @@ -185,7 +181,7 @@ static int add_session(void __user *ptr) lockdep_assert_held(&target_mgmt_mutex); info = kzalloc(sizeof(*info), GFP_KERNEL); - if (info == NULL) { + if (!info) { PRINT_ERROR("Can't alloc info (size %zd)", sizeof(*info)); err = -ENOMEM; goto out; @@ -198,11 +194,11 @@ static int add_session(void __user *ptr) goto out_free; } - info->initiator_name[sizeof(info->initiator_name)-1] = '\0'; - info->full_initiator_name[sizeof(info->full_initiator_name)-1] = '\0'; + info->initiator_name[sizeof(info->initiator_name) - 1] = '\0'; + info->full_initiator_name[sizeof(info->full_initiator_name) - 1] = '\0'; target = target_lookup_by_id(info->tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", info->tid); err = -ENOENT; goto out_free; @@ -228,7 +224,7 @@ static int del_session(void __user *ptr) TRACE_ENTRY(); info = kzalloc(sizeof(*info), GFP_KERNEL); - if (info == NULL) { + if (!info) { PRINT_ERROR("Can't alloc info (size %zd)", sizeof(*info)); err = -ENOMEM; goto out; @@ -249,10 +245,10 @@ static int del_session(void __user *ptr) } #endif - info->initiator_name[sizeof(info->initiator_name)-1] = '\0'; + info->initiator_name[sizeof(info->initiator_name) - 1] = '\0'; target = target_lookup_by_id(info->tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", info->tid); err = -ENOENT; goto out_free; @@ -287,7 +283,7 @@ static int iscsi_params_config(void __user *ptr, int set) } target = target_lookup_by_id(info.tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", info.tid); err = -ENOENT; goto out; @@ -338,24 +334,22 @@ static int iscsi_initiator_allowed(void __user *ptr) } #endif - cinfo.full_initiator_name[sizeof(cinfo.full_initiator_name)-1] = '\0'; + cinfo.full_initiator_name[sizeof(cinfo.full_initiator_name) - 1] = '\0'; target = target_lookup_by_id(cinfo.tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", cinfo.tid); err = -ENOENT; goto out; } - err = scst_initiator_has_luns(target->scst_tgt, - cinfo.full_initiator_name); + err = scst_initiator_has_luns(target->scst_tgt, cinfo.full_initiator_name); out: TRACE_EXIT_RES(err); return err; } - /* target_mgmt_mutex supposed to be locked */ static int mgmt_cmd_callback(void __user *ptr) { @@ -372,12 +366,12 @@ static int mgmt_cmd_callback(void __user *ptr) goto out; } - cinfo.value[sizeof(cinfo.value)-1] = '\0'; + cinfo.value[sizeof(cinfo.value) - 1] = '\0'; info = scst_sysfs_user_get_info(cinfo.cookie); - TRACE_DBG("cookie %u, info %p, result %d", cinfo.cookie, info, - cinfo.result); - if (info == NULL) { + TRACE_DBG("cookie %u, info %p, result %d", + cinfo.cookie, info, cinfo.result); + if (!info) { err = -EINVAL; goto out; } @@ -396,7 +390,7 @@ static int mgmt_cmd_callback(void __user *ptr) struct iscsi_target *target; target = target_lookup_by_id(cinfo.tid); - if (target == NULL) { + if (!target) { PRINT_ERROR("Target %d not found", cinfo.tid); err = -ENOENT; goto out_status; @@ -408,7 +402,7 @@ static int mgmt_cmd_callback(void __user *ptr) case E_GET_ATTR_VALUE: info->data = kstrdup(cinfo.value, GFP_KERNEL); - if (info->data == NULL) { + if (!info->data) { PRINT_ERROR("Can't duplicate value %s", cinfo.value); info->info_status = -ENOMEM; goto out_complete; @@ -428,8 +422,7 @@ out_status: goto out_complete; } -static ssize_t iscsi_attr_show(struct kobject *kobj, - struct kobj_attribute *attr, char *buf) +static ssize_t iscsi_attr_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { int pos; struct iscsi_attr *tgt_attr; @@ -439,9 +432,8 @@ static ssize_t iscsi_attr_show(struct kobject *kobj, tgt_attr = container_of(attr, struct iscsi_attr, attr); - pos = iscsi_sysfs_send_event( - (tgt_attr->target != NULL) ? tgt_attr->target->tid : 0, - E_GET_ATTR_VALUE, tgt_attr->name, NULL, &value); + pos = iscsi_sysfs_send_event(tgt_attr->target ? tgt_attr->target->tid : 0, + E_GET_ATTR_VALUE, tgt_attr->name, NULL, &value); if (pos != 0) goto out; @@ -455,8 +447,8 @@ out: return pos; } -static ssize_t iscsi_attr_store(struct kobject *kobj, - struct kobj_attribute *attr, const char *buf, size_t count) +static ssize_t iscsi_attr_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, + size_t count) { int res; char *buffer; @@ -464,8 +456,8 @@ static ssize_t iscsi_attr_store(struct kobject *kobj, TRACE_ENTRY(); - buffer = kzalloc(count+1, GFP_KERNEL); - if (buffer == NULL) { + buffer = kzalloc(count + 1, GFP_KERNEL); + if (!buffer) { res = -ENOMEM; goto out; } @@ -476,9 +468,8 @@ static ssize_t iscsi_attr_store(struct kobject *kobj, TRACE_DBG("attr %s, buffer %s", tgt_attr->attr.attr.name, buffer); - res = iscsi_sysfs_send_event( - (tgt_attr->target != NULL) ? tgt_attr->target->tid : 0, - E_SET_ATTR_VALUE, tgt_attr->name, buffer, NULL); + res = iscsi_sysfs_send_event(tgt_attr->target ? tgt_attr->target->tid : 0, + E_SET_ATTR_VALUE, tgt_attr->name, buffer, NULL); kfree(buffer); @@ -494,8 +485,7 @@ out: * target_mgmt_mutex supposed to be locked. If target != 0, target_mutex * supposed to be locked as well. */ -int iscsi_add_attr(struct iscsi_target *target, - const struct iscsi_kern_attr *attr_info) +int iscsi_add_attr(struct iscsi_target *target, const struct iscsi_kern_attr *attr_info) { int res = 0; struct iscsi_attr *tgt_attr; @@ -507,7 +497,7 @@ int iscsi_add_attr(struct iscsi_target *target, TRACE_ENTRY(); - if (target != NULL) { + if (target) { attrs_list = &target->attrs_list; name = target->name; } else { @@ -519,19 +509,19 @@ int iscsi_add_attr(struct iscsi_target *target, /* Both for sure NULL-terminated */ if (strcmp(tgt_attr->name, attr_info->name) == 0) { PRINT_ERROR("Attribute %s for %s already exist", - attr_info->name, name); + attr_info->name, name); res = -EEXIST; goto out; } } TRACE_DBG("Adding %s's attr %s with mode %x", name, - attr_info->name, attr_info->mode); + attr_info->name, attr_info->mode); tgt_attr = kzalloc(sizeof(*tgt_attr), GFP_KERNEL); - if (tgt_attr == NULL) { + if (!tgt_attr) { PRINT_ERROR("Unable to allocate user (size %zd)", - sizeof(*tgt_attr)); + sizeof(*tgt_attr)); res = -ENOMEM; goto out; } @@ -539,9 +529,9 @@ int iscsi_add_attr(struct iscsi_target *target, tgt_attr->target = target; tgt_attr->name = kstrdup(attr_info->name, GFP_KERNEL); - if (tgt_attr->name == NULL) { + if (!tgt_attr->name) { PRINT_ERROR("Unable to allocate attr %s name/value (target %s)", - attr_info->name, name); + attr_info->name, name); res = -ENOMEM; goto out_free; } @@ -552,19 +542,18 @@ int iscsi_add_attr(struct iscsi_target *target, #ifdef CONFIG_DEBUG_LOCK_ALLOC tgt_attr->attr.attr.key = &__key; #endif - tgt_attr->attr.attr.mode = attr_info->mode & (S_IRUGO | S_IWUGO); + tgt_attr->attr.attr.mode = attr_info->mode & 0666; tgt_attr->attr.show = iscsi_attr_show; tgt_attr->attr.store = iscsi_attr_store; TRACE_DBG("tgt_attr %p, attr %p", tgt_attr, &tgt_attr->attr.attr); - res = sysfs_create_file( - (target != NULL) ? scst_sysfs_get_tgt_kobj(target->scst_tgt) : + res = sysfs_create_file(target ? scst_sysfs_get_tgt_kobj(target->scst_tgt) : scst_sysfs_get_tgtt_kobj(&iscsi_template), &tgt_attr->attr.attr); if (res != 0) { PRINT_ERROR("Unable to create file '%s' for target '%s'", - tgt_attr->attr.attr.name, name); + tgt_attr->attr.attr.name, name); goto out_del; } @@ -581,35 +570,30 @@ out_free: goto out; } -void __iscsi_del_attr(struct iscsi_target *target, - struct iscsi_attr *tgt_attr) +void __iscsi_del_attr(struct iscsi_target *target, struct iscsi_attr *tgt_attr) { TRACE_ENTRY(); TRACE_DBG("Deleting attr %s (target %s, tgt_attr %p, attr %p)", - tgt_attr->name, (target != NULL) ? target->name : "global", - tgt_attr, &tgt_attr->attr.attr); + tgt_attr->name, target ? target->name : "global", + tgt_attr, &tgt_attr->attr.attr); list_del(&tgt_attr->attrs_list_entry); - sysfs_remove_file((target != NULL) ? - scst_sysfs_get_tgt_kobj(target->scst_tgt) : - scst_sysfs_get_tgtt_kobj(&iscsi_template), - &tgt_attr->attr.attr); + sysfs_remove_file(target ? scst_sysfs_get_tgt_kobj(target->scst_tgt) : + scst_sysfs_get_tgtt_kobj(&iscsi_template), &tgt_attr->attr.attr); kfree(tgt_attr->name); kfree(tgt_attr); TRACE_EXIT(); - return; } /* * target_mgmt_mutex supposed to be locked. If target != 0, target_mutex * supposed to be locked as well. */ -static int iscsi_del_attr(struct iscsi_target *target, - const char *attr_name) +static int iscsi_del_attr(struct iscsi_target *target, const char *attr_name) { int res = 0; struct iscsi_attr *tgt_attr, *a; @@ -617,7 +601,7 @@ static int iscsi_del_attr(struct iscsi_target *target, TRACE_ENTRY(); - if (target != NULL) + if (target) attrs_list = &target->attrs_list; else attrs_list = &iscsi_attrs_list; @@ -631,9 +615,9 @@ static int iscsi_del_attr(struct iscsi_target *target, } } - if (tgt_attr == NULL) { - PRINT_ERROR("attr %s not found (target %s)", attr_name, - (target != NULL) ? target->name : "global"); + if (!tgt_attr) { + PRINT_ERROR("attr %s not found (target %s)", + attr_name, target ? target->name : "global"); res = -ENOENT; goto out; } @@ -662,12 +646,12 @@ static int iscsi_attr_cmd(void __user *ptr, unsigned int cmd) goto out; } - info.attr.name[sizeof(info.attr.name)-1] = '\0'; + info.attr.name[sizeof(info.attr.name) - 1] = '\0'; if (info.cookie != 0) { i = scst_sysfs_user_get_info(info.cookie); TRACE_DBG("cookie %u, uinfo %p", info.cookie, i); - if (i == NULL) { + if (!i) { err = -EINVAL; goto out; } @@ -675,7 +659,7 @@ static int iscsi_attr_cmd(void __user *ptr, unsigned int cmd) target = target_lookup_by_id(info.tid); - if (target != NULL) + if (target) mutex_lock(&target->target_mutex); switch (cmd) { @@ -689,10 +673,10 @@ static int iscsi_attr_cmd(void __user *ptr, unsigned int cmd) sBUG(); } - if (target != NULL) + if (target) mutex_unlock(&target->target_mutex); - if (i != NULL) { + if (i) { i->info_status = err; complete(&i->info_completion); } @@ -702,7 +686,6 @@ out: return err; } - /* target_mgmt_mutex supposed to be locked */ static int add_target(void __user *ptr) { @@ -713,7 +696,7 @@ static int add_target(void __user *ptr) TRACE_ENTRY(); info = kzalloc(sizeof(*info), GFP_KERNEL); - if (info == NULL) { + if (!info) { PRINT_ERROR("Can't alloc info (size %zd)", sizeof(*info)); err = -ENOMEM; goto out; @@ -726,23 +709,24 @@ static int add_target(void __user *ptr) goto out_free; } - if (target_lookup_by_id(info->tid) != NULL) { + if (target_lookup_by_id(info->tid)) { PRINT_ERROR("Target %u already exist!", info->tid); err = -EEXIST; goto out_free; } - info->name[sizeof(info->name)-1] = '\0'; + info->name[sizeof(info->name) - 1] = '\0'; if (info->cookie != 0) { uinfo = scst_sysfs_user_get_info(info->cookie); TRACE_DBG("cookie %u, uinfo %p", info->cookie, uinfo); - if (uinfo == NULL) { + if (!uinfo) { err = -EINVAL; goto out_free; } - } else + } else { uinfo = NULL; + } #ifdef __COVERITY__ /* To suppress a Coverity "tainted scalar" complaint (CID 344743). */ @@ -754,7 +738,7 @@ static int add_target(void __user *ptr) err = __add_target(info); - if (uinfo != NULL) { + if (uinfo) { uinfo->info_status = err; complete(&uinfo->info_completion); } @@ -783,21 +767,22 @@ static int del_target(void __user *ptr) goto out; } - info.name[sizeof(info.name)-1] = '\0'; + info.name[sizeof(info.name) - 1] = '\0'; if (info.cookie != 0) { uinfo = scst_sysfs_user_get_info(info.cookie); TRACE_DBG("cookie %u, uinfo %p", info.cookie, uinfo); - if (uinfo == NULL) { + if (!uinfo) { err = -EINVAL; goto out; } - } else + } else { uinfo = NULL; + } err = __del_target(info.tid); - if (uinfo != NULL) { + if (uinfo) { uinfo->info_status = err; complete(&uinfo->info_completion); } @@ -810,7 +795,7 @@ out: static int iscsi_register(void __user *arg) { struct iscsi_kern_register_info reg; - char ver[sizeof(ISCSI_SCST_INTERFACE_VERSION)+1]; + char ver[sizeof(ISCSI_SCST_INTERFACE_VERSION) + 1]; int res, rc; TRACE_ENTRY(); @@ -822,18 +807,17 @@ static int iscsi_register(void __user *arg) goto out; } - rc = copy_from_user(ver, (void __user *)(unsigned long)reg.version, - sizeof(ver)); + rc = copy_from_user(ver, (void __user *)(unsigned long)reg.version, sizeof(ver)); if (rc != 0) { PRINT_ERROR("%s", "Unable to get version string"); res = -EFAULT; goto out; } - ver[sizeof(ver)-1] = '\0'; + ver[sizeof(ver) - 1] = '\0'; if (strcmp(ver, ISCSI_SCST_INTERFACE_VERSION) != 0) { PRINT_ERROR("Incorrect version of user space %s (expected %s)", - ver, ISCSI_SCST_INTERFACE_VERSION); + ver, ISCSI_SCST_INTERFACE_VERSION); res = -EINVAL; goto out; } @@ -954,8 +938,9 @@ static int iscsi_open(struct inode *inode, struct file *file) if (already) { PRINT_WARNING("Attempt to second open the control device!"); return -EBUSY; - } else - return 0; + } + + return 0; } static int iscsi_release(struct inode *inode, struct file *filp) @@ -972,10 +957,8 @@ static int iscsi_release(struct inode *inode, struct file *filp) mutex_lock(&target_mgmt_mutex); - list_for_each_entry_safe(attr, t, &iscsi_attrs_list, - attrs_list_entry) { + list_for_each_entry_safe(attr, t, &iscsi_attrs_list, attrs_list_entry) __iscsi_del_attr(NULL, attr); - } ctr_open_state = ISCSI_CTR_OPEN_STATE_CLOSED; @@ -1017,12 +1000,12 @@ static void iscsi_dump_char(int ch, unsigned char *text, int *pos) if ((i % 16) == 0) { pr_cont(" | %.16s |\n", text); i = 0; - } else if ((i % 4) == 0) + } else if ((i % 4) == 0) { pr_cont(" |"); + } out: *pos = i; - return; } void iscsi_dump_pdu(struct iscsi_pdu *pdu) @@ -1054,16 +1037,15 @@ unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(struct iscsi_cmnd *cmnd) { unsigned long flag; - if (cmnd->cmd_req != NULL) + if (cmnd->cmd_req) cmnd = cmnd->cmd_req; - if (cmnd->scst_cmd == NULL) + if (!cmnd->scst_cmd) { flag = TRACE_MGMT_DEBUG; - else { + } else { int status = scst_cmd_get_status(cmnd->scst_cmd); - if ((status == SAM_STAT_TASK_SET_FULL) || - (status == SAM_STAT_BUSY)) + if (status == SAM_STAT_TASK_SET_FULL || status == SAM_STAT_BUSY) flag = TRACE_FLOW_CONTROL; else flag = TRACE_MGMT_DEBUG; diff --git a/scripts/checkpatch b/scripts/checkpatch index 5c9d3ba..d142cef 100755 --- a/scripts/checkpatch +++ b/scripts/checkpatch @@ -16,6 +16,8 @@ ignore=( LINUX_VERSION_CODE CONSTANT_COMPARISON NEW_TYPEDEFS + AVOID_BUG + MACRO_ARG_REUSE ) ignore_str=${ignore[*]} |
From: Gleb C. <lna...@ya...> - 2024-11-07 16:32:56
|
Commit: 70cf2f6 GitHub URL: https://github.com/SCST-project/scst/commit/70cf2f6271fc7efccabc069dd5ae0a4763db13b2 Author: Dhananjay Kamble Date: 2024-11-07T19:32:26+03:00 Log Message: ----------- scst: Unbreak the RHEL 9.5 build Modified Paths: -------------- scst/include/backport.h | 4 +++- scst/src/dev_handlers/scst_tape.c | 4 +++- scst/src/scst_lib.c | 8 ++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 6651a39..803fcf6 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -288,7 +288,9 @@ static inline void blkdev_put_backport(struct block_device *bdev, void *holder) #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 7, 0) && \ (LINUX_VERSION_CODE >> 8 != KERNEL_VERSION(6, 6, 0) >> 8 || \ - LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 23)) + LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 23)) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) /* * See also commit e719b4d15674 ("block: Provide bdev_open_* functions") # v6.7, v6.6.23. */ diff --git a/scst/src/dev_handlers/scst_tape.c b/scst/src/dev_handlers/scst_tape.c index f164390..c744ba2 100644 --- a/scst/src/dev_handlers/scst_tape.c +++ b/scst/src/dev_handlers/scst_tape.c @@ -173,7 +173,9 @@ static int tape_attach(struct scst_device *dev) ((dev->scsi_dev->scsi_level <= SCSI_2) ? ((dev->scsi_dev->lun << 5) & 0xe0) : 0), 0 /* Mode Page 0 */, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) || \ + (defined(RHEL_RELEASE_CODE) && \ + RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(9, 5)) 0 /* Sub Page */, #endif buffer, buffer_size, diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 5dcb8b1..2e322d9 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -6083,7 +6083,9 @@ int scst_open_bdev_by_path(const char *path, blk_mode_t mode, void *holder, const struct blk_holder_ops *hops, struct scst_bdev_descriptor *bdev_desc) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) struct bdev_handle *bdev_handle; bdev_handle = bdev_open_by_path(path, mode, holder, hops); @@ -6109,7 +6111,9 @@ EXPORT_SYMBOL(scst_open_bdev_by_path); void scst_release_bdev(struct scst_bdev_descriptor *bdev_desc) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) struct bdev_handle *bdev_handle = bdev_desc->priv; if (bdev_handle) |
From: Gleb C. <lna...@ya...> - 2024-11-07 16:27:43
|
Commit: bf32b4a GitHub URL: https://github.com/SCST-project/scst/commit/bf32b4a369021f5ea3c5192afdccc0b7d6d25b24 Author: Dhananjay Kamble Date: 2024-11-07T19:25:13+03:00 Log Message: ----------- Replaced spaces with tabs in commit 8b3d72023d7cda04cc8c6a012102284d4aa584d1 Modified Paths: -------------- scst/include/backport.h | 4 ++-- scst/src/dev_handlers/scst_tape.c | 4 ++-- scst/src/scst_lib.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 47fa034..1f697d0 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -289,8 +289,8 @@ static inline void blkdev_put_backport(struct block_device *bdev, void *holder) #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 7, 0) && \ (LINUX_VERSION_CODE >> 8 != KERNEL_VERSION(6, 6, 0) >> 8 || \ LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 23)) && \ - (!defined(RHEL_RELEASE_CODE) || \ - RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) /* * See also commit e719b4d15674 ("block: Provide bdev_open_* functions") # v6.7, v6.6.23. */ diff --git a/scst/src/dev_handlers/scst_tape.c b/scst/src/dev_handlers/scst_tape.c index a238860..c996445 100644 --- a/scst/src/dev_handlers/scst_tape.c +++ b/scst/src/dev_handlers/scst_tape.c @@ -174,8 +174,8 @@ static int tape_attach(struct scst_device *dev) ((dev->scsi_dev->lun << 5) & 0xe0) : 0), 0 /* Mode Page 0 */, #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) || \ - (!defined(RHEL_RELEASE_CODE) || \ - RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(9, 5)) + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(9, 5)) 0 /* Sub Page */, #endif buffer, buffer_size, diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index d3b0fc6..47b429a 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -6112,7 +6112,7 @@ EXPORT_SYMBOL(scst_open_bdev_by_path); void scst_release_bdev(struct scst_bdev_descriptor *bdev_desc) { #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) && \ - (!defined(RHEL_RELEASE_CODE) || \ + (!defined(RHEL_RELEASE_CODE) || \ RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) struct bdev_handle *bdev_handle = bdev_desc->priv; |
From: Gleb C. <lna...@ya...> - 2024-11-07 16:25:38
|
Commit: 0a19341 GitHub URL: https://github.com/SCST-project/scst/commit/0a1934155630f23ec5da43f235c2c3b45b4d815f Author: Dhananjay Kamble Date: 2024-11-07T19:25:13+03:00 Log Message: ----------- backport.h, scst_tape.c, scst_lib.c: Fix build failures on RHEL9.5 Modified Paths: -------------- scst/include/backport.h | 4 +++- scst/src/dev_handlers/scst_tape.c | 4 +++- scst/src/scst_lib.c | 8 ++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 6651a39..47fa034 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -288,7 +288,9 @@ static inline void blkdev_put_backport(struct block_device *bdev, void *holder) #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 7, 0) && \ (LINUX_VERSION_CODE >> 8 != KERNEL_VERSION(6, 6, 0) >> 8 || \ - LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 23)) + LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 23)) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) /* * See also commit e719b4d15674 ("block: Provide bdev_open_* functions") # v6.7, v6.6.23. */ diff --git a/scst/src/dev_handlers/scst_tape.c b/scst/src/dev_handlers/scst_tape.c index f164390..a238860 100644 --- a/scst/src/dev_handlers/scst_tape.c +++ b/scst/src/dev_handlers/scst_tape.c @@ -173,7 +173,9 @@ static int tape_attach(struct scst_device *dev) ((dev->scsi_dev->scsi_level <= SCSI_2) ? ((dev->scsi_dev->lun << 5) & 0xe0) : 0), 0 /* Mode Page 0 */, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) || \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(9, 5)) 0 /* Sub Page */, #endif buffer, buffer_size, diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 5dcb8b1..d3b0fc6 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -6083,7 +6083,9 @@ int scst_open_bdev_by_path(const char *path, blk_mode_t mode, void *holder, const struct blk_holder_ops *hops, struct scst_bdev_descriptor *bdev_desc) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) struct bdev_handle *bdev_handle; bdev_handle = bdev_open_by_path(path, mode, holder, hops); @@ -6109,7 +6111,9 @@ EXPORT_SYMBOL(scst_open_bdev_by_path); void scst_release_bdev(struct scst_bdev_descriptor *bdev_desc) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 9, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 5)) struct bdev_handle *bdev_handle = bdev_desc->priv; if (bdev_handle) |
From: Gleb C. <lna...@ya...> - 2024-11-07 11:04:25
|
Commit: 2fea7e4 GitHub URL: https://github.com/SCST-project/scst/commit/2fea7e484f3ddff369503295ede5401f73c2dfc8 Author: Gleb Chesnokov Date: 2024-11-07T14:02:05+03:00 Log Message: ----------- qla2x00t-32gbit: Remove the unused 'del_list_entry' field in struct fc_port The 'del_list_entry' field in "struct fc_port" is unused. The field was introduced in commit 2d70c103fd2a ("[SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series") in 2012-05 and the last user was removed in commit 726b85487067 ("qla2xxx: Add framework for async fabric discovery") in 2017-02. Remove this unused field. Signed-off-by: Christophe JAILLET <chr...@wa...> Link: https://lore.kernel.org/r/691...@wa... Signed-off-by: Martin K. Petersen <mar...@or...> [ commit e59f43fb6477 upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_def.h | 1 - 1 file changed, 1 deletion(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_def.h b/qla2x00t-32gbit/qla_def.h index 09f4a6c..2707055 100644 --- a/qla2x00t-32gbit/qla_def.h +++ b/qla2x00t-32gbit/qla_def.h @@ -2681,7 +2681,6 @@ typedef struct fc_port { struct kref sess_kref; struct qla_tgt *tgt; unsigned long expires; - struct list_head del_list_entry; struct work_struct free_work; struct work_struct reg_work; uint64_t jiffies_at_registration; |
From: Gleb C. <lna...@ya...> - 2024-11-07 11:02:35
|
Commit: 61f365f GitHub URL: https://github.com/SCST-project/scst/commit/61f365f96ea36c891a630f045f45c42caf897f58 Author: Gleb Chesnokov Date: 2024-11-07T14:02:05+03:00 Log Message: ----------- scst: Expand all create*_workqueue() invocations The workqueue maintainer wants to remove the create*_workqueue() macros because these macros always set the WQ_MEM_RECLAIM flag and because these only support literal workqueue names. Hence this patch that replaces the create*_workqueue() invocations with the definition of this macro. The WQ_MEM_RECLAIM flag has been retained because I think that flag is necessary for workqueues created by storage drivers. Modified Paths: -------------- iscsi-scst/kernel/isert-scst/iser_rdma.c | 3 +-- qla2x00t-32gbit/qla_os.c | 6 ++++-- scst/src/scst_dlm.c | 2 +- scst_local/scst_local.c | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index c5e30b1..08a7bbe 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -979,8 +979,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) snprintf(wq_name, sizeof(wq_name), "isert_cq_%p", cq_desc); cq_desc->cq_workqueue = alloc_workqueue(wq_name, - WQ_CPU_INTENSIVE| - WQ_MEM_RECLAIM, 1); + WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM, 1); if (unlikely(!cq_desc->cq_workqueue)) { PRINT_ERROR("Failed to alloc iser cq work queue for dev:%s", ib_dev->name); diff --git a/qla2x00t-32gbit/qla_os.c b/qla2x00t-32gbit/qla_os.c index 31dc333..5d882ef 100644 --- a/qla2x00t-32gbit/qla_os.c +++ b/qla2x00t-32gbit/qla_os.c @@ -3568,11 +3568,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) if (IS_QLA8031(ha) || IS_MCTP_CAPABLE(ha)) { sprintf(wq_name, "qla2xxx_%lu_dpc_lp_wq", base_vha->host_no); - ha->dpc_lp_wq = create_singlethread_workqueue(wq_name); + ha->dpc_lp_wq = + alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, wq_name); INIT_WORK(&ha->idc_aen, qla83xx_service_idc_aen); sprintf(wq_name, "qla2xxx_%lu_dpc_hp_wq", base_vha->host_no); - ha->dpc_hp_wq = create_singlethread_workqueue(wq_name); + ha->dpc_hp_wq = + alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, wq_name); INIT_WORK(&ha->nic_core_reset, qla83xx_nic_core_reset_work); INIT_WORK(&ha->idc_state_handler, qla83xx_idc_state_handler_work); diff --git a/scst/src/scst_dlm.c b/scst/src/scst_dlm.c index 7e634af..4895df4 100644 --- a/scst/src/scst_dlm.c +++ b/scst/src/scst_dlm.c @@ -1480,7 +1480,7 @@ create_st_wq(const char *fmt, ...) name = kvasprintf(GFP_KERNEL, fmt, ap); va_end(ap); if (name) - wq = create_singlethread_workqueue(name); + wq = alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name); kfree(name); return wq; } diff --git a/scst_local/scst_local.c b/scst_local/scst_local.c index 9021532..0a48c9b 100644 --- a/scst_local/scst_local.c +++ b/scst_local/scst_local.c @@ -1791,7 +1791,7 @@ static int __init scst_local_init(void) * We don't expect much work on this queue, so only create a * single thread workqueue rather than one on each core. */ - aen_workqueue = create_singlethread_workqueue("scstlclaen"); + aen_workqueue = alloc_ordered_workqueue("scstlclaen", WQ_MEM_RECLAIM); if (!aen_workqueue) { PRINT_ERROR("%s", "Unable to create scst_local workqueue"); goto tgt_templ_unreg; |
From: Gleb C. <lna...@ya...> - 2024-11-07 10:24:04
|
Commit: 31eca7e GitHub URL: https://github.com/SCST-project/scst/commit/31eca7eced090a0a5c035050284fbb904fb1fd3e Author: Gleb Chesnokov Date: 2024-11-07T13:21:25+03:00 Log Message: ----------- .github/workflows: Use checkpatch scripts Inroduce several checkpatch scripts to use in workflows. Modified Paths: -------------- .github/workflows/checkpatch_pull.yml | 29 +-------------- .github/workflows/checkpatch_push.yml | 18 +-------- scripts/checkpatch | 25 ++++++++----- scripts/checkpatch_commits | 21 +++++++++++ scripts/checkpatch_diff | 13 +++++++ scripts/checkpatch_scan | 24 ++++++++++++ 6 files changed, 75 insertions(+), 55 deletions(-) =================================================================== diff --git a/.github/workflows/checkpatch_pull.yml b/.github/workflows/checkpatch_pull.yml index 353c1f9..992238e 100644 --- a/.github/workflows/checkpatch_pull.yml +++ b/.github/workflows/checkpatch_pull.yml @@ -24,31 +24,4 @@ jobs: - name: Run checkpatch.pl run: | - ignore=( - MISSING_SIGN_OFF - EMAIL_SUBJECT - UNKNOWN_COMMIT_ID - NO_AUTHOR_SIGN_OFF - COMMIT_LOG_USE_LINK - BAD_REPORTED_BY_LINK - FILE_PATH_CHANGES - SPDX_LICENSE_TAG - LINUX_VERSION_CODE - CONSTANT_COMPARISON - NEW_TYPEDEFS - SPACING - ) - ignore_str=${ignore[*]} - - base_commit=${{github.event.pull_request.base.sha}} - commits=$(git log --pretty=format:"%h" $base_commit..HEAD) - err=0 - - for commit in $commits; do - echo "Running checkpatch.pl for commit $commit" - echo "========================================" - git format-patch -1 --stdout $commit | ./checkpatch.pl --no-tree --show-types --strict --ignore="${ignore_str// /,}" - || err=1 - echo - done - - exit $err + CHECKPATCH_PATH=. ./scripts/checkpatch_commits ${{github.event.pull_request.base.sha}} diff --git a/.github/workflows/checkpatch_push.yml b/.github/workflows/checkpatch_push.yml index ac3755e..a1ea507 100644 --- a/.github/workflows/checkpatch_push.yml +++ b/.github/workflows/checkpatch_push.yml @@ -29,20 +29,4 @@ jobs: - name: Run checkpatch.pl run: | - ignore=( - MISSING_SIGN_OFF - EMAIL_SUBJECT - UNKNOWN_COMMIT_ID - NO_AUTHOR_SIGN_OFF - COMMIT_LOG_USE_LINK - BAD_REPORTED_BY_LINK - FILE_PATH_CHANGES - SPDX_LICENSE_TAG - LINUX_VERSION_CODE - CONSTANT_COMPARISON - NEW_TYPEDEFS - SPACING - ) - ignore_str=${ignore[*]} - - git format-patch -1 --stdout | ./checkpatch.pl --no-tree --show-types --strict --ignore="${ignore_str// /,}" - + git format-patch -1 --stdout | CHECKPATCH_PATH=. ./scripts/checkpatch diff --git a/scripts/checkpatch b/scripts/checkpatch index 40937e5..5c9d3ba 100755 --- a/scripts/checkpatch +++ b/scripts/checkpatch @@ -1,17 +1,22 @@ #!/usr/bin/env bash +set -e + +scriptpath=${CHECKPATCH_PATH:-/lib/modules/$(uname -r)/build/scripts} + ignore=( - CONSTANT_COMPARISON - LINUX_VERSION_CODE - LONG_LINE - LONG_LINE_COMMENT - LONG_LINE_STRING - RETURN_VOID + MISSING_SIGN_OFF + EMAIL_SUBJECT + UNKNOWN_COMMIT_ID + NO_AUTHOR_SIGN_OFF + COMMIT_LOG_USE_LINK + BAD_REPORTED_BY_LINK + FILE_PATH_CHANGES SPDX_LICENSE_TAG - SYMBOLIC_PERMS + LINUX_VERSION_CODE + CONSTANT_COMPARISON + NEW_TYPEDEFS ) ignore_str=${ignore[*]} -src_files=$(list-source-files | grep -vE '^debian/|^fcst/linux-patches|patch$|pdf$|png$|^iscsi-scst/usr|^qla|^scripts/|^scstadmin/|^usr/|^www/') - -../linux-kernel/scripts/checkpatch.pl -f --show-types --strict --ignore="${ignore_str// /,}" $src_files | sed 's/^#[0-9]*: FILE: \(.*\):/\1:1:/' +${scriptpath}/checkpatch.pl --no-tree --show-types --strict --ignore="${ignore_str// /,}" $@ diff --git a/scripts/checkpatch_commits b/scripts/checkpatch_commits new file mode 100755 index 0000000..d832851 --- /dev/null +++ b/scripts/checkpatch_commits @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -e + +rootdir=$(readlink -f $(dirname $0)/..) +scriptsdir=${rootdir}/scripts +base_commit=${1:-master} + +commits=$(cd ${rootdir} && git log --pretty=format:"%h" ${base_commit}..HEAD) +err=0 + +for commit in $commits; do + echo "Running checkpatch for commit $commit" + echo -e "========================================\n" + + (cd ${rootdir} && + git format-patch -1 --stdout $commit | ${scriptsdir}/checkpatch -) || err=1 + echo -e "\n" +done + +exit $err diff --git a/scripts/checkpatch_diff b/scripts/checkpatch_diff new file mode 100755 index 0000000..02b064a --- /dev/null +++ b/scripts/checkpatch_diff @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e + +rootdir=$(readlink -f $(dirname $0)/..) +scriptsdir=${rootdir}/scripts +base_commit=${1:-master} + +err=0 + +(cd ${rootdir} && git diff ${base_commit} | ${scriptsdir}/checkpatch -) || err=1 + +exit $err diff --git a/scripts/checkpatch_scan b/scripts/checkpatch_scan new file mode 100755 index 0000000..cc539b3 --- /dev/null +++ b/scripts/checkpatch_scan @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +rootdir=$(readlink -f $(dirname $0)/..) +scriptsdir=${rootdir}/scripts +outputfile=checkpatch.out + +src_files=$(${scriptsdir}/list-source-files ${rootdir} | \ + grep -vE '^debian/|^fcst/linux-patches|patch$|pdf$|png$|^iscsi-scst/usr|^qla|^scripts/|^scstadmin/|^usr/|^www/' | \ + while read -r filename; do echo "${rootdir}/$filename"; done) + +${scriptsdir}/checkpatch -f $src_files 1> ${outputfile} || true + +errors=$(grep -c '^ERROR' "${outputfile}") +warnings=$(grep -c '^WARNING' "${outputfile}") +checks=$(grep -c '^CHECK' "${outputfile}") + +echo "${errors} errors / ${warnings} warnings / ${checks} checks." + +grep -E '^WARNING|^ERROR|^CHECK' "${outputfile}" | + sort | + sed 's/^CHECK:CAMELCASE: Avoid CamelCase:.*/CHECK:CAMELCASE Avoid CamelCase/' | + uniq -c |
From: Gleb C. <lna...@ya...> - 2024-11-07 10:23:55
|
Commit: fca4d58 GitHub URL: https://github.com/SCST-project/scst/commit/fca4d58822befa3b729a25cec483492be7cca29b Author: Gleb Chesnokov Date: 2024-11-07T13:21:25+03:00 Log Message: ----------- .github/workflows: Run regression tests upon a pull request Also allow regression tests to run upon a pull request. Modified Paths: -------------- .github/workflows/checkpatch_pull.yml | 2 +- .github/workflows/run_regression_tests.yaml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) =================================================================== diff --git a/.github/workflows/checkpatch_pull.yml b/.github/workflows/checkpatch_pull.yml index 50c2326..353c1f9 100644 --- a/.github/workflows/checkpatch_pull.yml +++ b/.github/workflows/checkpatch_pull.yml @@ -1,4 +1,4 @@ -name: Checkpatch upon pull +name: Checkpatch upon pull request on: pull_request: diff --git a/.github/workflows/run_regression_tests.yaml b/.github/workflows/run_regression_tests.yaml index a66974c..20683f7 100644 --- a/.github/workflows/run_regression_tests.yaml +++ b/.github/workflows/run_regression_tests.yaml @@ -1,10 +1,13 @@ -name: Regression tests upon push +name: Run regression tests on: push: branches: - master - nightly/update + pull_request: + branches: + - master jobs: regression_tests: |
From: Gleb C. <lna...@ya...> - 2024-11-07 10:21:54
|
Commit: 256d695 GitHub URL: https://github.com/SCST-project/scst/commit/256d695afaaf8c9c99e31f633825e725cda64a5a Author: Gleb Chesnokov Date: 2024-11-07T13:21:25+03:00 Log Message: ----------- scst: Port to Linux kernel v6.12 Support for the following changes in the Linux kernel v6.12: - 5f60d5f6bbc1 ("move asm/unaligned.h to linux/unaligned.h") - cb787f4ac0c2 ("[tree-wide] finally take no_llseek out") Modified Paths: -------------- fcst/ft_sess.c | 1 - iscsi-scst/include/iscsit_transport.h | 1 - iscsi-scst/kernel/iscsi.c | 1 - iscsi-scst/kernel/isert-scst/isert_login.c | 4 ++++ qla2x00t-32gbit/qla2x00-target/qla_tgt.c | 1 - qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c | 1 - qla2x00t-32gbit/qla_def.h | 5 +++++ qla2x00t-32gbit/qla_dsd.h | 7 +++++++ qla2x00t-32gbit/qla_target.c | 1 - qla2x00t-32gbit/qla_target.h | 2 -- qla2x00t/qla2x00-target/qla2x00t.c | 1 - scst/include/backport.h | 6 +++++- scst/include/scst.h | 6 +++++- scst/src/dev_handlers/scst_cdrom.c | 1 - scst/src/dev_handlers/scst_disk.c | 1 - scst/src/dev_handlers/scst_modisk.c | 1 - scst/src/dev_handlers/scst_tape.c | 1 - scst/src/dev_handlers/scst_vdisk.c | 1 - scst/src/scst_copy_mgr.c | 2 -- scst/src/scst_lib.c | 1 - scst/src/scst_pres.c | 1 - scst/src/scst_tg.c | 1 - 22 files changed, 26 insertions(+), 21 deletions(-) =================================================================== diff --git a/fcst/ft_sess.c b/fcst/ft_sess.c index 5deafb7..237457b 100644 --- a/fcst/ft_sess.c +++ b/fcst/ft_sess.c @@ -19,7 +19,6 @@ #include <linux/module.h> #include <linux/mutex.h> #include <linux/hash.h> -#include <asm/unaligned.h> #include <scsi/libfc.h> #include <scsi/fc/fc_els.h> #include "fcst.h" diff --git a/iscsi-scst/include/iscsit_transport.h b/iscsi-scst/include/iscsit_transport.h index 38603fa..116f724 100644 --- a/iscsi-scst/include/iscsit_transport.h +++ b/iscsi-scst/include/iscsit_transport.h @@ -66,4 +66,3 @@ extern void iscsit_unreg_transport(struct iscsit_transport *t); extern struct iscsit_transport *iscsit_get_transport(enum iscsit_transport_type type); #endif /* __ISCSI_TRANSPORT_H__ */ - diff --git a/iscsi-scst/kernel/iscsi.c b/iscsi-scst/kernel/iscsi.c index bb367d1..1641b60 100644 --- a/iscsi-scst/kernel/iscsi.c +++ b/iscsi-scst/kernel/iscsi.c @@ -22,7 +22,6 @@ #include <net/tcp.h> #include <scsi/scsi.h> #include <asm/byteorder.h> -#include <asm/unaligned.h> #ifdef INSIDE_KERNEL_TREE #include <scst/iscsit_transport.h> #else diff --git a/iscsi-scst/kernel/isert-scst/isert_login.c b/iscsi-scst/kernel/isert-scst/isert_login.c index 1ae05f9..6516217 100644 --- a/iscsi-scst/kernel/isert-scst/isert_login.c +++ b/iscsi-scst/kernel/isert-scst/isert_login.c @@ -889,7 +889,9 @@ static dev_t devno; static const struct file_operations listener_fops = { .owner = THIS_MODULE, +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) .llseek = no_llseek, +#endif .read = isert_listen_read, .unlocked_ioctl = isert_listen_ioctl, .compat_ioctl = isert_listen_ioctl, @@ -900,7 +902,9 @@ static const struct file_operations listener_fops = { static const struct file_operations conn_fops = { .owner = THIS_MODULE, +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) .llseek = no_llseek, +#endif .read = isert_read, .write = isert_write, .unlocked_ioctl = isert_ioctl, diff --git a/qla2x00t-32gbit/qla2x00-target/qla_tgt.c b/qla2x00t-32gbit/qla2x00-target/qla_tgt.c index 36b2896..b1bd5d8 100644 --- a/qla2x00t-32gbit/qla2x00-target/qla_tgt.c +++ b/qla2x00t-32gbit/qla2x00-target/qla_tgt.c @@ -37,7 +37,6 @@ #include <linux/delay.h> #include <linux/list.h> #include <linux/workqueue.h> -#include <asm/unaligned.h> #include <scsi/scsi.h> #include <scsi/scsi_host.h> #include <scsi/scsi_tcq.h> diff --git a/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c b/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c index d30fce6..b7ccd97 100644 --- a/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c +++ b/qla2x00t-32gbit/qla2x00-target/scst_qla2xxx.c @@ -43,7 +43,6 @@ #include <linux/types.h> #include <linux/delay.h> #include <linux/list.h> -#include <asm/unaligned.h> #include <linux/vmalloc.h> #ifdef INSIDE_KERNEL_TREE #include <scst/scst.h> diff --git a/qla2x00t-32gbit/qla_def.h b/qla2x00t-32gbit/qla_def.h index 733086f..09f4a6c 100644 --- a/qla2x00t-32gbit/qla_def.h +++ b/qla2x00t-32gbit/qla_def.h @@ -28,6 +28,11 @@ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) #include <linux/aer.h> #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) +#include <asm/unaligned.h> +#else +#include <linux/unaligned.h> +#endif #include <linux/mutex.h> #include <linux/btree.h> #include <linux/version.h> diff --git a/qla2x00t-32gbit/qla_dsd.h b/qla2x00t-32gbit/qla_dsd.h index 2078805..1a487d8 100644 --- a/qla2x00t-32gbit/qla_dsd.h +++ b/qla2x00t-32gbit/qla_dsd.h @@ -1,7 +1,14 @@ #ifndef _QLA_DSD_H_ #define _QLA_DSD_H_ +#ifndef INSIDE_KERNEL_TREE +#include <linux/version.h> +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) #include <asm/unaligned.h> +#else +#include <linux/unaligned.h> +#endif /* 32-bit data segment descriptor (8 bytes) */ struct dsd32 { diff --git a/qla2x00t-32gbit/qla_target.c b/qla2x00t-32gbit/qla_target.c index 48c4f86..8964148 100644 --- a/qla2x00t-32gbit/qla_target.c +++ b/qla2x00t-32gbit/qla_target.c @@ -23,7 +23,6 @@ #include <linux/delay.h> #include <linux/list.h> #include <linux/workqueue.h> -#include <asm/unaligned.h> #include <scsi/scsi.h> #include <scsi/scsi_host.h> #include <scsi/scsi_tcq.h> diff --git a/qla2x00t-32gbit/qla_target.h b/qla2x00t-32gbit/qla_target.h index 47b80b9..300501d 100644 --- a/qla2x00t-32gbit/qla_target.h +++ b/qla2x00t-32gbit/qla_target.h @@ -19,8 +19,6 @@ #ifndef __QLA_TARGET_H #define __QLA_TARGET_H -#include <linux/version.h> -#include <asm/unaligned.h> #include "qla_def.h" #include "qla_dsd.h" diff --git a/qla2x00t/qla2x00-target/qla2x00t.c b/qla2x00t/qla2x00-target/qla2x00t.c index 06ade1a..93d4987 100644 --- a/qla2x00t/qla2x00-target/qla2x00t.c +++ b/qla2x00t/qla2x00-target/qla2x00t.c @@ -32,7 +32,6 @@ #include <linux/delay.h> #include <linux/list.h> #include <linux/workqueue.h> -#include <asm/unaligned.h> #ifdef INSIDE_KERNEL_TREE #include <scst/scst.h> diff --git a/scst/include/backport.h b/scst/include/backport.h index 7c53e9d..6651a39 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -49,7 +49,11 @@ #include <scsi/scsi_eh.h> /* scsi_build_sense_buffer() */ struct scsi_target; #include <scsi/scsi_transport_fc.h> /* struct bsg_job */ -#include <asm/unaligned.h> /* get_unaligned_be64() */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) +#include <asm/unaligned.h> +#else +#include <linux/unaligned.h> +#endif /* <asm-generic/barrier.h> */ diff --git a/scst/include/scst.h b/scst/include/scst.h index 301d106..ebf5703 100644 --- a/scst/include/scst.h +++ b/scst/include/scst.h @@ -39,10 +39,14 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) #include <linux/sched/signal.h> #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) +#include <asm/unaligned.h> +#else +#include <linux/unaligned.h> +#endif #include <linux/wait.h> #include <linux/cpumask.h> #include <linux/dlm.h> -#include <asm/unaligned.h> #if 0 /* Let's disable it for now to see if users will complain about it */ #define CONFIG_SCST_PER_DEVICE_CMD_COUNT_LIMIT diff --git a/scst/src/dev_handlers/scst_cdrom.c b/scst/src/dev_handlers/scst_cdrom.c index d35be06..b3679c4 100644 --- a/scst/src/dev_handlers/scst_cdrom.c +++ b/scst/src/dev_handlers/scst_cdrom.c @@ -21,7 +21,6 @@ #include <linux/cdrom.h> #include <scsi/scsi_host.h> #include <linux/slab.h> -#include <asm/unaligned.h> #define LOG_PREFIX "dev_cdrom" diff --git a/scst/src/dev_handlers/scst_disk.c b/scst/src/dev_handlers/scst_disk.c index df2f436..d8f932b 100644 --- a/scst/src/dev_handlers/scst_disk.c +++ b/scst/src/dev_handlers/scst_disk.c @@ -26,7 +26,6 @@ #include <linux/blkdev.h> #include <scsi/scsi_host.h> #include <linux/slab.h> -#include <asm/unaligned.h> #define LOG_PREFIX "dev_disk" diff --git a/scst/src/dev_handlers/scst_modisk.c b/scst/src/dev_handlers/scst_modisk.c index ace4336..b096cd9 100644 --- a/scst/src/dev_handlers/scst_modisk.c +++ b/scst/src/dev_handlers/scst_modisk.c @@ -25,7 +25,6 @@ #include <linux/init.h> #include <scsi/scsi_host.h> #include <linux/slab.h> -#include <asm/unaligned.h> #define LOG_PREFIX "dev_modisk" diff --git a/scst/src/dev_handlers/scst_tape.c b/scst/src/dev_handlers/scst_tape.c index 845b98e..f164390 100644 --- a/scst/src/dev_handlers/scst_tape.c +++ b/scst/src/dev_handlers/scst_tape.c @@ -25,7 +25,6 @@ #include <linux/init.h> #include <scsi/scsi_host.h> #include <linux/slab.h> -#include <asm/unaligned.h> #define LOG_PREFIX "dev_tape" diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 0234743..8512511 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -50,7 +50,6 @@ #include <linux/delay.h> #include <linux/namei.h> #include <asm/div64.h> -#include <asm/unaligned.h> #include <linux/slab.h> #include <linux/bio.h> #include <linux/crc32c.h> diff --git a/scst/src/scst_copy_mgr.c b/scst/src/scst_copy_mgr.c index cf6f077..c6539b4 100644 --- a/scst/src/scst_copy_mgr.c +++ b/scst/src/scst_copy_mgr.c @@ -8,7 +8,6 @@ #include <linux/types.h> #include <linux/init.h> #include <linux/slab.h> -#include <asm/unaligned.h> #include <linux/delay.h> #ifdef INSIDE_KERNEL_TREE @@ -3898,4 +3897,3 @@ void __exit scst_cm_exit(void) TRACE_EXIT(); return; } - diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 551afba..5dcb8b1 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -32,7 +32,6 @@ #include <linux/ctype.h> #include <linux/delay.h> #include <linux/vmalloc.h> -#include <asm/unaligned.h> #include <asm/checksum.h> #ifndef INSIDE_KERNEL_TREE #include <linux/version.h> diff --git a/scst/src/scst_pres.c b/scst/src/scst_pres.c index b9c330a..aaf1092 100644 --- a/scst/src/scst_pres.c +++ b/scst/src/scst_pres.c @@ -40,7 +40,6 @@ #include <linux/version.h> #endif #include <linux/vmalloc.h> -#include <asm/unaligned.h> #ifdef INSIDE_KERNEL_TREE #include <scst/scst.h> diff --git a/scst/src/scst_tg.c b/scst/src/scst_tg.c index 0b8c72b..de5590a 100644 --- a/scst/src/scst_tg.c +++ b/scst/src/scst_tg.c @@ -18,7 +18,6 @@ #include <linux/moduleparam.h> #include <linux/delay.h> #include <linux/kmod.h> -#include <asm/unaligned.h> #ifdef INSIDE_KERNEL_TREE #include <scst/scst.h> #include <scst/scst_event.h> |