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
(17) |
Sep
(13) |
Oct
(15) |
Nov
(5) |
Dec
|
|
From: Gleb C. <lna...@ya...> - 2023-04-28 12:24:25
|
Commit: c0aea55 GitHub URL: https://github.com/SCST-project/scst/commit/c0aea55c52a80eb3936ca2e8aa43123a29f3a882 Author: Gleb Chesnokov Date: 2023-04-28T15:22:58+03:00 Log Message: ----------- qla2x00t: Declare SCSI host template const Make it explicit that the SCSI host template is not modified. Modified Paths: -------------- qla2x00t/qla_gbl.h | 2 +- qla2x00t/qla_mid.c | 2 +- qla2x00t/qla_os.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) =================================================================== diff --git a/qla2x00t/qla_gbl.h b/qla2x00t/qla_gbl.h index 936bc2d..8970ddd 100644 --- a/qla2x00t/qla_gbl.h +++ b/qla2x00t/qla_gbl.h @@ -131,7 +131,7 @@ extern int qla2x00_post_uevent_work(struct scsi_qla_host *, u32); extern int qla81xx_restart_mpi_firmware(scsi_qla_host_t *); -extern struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *, +extern struct scsi_qla_host *qla2x00_create_host(const struct scsi_host_template *, struct qla_hw_data *); extern void qla2x00_free_host(struct scsi_qla_host *); extern void qla2x00_relogin(struct scsi_qla_host *); diff --git a/qla2x00t/qla_mid.c b/qla2x00t/qla_mid.c index 8961c85..b591d7e 100644 --- a/qla2x00t/qla_mid.c +++ b/qla2x00t/qla_mid.c @@ -495,7 +495,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport) scsi_qla_host_t *base_vha = shost_priv(fc_vport->shost); struct qla_hw_data *ha = base_vha->hw; scsi_qla_host_t *vha; - struct scsi_host_template *sht = &qla2xxx_driver_template; + const struct scsi_host_template *sht = &qla2xxx_driver_template; struct Scsi_Host *host; vha = qla2x00_create_host(sht, ha); diff --git a/qla2x00t/qla_os.c b/qla2x00t/qla_os.c index 1b49c4d..2976b1b 100644 --- a/qla2x00t/qla_os.c +++ b/qla2x00t/qla_os.c @@ -3619,8 +3619,8 @@ qla2x00_mem_free(struct qla_hw_data *ha) ha->gid_list_dma = 0; } -struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *sht, - struct qla_hw_data *ha) +struct scsi_qla_host *qla2x00_create_host(const struct scsi_host_template *sht, + struct qla_hw_data *ha) { struct Scsi_Host *host; struct scsi_qla_host *vha = NULL; |
|
From: Gleb C. <lna...@ya...> - 2023-04-28 12:24:10
|
Commit: cd58d63 GitHub URL: https://github.com/SCST-project/scst/commit/cd58d6326bc4cef3fe9da5cede545d9196c5fe55 Author: Gleb Chesnokov Date: 2023-04-28T15:22:58+03:00 Log Message: ----------- qla2x00t-32gbit: Declare SCSI host template const Make it explicit that the SCSI host template is not modified. Signed-off-by: Bart Van Assche <bva...@ac...> Link: https://lore.kernel.org/r/202...@ac... Signed-off-by: Martin K. Petersen <mar...@or...> [ commit 421c20b7668e upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_gbl.h | 2 +- qla2x00t-32gbit/qla_mid.c | 2 +- qla2x00t-32gbit/qla_os.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_gbl.h b/qla2x00t-32gbit/qla_gbl.h index 4b4e0e5..82701c4 100644 --- a/qla2x00t-32gbit/qla_gbl.h +++ b/qla2x00t-32gbit/qla_gbl.h @@ -220,7 +220,7 @@ extern void qla2x00_free_exchoffld_buffer(struct qla_hw_data *); extern int qla81xx_restart_mpi_firmware(scsi_qla_host_t *); -extern struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *, +extern struct scsi_qla_host *qla2x00_create_host(const struct scsi_host_template *, struct qla_hw_data *); extern void qla2x00_free_host(struct scsi_qla_host *); extern void qla2x00_relogin(struct scsi_qla_host *); diff --git a/qla2x00t-32gbit/qla_mid.c b/qla2x00t-32gbit/qla_mid.c index 78661b6..b674169 100644 --- a/qla2x00t-32gbit/qla_mid.c +++ b/qla2x00t-32gbit/qla_mid.c @@ -496,7 +496,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport) scsi_qla_host_t *base_vha = shost_priv(fc_vport->shost); struct qla_hw_data *ha = base_vha->hw; scsi_qla_host_t *vha; - struct scsi_host_template *sht = &qla2xxx_driver_template; + const struct scsi_host_template *sht = &qla2xxx_driver_template; struct Scsi_Host *host; vha = qla2x00_create_host(sht, ha); diff --git a/qla2x00t-32gbit/qla_os.c b/qla2x00t-32gbit/qla_os.c index 268e0cd..50aa600 100644 --- a/qla2x00t-32gbit/qla_os.c +++ b/qla2x00t-32gbit/qla_os.c @@ -5078,8 +5078,8 @@ qla2x00_mem_free(struct qla_hw_data *ha) ha->vp_map = NULL; } -struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *sht, - struct qla_hw_data *ha) +struct scsi_qla_host *qla2x00_create_host(const struct scsi_host_template *sht, + struct qla_hw_data *ha) { struct Scsi_Host *host; struct scsi_qla_host *vha = NULL; |
|
From: Gleb C. <lna...@ya...> - 2023-04-28 12:23:53
|
Commit: d9bdab5 GitHub URL: https://github.com/SCST-project/scst/commit/d9bdab5ad29608798eb3ac2cf4325a76f8a06d71 Author: Gleb Chesnokov Date: 2023-04-28T15:22:58+03:00 Log Message: ----------- qla2x00t-32gbit: Refer directly to the qla2xxx_driver_template Access the qla2xxx_driver_template data structure directly instead of via the host pointer. This patch prepares for declaring the 'hostt' pointer const. Cc: Nilesh Javali <nj...@ma...> Signed-off-by: Bart Van Assche <bva...@ac...> Link: https://lore.kernel.org/r/202...@ac... Signed-off-by: Martin K. Petersen <mar...@or...> [ commit a07be936d923 upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_target.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_target.c b/qla2x00t-32gbit/qla_target.c index 859bdd8..9c19ba1 100644 --- a/qla2x00t-32gbit/qla_target.c +++ b/qla2x00t-32gbit/qla_target.c @@ -6463,8 +6463,7 @@ int qlt_add_target(struct qla_hw_data *ha, struct scsi_qla_host *base_vha) return -ENOMEM; } - if (!(base_vha->host->hostt->supported_mode & MODE_TARGET)) - base_vha->host->hostt->supported_mode |= MODE_TARGET; + qla2xxx_driver_template.supported_mode |= MODE_TARGET; rc = btree_init64(&tgt->lun_qpair_map); if (rc) { |
|
From: Gleb C. <lna...@ya...> - 2023-04-28 12:23:45
|
Commit: faac0a1 GitHub URL: https://github.com/SCST-project/scst/commit/faac0a19647a89be23a7ce9a4c03318bd1588802 Author: Gleb Chesnokov Date: 2023-04-28T15:22:58+03:00 Log Message: ----------- scst: Port to Linux kernel v6.4 Support for the following driver core changes in the Linux kernel v6.4: - 1aaba11da9aa ("driver core: class: remove module * from class_create()") - 2243acd50ac4 ("driver core: class: remove struct class_interface * from callbacks") Modified Paths: -------------- iscsi-scst/kernel/isert-scst/isert_login.c | 4 ++++ scst/src/dev_handlers/scst_user.c | 5 ++++- scst/src/scst_event.c | 4 ++++ scst/src/scst_main.c | 8 ++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) =================================================================== diff --git a/iscsi-scst/kernel/isert-scst/isert_login.c b/iscsi-scst/kernel/isert-scst/isert_login.c index 43abc5a..cd6d238 100644 --- a/iscsi-scst/kernel/isert-scst/isert_login.c +++ b/iscsi-scst/kernel/isert-scst/isert_login.c @@ -1000,7 +1000,11 @@ int __init isert_init_login_devs(unsigned int ndevs) goto fail; /* Make this more graceful */ } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) isert_class = class_create(THIS_MODULE, "isert_scst"); +#else + isert_class = class_create("isert_scst"); +#endif isert_setup_listener_cdev(&isert_listen_dev); diff --git a/scst/src/dev_handlers/scst_user.c b/scst/src/dev_handlers/scst_user.c index 0ceb8d2..b995f85 100644 --- a/scst/src/dev_handlers/scst_user.c +++ b/scst/src/dev_handlers/scst_user.c @@ -4154,8 +4154,11 @@ static int __init init_scst_user(void) if (res < 0) goto out_cache; - +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) dev_user_sysfs_class = class_create(THIS_MODULE, DEV_USER_NAME); +#else + dev_user_sysfs_class = class_create(DEV_USER_NAME); +#endif if (IS_ERR(dev_user_sysfs_class)) { PRINT_ERROR("%s", "Unable create sysfs class for SCST user " "space handler"); diff --git a/scst/src/scst_event.c b/scst/src/scst_event.c index 0194a57..593548e 100644 --- a/scst/src/scst_event.c +++ b/scst/src/scst_event.c @@ -1118,7 +1118,11 @@ int scst_event_init(void) goto out; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) scst_event_sysfs_class = class_create(THIS_MODULE, SCST_EVENT_NAME); +#else + scst_event_sysfs_class = class_create(SCST_EVENT_NAME); +#endif if (IS_ERR(scst_event_sysfs_class)) { PRINT_ERROR("Unable create sysfs class for SCST event"); res = PTR_ERR(scst_event_sysfs_class); diff --git a/scst/src/scst_main.c b/scst/src/scst_main.c index 2fdb9d8..564488d 100644 --- a/scst/src/scst_main.c +++ b/scst/src/scst_main.c @@ -2139,7 +2139,11 @@ unsigned int scst_get_setup_id(void) } EXPORT_SYMBOL_GPL(scst_get_setup_id); +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) static int scst_add(struct device *cdev, struct class_interface *intf) +#else +static int scst_add(struct device *cdev) +#endif { struct scsi_device *scsidp; int res = 0; @@ -2156,7 +2160,11 @@ static int scst_add(struct device *cdev, struct class_interface *intf) return res; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) static void scst_remove(struct device *cdev, struct class_interface *intf) +#else +static void scst_remove(struct device *cdev) +#endif { struct scsi_device *scsidp; |
|
From: Gleb C. <lna...@ya...> - 2023-04-28 12:23:25
|
Commit: cf94272 GitHub URL: https://github.com/SCST-project/scst/commit/cf94272cea0f1cc5e118a4a07bcbffdbc2279a8f Author: Gleb Chesnokov Date: 2023-04-28T15:22:58+03:00 Log Message: ----------- scst: Remove scst_module.c file I haven't been able to find any sign of this file being used since the initial commit, so remove this dead code. Modified Paths: -------------- debian/copyright | 1 - scripts/generate-kernel-patch | 2 +- scst/src/scst_module.c | 69 --------------- 3 files changed, 1 insertion(+), 71 deletions(-) =================================================================== diff --git a/debian/copyright b/debian/copyright index 25f2f54..dbbe702 100644 --- a/debian/copyright +++ b/debian/copyright @@ -225,7 +225,6 @@ Files: scst/Makefile scst/src/scst_main.c scst/src/scst_mem.c scst/src/scst_mem.h - scst/src/scst_module.c scst/src/scst_no_dlm.c scst/src/scst_pres.c scst/src/scst_pres.h diff --git a/scripts/generate-kernel-patch b/scripts/generate-kernel-patch index 7a3bcb9..09715c9 100755 --- a/scripts/generate-kernel-patch +++ b/scripts/generate-kernel-patch @@ -306,7 +306,7 @@ scst_io_context=0 scst_03_public_headers="scst/include/scst.h scst/include/scst_const.h \ scst/include/scst_event.h scst/include/backport.h" -scst_04_main="scst/src/scst_main.c scst/src/scst_module.c scst/src/scst_priv.h \ +scst_04_main="scst/src/scst_main.c scst/src/scst_priv.h \ scst/src/scst_copy_mgr.c scst/src/scst_dlm.c scst/src/scst_dlm.h \ scst/src/scst_event.c scst/src/scst_no_dlm.c" scst_05_targ="scst/src/scst_targ.c scst/src/scst_local_cmd.c \ diff --git a/scst/src/scst_module.c b/scst/src/scst_module.c deleted file mode 100644 index 1dcd71c..0000000 --- a/scst/src/scst_module.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * scst_module.c - * - * Copyright (C) 2004 - 2018 Vladislav Bolkhovitin <vs...@vl...> - * Copyright (C) 2004 - 2005 Leonid Stoljar - * Copyright (C) 2007 - 2018 Western Digital Corporation - * - * Support for loading target modules. The usage is similar to scsi_module.c - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, version 2 - * of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include <linux/module.h> -#include <linux/init.h> - -#include <scst.h> - -static int __init init_this_scst_driver(void) -{ - int res; - - TRACE_ENTRY(); - - res = scst_register_target_template(&driver_target_template); - TRACE_DBG("scst_register_target_template() returned %d", res); - if (res < 0) - goto out; - -#ifdef SCST_REGISTER_INITIATOR_DRIVER - driver_template.module = THIS_MODULE; - scsi_register_module(MODULE_SCSI_HA, &driver_template); - TRACE_DBG("driver_template.present=%d", - driver_template.present); - if (driver_template.present == 0) { - res = -ENODEV; - MOD_DEC_USE_COUNT; - goto out; - } -#endif - -out: - TRACE_EXIT_RES(res); - return res; -} - -static void __exit exit_this_scst_driver(void) -{ - TRACE_ENTRY(); - -#ifdef SCST_REGISTER_INITIATOR_DRIVER - scsi_unregister_module(MODULE_SCSI_HA, &driver_template); -#endif - - scst_unregister_target_template(&driver_target_template); - - TRACE_EXIT(); - return; -} - -module_init(init_this_scst_driver); -module_exit(exit_this_scst_driver); |
|
From: Gleb C. <lna...@ya...> - 2023-04-28 07:45:30
|
Commit: a3d55ab GitHub URL: https://github.com/SCST-project/scst/commit/a3d55ab7bdab554ba9e4b39b53477b3d0cc2a39e Author: Gleb Chesnokov Date: 2023-04-28T10:44:56+03:00 Log Message: ----------- nightly build: Update kernel versions Another kernel versions update following the 6.3 release. Modified Paths: -------------- nightly/conf/nightly.conf | 27 ++++++++------- 1 file changed, 14 insertions(+), 13 deletions(-) =================================================================== diff --git a/nightly/conf/nightly.conf b/nightly/conf/nightly.conf index 8987dfc..dec3437 100644 --- a/nightly/conf/nightly.conf +++ b/nightly/conf/nightly.conf @@ -3,36 +3,37 @@ ABT_DETAILS="x86_64" ABT_JOBS=5 ABT_KERNELS=" \ -6.2 \ -6.1.12-nc \ +6.3 \ +6.2.13-nc \ +6.1.26-nc \ 6.0.19-nc \ 5.19.17-nc \ 5.18.19-nc \ 5.17.15-nc \ 5.16.20-nc \ -5.15.94-nc \ +5.15.109-nc \ 5.14.21-nc \ 5.13.19-nc \ 5.12.19-nc \ 5.11.22-nc \ -5.10.168-nc \ +5.10.179-nc \ 5.9.16-nc \ 5.8.18-nc \ 5.7.19-nc \ 5.6.19-nc \ 5.5.19-nc \ -5.4.231-nc \ +5.4.242-nc \ 5.3.18-nc \ 5.2.21-nc \ 5.1.21-nc \ 5.0.21-nc \ 4.20.17-nc \ -4.19.272-nc \ +4.19.282-nc \ 4.18.20-nc \ 4.17.19-nc \ 4.16.18-nc \ 4.15.18-nc \ -4.14.305-nc \ +4.14.314-nc \ 4.13.16-nc \ 4.12.14-nc \ 4.11.12-nc \ @@ -57,9 +58,9 @@ ABT_KERNELS=" \ 3.12.74-nc \ 3.11.10-nc \ 3.10.108-nc \ -5.14.0-162.12.1.el9_1^AlmaLinux^9.1-nc \ +5.14.0-162.23.1.el9_1^AlmaLinux^9.1-nc \ 5.14.0-70.30.1.el9_0^AlmaLinux^9.0-nc \ -4.18.0-425.10.1.el8_7^AlmaLinux^8.7-nc \ +4.18.0-425.19.2.el8_7^AlmaLinux^8.7-nc \ 4.18.0-372.32.1.el8_6^AlmaLinux^8.6-nc \ 4.18.0-348.2.1.el8_5^CentOS^8.5.2111-nc \ 4.18.0-305.3.1.el8^CentOS^8.4.2105-nc \ @@ -72,13 +73,13 @@ 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-7.86.6.1.el9uek^UEK^9-nc \ -5.15.0-7.86.6.1.el8uek^UEK^8-nc \ -5.4.17-2136.316.7.el8uek^UEK^8-nc \ +5.15.0-8.91.4.1.el9uek^UEK^9-nc \ +5.15.0-8.91.4.1.el8uek^UEK^8-nc \ +5.4.17-2136.318.7.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.316.7.el7uek^UEK^7-nc \ +5.4.17-2136.318.7.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 \ |
|
From: Gleb C. <lna...@ya...> - 2023-04-24 14:54:06
|
Commit: bef30fd GitHub URL: https://github.com/SCST-project/scst/commit/bef30fd6d039db9e001d3c4ae694d95d52aee70e Author: Gleb Chesnokov Date: 2023-04-24T17:53:34+03:00 Log Message: ----------- scstadmin.spec: Fix RPM build errors This patch fixes RPM build errors caused by incorrect file paths: RPM build errors: File must begin with "/": %{perl_vendorlib}/SCST File must begin with "/": %{perl_vendorarch}/auto/SCST_SCST For some reasons, the perl_vendorlib and perl_vendorarch variables may not be defined by default on newer RHEL systems. Therefore, assign the variables explicitly to avoid these errors. Modified Paths: -------------- scstadmin/scstadmin.spec.in | 29 +++++++++------ 1 file changed, 17 insertions(+), 12 deletions(-) =================================================================== diff --git a/scstadmin/scstadmin.spec.in b/scstadmin/scstadmin.spec.in index 086aa6f..853c063 100644 --- a/scstadmin/scstadmin.spec.in +++ b/scstadmin/scstadmin.spec.in @@ -1,5 +1,8 @@ %define rpm_version @rpm_version@ %define make %{expand:%%(echo ${MAKE:-make})} +%define perl_vendorlib %(eval "`perl -V:installvendorlib`"; echo $installvendorlib) +%define perl_vendorarch %(eval "`perl -V:installvendorarch`"; echo $installvendorarch) +%define perl_archlib %(eval "`perl -V:installarchlib`"; echo $installarchlib) Name: scstadmin Version: %{rpm_version} @@ -26,19 +29,21 @@ Authors: -------- Mark R. Buechler, Bart Van Assche and others -%define scstadmin_perl_installvendorman3dir \ +%define scstadmin_perl_installvendorman3dir \ %(perl -V:installvendorman3dir | sed "s|.*='||;s|'.*||") -%define scstadmin_perl_process_packlist \ -set -x;\ -if test -n "$RPM_BUILD_ROOT" -a -d $RPM_BUILD_ROOT%perl_vendorarch/auto; then \ - find $RPM_BUILD_ROOT%perl_vendorarch/auto -name .packlist -print0 | \ - xargs -0 -r rm; \ - if [ %{_target_cpu} == noarch ]; then \ - find $RPM_BUILD_ROOT%perl_vendorarch/auto -depth -type d -print0 | \ - xargs -0 -r rmdir; \ - fi; \ - fi; \ - rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod; set +x + +%define scstadmin_perl_process_packlist \ +set -x; \ +if test -n "$RPM_BUILD_ROOT" -a -d $RPM_BUILD_ROOT%perl_vendorarch/auto; then \ + find $RPM_BUILD_ROOT%perl_vendorarch/auto -name .packlist -print0 | \ + xargs -0 -r rm; \ + if [ %{_target_cpu} == noarch ]; then \ + find $RPM_BUILD_ROOT%perl_vendorarch/auto -depth -type d -print0 | \ + xargs -0 -r rmdir; \ + fi; \ +fi; \ +rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod; \ +set +x %global debug_package %{nil} |
|
From: Gleb C. <lna...@ya...> - 2023-04-17 17:32:28
|
Commit: c326e96 GitHub URL: https://github.com/SCST-project/scst/commit/c326e96886ba29895fed8d259cb0123df94d0ef9 Author: Brian Meagher Date: 2023-04-17T20:31:58+03:00 Log Message: ----------- scst_lib,scst_sysfs: Add aen_disabled setting Add a setting to scst_tgt that can prevent scst_gen_aen_or_ua from generating an AEN, even if the underlying transport is capable of transmitting them. It will instead generate a UA. Modified Paths: -------------- scst/README | 7 ++ scst/include/scst.h | 9 ++ scst/src/scst_lib.c | 13 ++ scst/src/scst_sysfs.c | 98 +++++++++++++++ 4 files changed, 127 insertions(+) =================================================================== diff --git a/scst/README b/scst/README index f01dbb7..4e6e8ef 100644 --- a/scst/README +++ b/scst/README @@ -825,6 +825,13 @@ Every target should have at least the following entries: For instance, read_unaligned_cmd_count means number of 4K unaligned IOs. + - aen_disabled - if set this target port is not to send AEN (Asynchronous + Event Notification), but rather generate a Unit Attention - even if the + underlying transport does support AEN. + + This could prove useful in different situations including when the target + is also a forward_dst. + A target driver may have also the following entries: - "hw_target" - if the target driver supports both hardware and virtual diff --git a/scst/include/scst.h b/scst/include/scst.h index 1e754cb..0e9d299 100644 --- a/scst/include/scst.h +++ b/scst/include/scst.h @@ -481,6 +481,9 @@ enum scst_exec_res { /* Cache of tgt->tgt_forward_dst */ #define SCST_TGT_DEV_FORWARD_DST 5 +/* Cache of tgt->tgt_aen_disabled */ +#define SCST_TGT_DEV_AEN_DISABLED 6 + /************************************************************* ** I/O grouping types. Changing them don't forget to change ** the corresponding *_STR values in scst_const.h! @@ -1694,6 +1697,12 @@ struct scst_tgt { */ unsigned tgt_forward_dst:1; + /* + * Set if do not to wish to send AEN from this target port, even if + * supported by the transport. Send a UA instead. + */ + unsigned int tgt_aen_disabled:1; + /* Per target analog of the corresponding driver's fields */ unsigned tgt_dif_supported:1; unsigned tgt_hw_dif_type1_supported:1; diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index bc41c71..722a3cb 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -2511,6 +2511,15 @@ void scst_gen_aen_or_ua(struct scst_tgt_dev *tgt_dev, sess->shut_phase != SCST_SESS_SPH_READY) goto out; + if (unlikely(test_bit(SCST_TGT_DEV_AEN_DISABLED, + &tgt_dev->tgt_dev_flags))) { + /* + * We have decided not to generate an AEN + * even if supported by the transport. + */ + goto queue_ua; + } + if (tgtt->report_aen != NULL) { struct scst_aen *aen; int rc; @@ -5300,6 +5309,10 @@ static int scst_alloc_add_tgt_dev(struct scst_session *sess, set_bit(SCST_TGT_DEV_FORWARD_DST, &tgt_dev->tgt_dev_flags); else clear_bit(SCST_TGT_DEV_FORWARD_DST, &tgt_dev->tgt_dev_flags); + if (sess->tgt->tgt_aen_disabled) + set_bit(SCST_TGT_DEV_AEN_DISABLED, &tgt_dev->tgt_dev_flags); + else + clear_bit(SCST_TGT_DEV_AEN_DISABLED, &tgt_dev->tgt_dev_flags); tgt_dev->hw_dif_same_sg_layout_required = sess->tgt->tgt_hw_dif_same_sg_layout_required; tgt_dev->tgt_dev_dif_guard_format = acg_dev->acg_dev_dif_guard_format; if (tgt_dev->tgt_dev_dif_guard_format == SCST_DIF_GUARD_FORMAT_IP) diff --git a/scst/src/scst_sysfs.c b/scst/src/scst_sysfs.c index 14db134..4fadd86 100644 --- a/scst/src/scst_sysfs.c +++ b/scst/src/scst_sysfs.c @@ -2601,6 +2601,103 @@ static struct kobj_attribute scst_tgt_forwarding = __ATTR(forwarding, S_IRUGO | S_IWUSR, scst_tgt_forward_dst_show, scst_tgt_forward_dst_store); +static ssize_t scst_tgt_aen_disabled_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct scst_tgt *tgt; + int res; + + TRACE_ENTRY(); + + tgt = container_of(kobj, struct scst_tgt, tgt_kobj); + + res = sprintf(buf, "%d\n%s", tgt->tgt_aen_disabled, + tgt->tgt_aen_disabled ? SCST_SYSFS_KEY_MARK "\n" : ""); + + TRACE_EXIT_RES(res); + return res; +} + +static ssize_t scst_tgt_aen_disabled_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, size_t count) +{ + int res = 0; + struct scst_tgt *tgt; + struct scst_session *sess; + int old; + + TRACE_ENTRY(); + + if ((buf == NULL) || (count == 0)) { + res = 0; + goto out; + } + + tgt = container_of(kobj, struct scst_tgt, tgt_kobj); + + mutex_lock(&scst_mutex); + + old = tgt->tgt_aen_disabled; + + switch (buf[0]) { + case '0': + tgt->tgt_aen_disabled = 0; + break; + case '1': + tgt->tgt_aen_disabled = 1; + break; + default: + PRINT_ERROR("%s: Requested action not understood: %s", + __func__, buf); + res = -EINVAL; + goto out_unlock; + } + + if (tgt->tgt_aen_disabled == old) + goto out_unlock; + + list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) { + int i; + + rcu_read_lock(); + for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { + struct list_head *head = &sess->sess_tgt_dev_list[i]; + struct scst_tgt_dev *tgt_dev; + + list_for_each_entry_rcu(tgt_dev, head, sess_tgt_dev_list_entry) { + if (tgt->tgt_aen_disabled) + set_bit(SCST_TGT_DEV_AEN_DISABLED, + &tgt_dev->tgt_dev_flags); + else + clear_bit(SCST_TGT_DEV_AEN_DISABLED, + &tgt_dev->tgt_dev_flags); + } + } + rcu_read_unlock(); + } + + if (tgt->tgt_aen_disabled) + PRINT_INFO("Set AEN disabled for target %s", + tgt->tgt_name); + else + PRINT_INFO("Clear AEN disabled for target %s", + tgt->tgt_name); + +out_unlock: + mutex_unlock(&scst_mutex); + + if (res == 0) + res = count; + +out: + TRACE_EXIT_RES(res); + return res; +} + +static struct kobj_attribute scst_tgt_aen_disabled = + __ATTR(aen_disabled, 0644, scst_tgt_aen_disabled_show, + scst_tgt_aen_disabled_store); + static ssize_t scst_tgt_comment_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -2875,6 +2972,7 @@ static struct attribute *scst_tgt_attrs[] = { &scst_rel_tgt_id.attr, &scst_tgt_forward_src.attr, &scst_tgt_forward_dst.attr, + &scst_tgt_aen_disabled.attr, &scst_tgt_forwarding.attr, &scst_tgt_comment.attr, &scst_tgt_addr_method.attr, |
|
From: Gleb C. <lna...@ya...> - 2023-04-17 14:17:32
|
Commit: 33b8323 GitHub URL: https://github.com/SCST-project/scst/commit/33b8323a81c650d1bf743d2e0de721992bc95389 Author: Gleb Chesnokov Date: 2023-04-17T17:16:42+03:00 Log Message: ----------- scst_lib: Avoid holding scst_mutex during sess_tgt_dev_list access In the previous commit, we introduced the use of RCU protection when accessing sess_tgt_dev_list in scst_get_max_lun_commands(). As a result, we can now drop the use of scst_mutex when accessing the list. Modified Paths: -------------- scst/src/scst_lib.c | 16 ++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) =================================================================== diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index d7b1c6b..bc41c71 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -14084,11 +14084,11 @@ int scst_get_max_lun_commands(struct scst_session *sess, uint64_t lun) TRACE_ENTRY(); - mutex_lock(&scst_mutex); - if (sess == NULL) { struct scst_device *dev; + mutex_lock(&scst_mutex); + list_for_each_entry(dev, &scst_dev_list, dev_list_entry) { if (dev->handler == &scst_null_devtype) continue; @@ -14097,7 +14097,10 @@ int scst_get_max_lun_commands(struct scst_session *sess, uint64_t lun) if (res > dev->max_tgt_dev_commands) res = dev->max_tgt_dev_commands; } - goto out_unlock; + + mutex_unlock(&scst_mutex); + + goto out; } if (lun != NO_SUCH_LUN) { @@ -14118,7 +14121,7 @@ int scst_get_max_lun_commands(struct scst_session *sess, uint64_t lun) } rcu_read_unlock(); - goto out_unlock; + goto out; } rcu_read_lock(); @@ -14133,10 +14136,9 @@ int scst_get_max_lun_commands(struct scst_session *sess, uint64_t lun) } rcu_read_unlock(); -out_unlock: - mutex_unlock(&scst_mutex); - +out: TRACE_EXIT_RES(res); + return res; } EXPORT_SYMBOL(scst_get_max_lun_commands); |
|
From: Gleb C. <lna...@ya...> - 2023-04-17 14:17:18
|
Commit: c9198bb GitHub URL: https://github.com/SCST-project/scst/commit/c9198bb027afd42590e780eb579e35a387929136 Author: Gleb Chesnokov Date: 2023-04-17T17:16:42+03:00 Log Message: ----------- scst: Use RCU read lock when accessing sess_tgt_dev_list We must always protect sess_tgt_dev_list during access and modification. There are two mechanisms for that: - tgt_dev_list_mutex for list modifications. - RCU for read-only list accesses. Currently, the codebase doesn't consistently apply protection when accessing the list. Fix this by adding RCU protection. See also commit 3e64094b0c14 ("scst_sysfs: Do not suspend I/O for LUN management"). Modified Paths: -------------- scst/src/scst_lib.c | 20 ++++++++++----- scst/src/scst_sysfs.c | 4 ++- scst/src/scst_targ.c | 18 +++++++------ 3 files changed, 26 insertions(+), 16 deletions(-) =================================================================== diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 3de9fbc..d7b1c6b 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -14101,31 +14101,37 @@ int scst_get_max_lun_commands(struct scst_session *sess, uint64_t lun) } if (lun != NO_SUCH_LUN) { - struct list_head *head = - &sess->sess_tgt_dev_list[SESS_TGT_DEV_LIST_HASH_FN(lun)]; + struct list_head *head; struct scst_tgt_dev *tgt_dev; - list_for_each_entry(tgt_dev, head, sess_tgt_dev_list_entry) { + rcu_read_lock(); + head = &sess->sess_tgt_dev_list[SESS_TGT_DEV_LIST_HASH_FN(lun)]; + + list_for_each_entry_rcu(tgt_dev, head, sess_tgt_dev_list_entry) { if (tgt_dev->lun == lun) { res = tgt_dev->dev->max_tgt_dev_commands; - TRACE_DBG("tgt_dev %p, dev %s, max_tgt_dev_commands " - "%d (res %d)", tgt_dev, tgt_dev->dev->virt_name, - tgt_dev->dev->max_tgt_dev_commands, res); + TRACE_DBG("tgt_dev %p, dev %s, max_tgt_dev_commands %d (res %d)", + tgt_dev, tgt_dev->dev->virt_name, + tgt_dev->dev->max_tgt_dev_commands, res); break; } } + rcu_read_unlock(); + goto out_unlock; } + rcu_read_lock(); for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { struct list_head *head = &sess->sess_tgt_dev_list[i]; struct scst_tgt_dev *tgt_dev; - list_for_each_entry(tgt_dev, head, sess_tgt_dev_list_entry) { + list_for_each_entry_rcu(tgt_dev, head, sess_tgt_dev_list_entry) { if (res > tgt_dev->dev->max_tgt_dev_commands) res = tgt_dev->dev->max_tgt_dev_commands; } } + rcu_read_unlock(); out_unlock: mutex_unlock(&scst_mutex); diff --git a/scst/src/scst_sysfs.c b/scst/src/scst_sysfs.c index b5d1cfe..14db134 100644 --- a/scst/src/scst_sysfs.c +++ b/scst/src/scst_sysfs.c @@ -2557,11 +2557,12 @@ static ssize_t scst_tgt_forward_dst_store(struct kobject *kobj, list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) { int i; + rcu_read_lock(); for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { struct list_head *head = &sess->sess_tgt_dev_list[i]; struct scst_tgt_dev *tgt_dev; - list_for_each_entry(tgt_dev, head, sess_tgt_dev_list_entry) { + list_for_each_entry_rcu(tgt_dev, head, sess_tgt_dev_list_entry) { if (tgt->tgt_forward_dst) set_bit(SCST_TGT_DEV_FORWARD_DST, &tgt_dev->tgt_dev_flags); @@ -2570,6 +2571,7 @@ static ssize_t scst_tgt_forward_dst_store(struct kobject *kobj, &tgt_dev->tgt_dev_flags); } } + rcu_read_unlock(); } if (tgt->tgt_forward_dst) diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index d57a706..8667b3b 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -6153,7 +6153,6 @@ static int scst_abort_all_nexus_loss_sess(struct scst_mgmt_cmd *mcmd, int res; int i; struct scst_session *sess = mcmd->sess; - struct scst_tgt_dev *tgt_dev; TRACE_ENTRY(); @@ -6168,6 +6167,7 @@ static int scst_abort_all_nexus_loss_sess(struct scst_mgmt_cmd *mcmd, rcu_read_lock(); for (i = 0; i < SESS_TGT_DEV_LIST_HASH_SIZE; i++) { struct list_head *head = &sess->sess_tgt_dev_list[i]; + struct scst_tgt_dev *tgt_dev; list_for_each_entry_rcu(tgt_dev, head, sess_tgt_dev_list_entry) { @@ -6175,8 +6175,8 @@ static int scst_abort_all_nexus_loss_sess(struct scst_mgmt_cmd *mcmd, scst_call_dev_task_mgmt_fn_received(mcmd, tgt_dev); - tm_dbg_task_mgmt(tgt_dev->dev, "NEXUS LOSS SESS or " - "ABORT ALL SESS or UNREG SESS", + tm_dbg_task_mgmt(tgt_dev->dev, + "NEXUS LOSS SESS or ABORT ALL SESS or UNREG SESS", (mcmd->fn == SCST_UNREG_SESS_TM)); } if (nexus_loss_unreg_sess) { @@ -6184,7 +6184,8 @@ static int scst_abort_all_nexus_loss_sess(struct scst_mgmt_cmd *mcmd, * We need at first abort all affected commands and * only then release them as part of clearing ACA */ - list_for_each_entry(tgt_dev, head, sess_tgt_dev_list_entry) { + list_for_each_entry_rcu(tgt_dev, head, + sess_tgt_dev_list_entry) { scst_clear_aca(tgt_dev, (tgt_dev != mcmd->mcmd_tgt_dev)); } @@ -6253,22 +6254,23 @@ static int scst_abort_all_nexus_loss_tgt(struct scst_mgmt_cmd *mcmd, struct scst_tgt_dev *tgt_dev; list_for_each_entry_rcu(tgt_dev, head, - sess_tgt_dev_list_entry) { + sess_tgt_dev_list_entry) { __scst_abort_task_set(mcmd, tgt_dev); if (mcmd->sess == tgt_dev->sess) scst_call_dev_task_mgmt_fn_received( mcmd, tgt_dev); - tm_dbg_task_mgmt(tgt_dev->dev, "NEXUS LOSS or " - "ABORT ALL", 0); + tm_dbg_task_mgmt(tgt_dev->dev, + "NEXUS LOSS or ABORT ALL", 0); } if (nexus_loss) { /* * We need at first abort all affected commands and * only then release them as part of clearing ACA */ - list_for_each_entry(tgt_dev, head, sess_tgt_dev_list_entry) { + list_for_each_entry_rcu(tgt_dev, head, + sess_tgt_dev_list_entry) { scst_clear_aca(tgt_dev, (tgt_dev != mcmd->mcmd_tgt_dev)); } |
|
From: Gleb C. <lna...@ya...> - 2023-04-12 08:09:07
|
Commit: 6ff72c8 GitHub URL: https://github.com/SCST-project/scst/commit/6ff72c8153ef230fa36329deeb71a024300d14ef Author: Gleb Chesnokov Date: 2023-04-12T11:08:39+03:00 Log Message: ----------- qla2x00t-32gbit: Fix memory leak in qla2x00_probe_one() There is a memory leak reported by kmemleak: unreferenced object 0xffffc900003f0000 (size 12288): comm "modprobe", pid 19117, jiffies 4299751452 (age 42490.264s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000629261a8>] __vmalloc_node_range+0xe56/0x1110 [<0000000001906886>] __vmalloc_node+0xbd/0x150 [<000000005bb4dc34>] vmalloc+0x25/0x30 [<00000000a2dc1194>] qla2x00_create_host+0x7a0/0xe30 [qla2xxx] [<0000000062b14b47>] qla2x00_probe_one+0x2eb8/0xd160 [qla2xxx] [<00000000641ccc04>] local_pci_probe+0xeb/0x1a0 The root cause is traced to an error-handling path in qla2x00_probe_one() when the adapter "base_vha" initialize failed. The fab_scan_rp "scan.l" is used to record the port information and it is allocated in qla2x00_create_host(). However, it is not released in the error handling path "probe_failed". Fix this by freeing the memory of "scan.l" when an error occurs in the adapter initialization process. Fixes: a4239945b8ad ("scsi: qla2xxx: Add switch command to simplify fabric discovery") Signed-off-by: Li Zetao <liz...@hu...> Link: https://lore.kernel.org/r/202...@hu... Reviewed-by: Himanshu Madhani <him...@or...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit 85ade4010e13 upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_os.c | 1 + 1 file changed, 1 insertion(+) =================================================================== diff --git a/qla2x00t-32gbit/qla_os.c b/qla2x00t-32gbit/qla_os.c index 923dbf7..268e0cd 100644 --- a/qla2x00t-32gbit/qla_os.c +++ b/qla2x00t-32gbit/qla_os.c @@ -3671,6 +3671,7 @@ skip_dpc: probe_failed: qla_enode_stop(base_vha); qla_edb_stop(base_vha); + vfree(base_vha->scan.l); if (base_vha->gnl.l) { dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, base_vha->gnl.l, base_vha->gnl.ldma); |
|
From: Gleb C. <lna...@ya...> - 2023-04-11 08:53:17
|
Commit: 81a959e GitHub URL: https://github.com/SCST-project/scst/commit/81a959e68eb183c4070b7275467fe45af39fc575 Author: Gleb Chesnokov Date: 2023-04-11T11:52:35+03:00 Log Message: ----------- README.md: Add SCST logo and github downloads badge Enhance the project's README and provide an easy way to track the total number of downloads. Modified Paths: -------------- README.md | 5 +++++ www/images/logo.png | Bin 0 -> 390055 bytes 2 files changed, 5 insertions(+) =================================================================== diff --git a/README.md b/README.md index 5330deb..0c851bd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ +<h1 align="center"> + <img src="./www/images/logo.png" alt="SCST" width="250" /> +</h1> + [](https://scan.coverity.com/projects/scst-project) +[](https://github.com/SCST-project/scst/releases) # Overview diff --git a/www/images/logo.png b/www/images/logo.png new file mode 100644 index 0000000..d12dcc5 Binary files /dev/null and b/www/images/logo.png differ |
|
From: Gleb C. <lna...@ya...> - 2023-04-11 08:53:07
|
Commit: 1376ad0 GitHub URL: https://github.com/SCST-project/scst/commit/1376ad014d2187089b91066295811a889bfb80de Author: Gleb Chesnokov Date: 2023-04-11T11:52:35+03:00 Log Message: ----------- github: Add a GitHub action to run checkpatch upon pull request Add a new GitHub Actions workflow, checkpatch_pull.yml, which runs checkpatch.pl for each commit in a pull request targeting the master branch. This change ensures proper checkpatch validation for both push and pull request events. Modified Paths: -------------- .github/workflows/checkpatch.yml | 42 ------------- .github/workflows/checkpatch_pull.yml | 47 +++++++++++++++ .github/workflows/checkpatch_push.yml | 45 ++++++++++++++ 3 files changed, 92 insertions(+), 42 deletions(-) =================================================================== diff --git a/.github/workflows/checkpatch_pull.yml b/.github/workflows/checkpatch_pull.yml new file mode 100644 index 0000000..3cb4eee --- /dev/null +++ b/.github/workflows/checkpatch_pull.yml @@ -0,0 +1,47 @@ +name: Checkpatch upon pull + +on: + pull_request: + branches: + - master + +jobs: + checkpatch: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + ref: ${{github.event.pull_request.head.sha}} + fetch-depth: 0 + + - name: Download checkpatch.pl + run: | + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl -o checkpatch.pl + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/spelling.txt -o spelling.txt + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/const_structs.checkpatch -o const_structs.checkpatch + chmod +x checkpatch.pl + + - name: Run checkpatch.pl + run: | + ignore=( + MISSING_SIGN_OFF + EMAIL_SUBJECT + UNKNOWN_COMMIT_ID + NO_AUTHOR_SIGN_OFF + FILE_PATH_CHANGES + SPDX_LICENSE_TAG + LINUX_VERSION_CODE + CONSTANT_COMPARISON + SPACING + ) + ignore_str=${ignore[*]} + + base_commit=${{github.event.pull_request.base.sha}} + commits=$(git log --pretty=format:"%h" $base_commit..HEAD) + + for commit in $commits; do + echo "Running checkpatch.pl for commit $commit" + git format-patch -1 --stdout $commit | ./checkpatch.pl --no-tree --show-types --ignore="${ignore_str// /,}" - + echo + done diff --git a/.github/workflows/checkpatch.yml b/.github/workflows/checkpatch_push.yml similarity index 94% rename from .github/workflows/checkpatch.yml rename to .github/workflows/checkpatch_push.yml index 080327d..98484cd 100644 --- a/.github/workflows/checkpatch.yml +++ b/.github/workflows/checkpatch_push.yml @@ -1,6 +1,9 @@ -name: Checkpatch +name: Checkpatch upon push -on: [push] +on: + push: + branches: + - master jobs: checkpatch: |
|
From: Gleb C. <lna...@ya...> - 2023-04-06 10:03:25
|
Commit: 87681c0 GitHub URL: https://github.com/SCST-project/scst/commit/87681c0d9a1c7b0dad61bc6bb7d6570955b4ffd3 Author: Gleb Chesnokov Date: 2023-04-06T13:02:25+03:00 Log Message: ----------- scst: Unbreak the RHEL 9.2 build See also PR https://github.com/SCST-project/scst/pull/145. Modified Paths: -------------- iscsi-scst/include/iscsi_scst.h | 10 +++++++++- qla2x00t-32gbit/qla_os.c | 8 +++++--- scst/src/dev_handlers/scst_vdisk.c | 8 ++++++-- scst/src/scst_lib.c | 12 ++++++++---- scst_local/scst_local.c | 8 ++++++-- 5 files changed, 34 insertions(+), 12 deletions(-) =================================================================== diff --git a/iscsi-scst/include/iscsi_scst.h b/iscsi-scst/include/iscsi_scst.h index 486c128..985621c 100644 --- a/iscsi-scst/include/iscsi_scst.h +++ b/iscsi-scst/include/iscsi_scst.h @@ -20,6 +20,12 @@ #include <linux/uaccess.h> /* mm_segment_t */ #include <linux/version.h> +#ifdef INSIDE_KERNEL_TREE +#include <scst/backport.h> +#else +#include "backport.h" +#endif + /* <asm/uaccess.h> */ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) @@ -33,7 +39,9 @@ * to write kernel code that is compatible with all kernel versions. */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) || \ + (defined(RHEL_RELEASE_CODE) && \ + RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(9, 2)) /* * Backport mm_segment_t to save compatibility with older kernel versions. * diff --git a/qla2x00t-32gbit/qla_os.c b/qla2x00t-32gbit/qla_os.c index cd0e996..923dbf7 100644 --- a/qla2x00t-32gbit/qla_os.c +++ b/qla2x00t-32gbit/qla_os.c @@ -375,14 +375,16 @@ static void qla2x00_clear_drv_active(struct qla_hw_data *); static void qla2x00_free_device(scsi_qla_host_t *); #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) /* * See also commit a4e1d0b76e7b ("block: Change the return type of * blk_mq_map_queues() into void") # v6.1. */ -#define MAP_QUEUES_RET void -#else +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) #define MAP_QUEUES_RET int +#else +#define MAP_QUEUES_RET void #endif static MAP_QUEUES_RET qla2xxx_map_queues(struct Scsi_Host *shost); diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 00d76ed..95a3bf4 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -3159,7 +3159,9 @@ struct bio_vec *vdisk_map_pages_to_bvec(struct bio_vec *bvec, struct page *page, } static void fileio_async_complete(struct kiocb *iocb, long ret -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) , long ret2 #endif ) @@ -3269,7 +3271,9 @@ static enum compl_status_e fileio_exec_async(struct vdisk_cmd_params *p) if (p->async.bvec != p->async.small_bvec) kfree(p->async.bvec); if (ret != -EIOCBQUEUED) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) fileio_async_complete(iocb, ret, 0); #else fileio_async_complete(iocb, ret); diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index bc3a83a..3de9fbc 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -8560,14 +8560,16 @@ out: static void scsi_end_async(struct request *req, int error) #else -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) /* * See also commit de671d6116b5 ("block: change request end_io handler to pass * back a return value") # v6.1. */ -#define RQ_END_IO_RET enum rq_end_io_ret -#else +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) #define RQ_END_IO_RET void +#else +#define RQ_END_IO_RET enum rq_end_io_ret #endif static RQ_END_IO_RET scsi_end_async(struct request *req, blk_status_t error) @@ -8619,7 +8621,9 @@ static RQ_END_IO_RET scsi_end_async(struct request *req, blk_status_t error) kmem_cache_free(scsi_io_context_cache, sioc); -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 21, 0) && \ (!defined(RHEL_MAJOR) || RHEL_MAJOR -0 < 8) /* See also commit 92bc5a24844a ("block: remove __blk_put_request()") */ diff --git a/scst_local/scst_local.c b/scst_local/scst_local.c index cda53aa..bffe255 100644 --- a/scst_local/scst_local.c +++ b/scst_local/scst_local.c @@ -1462,8 +1462,12 @@ out: return ret; } -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) -/* See also commit fc7a6209d571 ("bus: Make remove callback return void") */ +/* + * See also commit fc7a6209d571 ("bus: Make remove callback return void") + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 2)) #define DRIVER_REMOVE_RET int #else #define DRIVER_REMOVE_RET void |
|
From: Gleb C. <lna...@ya...> - 2023-04-06 10:03:16
|
Commit: 6f9a595 GitHub URL: https://github.com/SCST-project/scst/commit/6f9a595f244820ddf13fc470d89b3e2fa194c522 Author: Gleb Chesnokov Date: 2023-04-06T13:02:25+03:00 Log Message: ----------- scst/include/backport.h: Fix the RHEL 9.0 build Commit 9be09fd68b46 ("scst/include/backport.h: Fix building on RHEL 8.8") fixed the build for RHEL 8.8, but at the same time, it broke the build for RHEL 9.0. Modified Paths: -------------- scst/include/backport.h | 42 ++++++++------- 1 file changed, 22 insertions(+), 20 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 44ef2e9..66671bc 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -1471,10 +1471,8 @@ static inline void scsi_build_sense(struct scsi_cmnd *scmd, int desc, #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) && \ (!defined(RHEL_RELEASE_CODE) || \ - RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 1)) - -#if (!defined(RHEL_RELEASE_CODE) || \ - RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7)) + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7) || \ + RHEL_RELEASE_CODE -0 == RHEL_RELEASE_VERSION(9, 0)) /* * See also 51f3a4788928 ("scsi: core: Introduce the scsi_cmd_to_rq() * function"). @@ -1485,27 +1483,18 @@ static inline struct request *scsi_cmd_to_rq(struct scsi_cmnd *scmd) } #endif -/* - * See also commit c611529e7cd3 ("sd: Honor block layer integrity handling - * flags"; v3.18). - */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) -static inline unsigned int scsi_prot_interval(struct scsi_cmnd *scmd) -{ - /* To do: backport this function properly. */ - WARN_ON_ONCE(true); - return 512; -} -#endif - /* * See also commits 7ba46799d346 ("scsi: core: Add scsi_prot_ref_tag() * helper") and ddd0bc756983 ("block: move ref_tag calculation func to the * block layer"; v4.19). */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || \ - (defined(RHEL_RELEASE_CODE) && \ - RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7))) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) && \ + (!defined(RHEL_RELEASE_CODE) || \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 1)) + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || \ + (defined(RHEL_RELEASE_CODE) && \ + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7)) static inline u32 scsi_prot_ref_tag(struct scsi_cmnd *scmd) { #if defined(RHEL_MAJOR) && RHEL_MAJOR -0 == 7 @@ -1520,6 +1509,19 @@ static inline u32 scsi_prot_ref_tag(struct scsi_cmnd *scmd) #endif #endif +/* + * See also commit c611529e7cd3 ("sd: Honor block layer integrity handling + * flags"; v3.18). + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) +static inline unsigned int scsi_prot_interval(struct scsi_cmnd *scmd) +{ + /* To do: backport this function properly. */ + WARN_ON_ONCE(true); + return 512; +} +#endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0) && \ (!defined(RHEL_RELEASE_CODE) || \ RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 1)) |
|
From: Gleb C. <lna...@ya...> - 2023-04-06 10:02:57
|
Commit: 4fdb527 GitHub URL: https://github.com/SCST-project/scst/commit/4fdb5273b67228a70c0d57d6214d6fe07ae8bc33 Author: Gleb Chesnokov Date: 2023-04-06T13:02:25+03:00 Log Message: ----------- github/checkpatch.yml: Simplify script Simplify the script by removing an unnecessary call to `echo`. Modified Paths: -------------- .github/workflows/checkpatch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) =================================================================== diff --git a/.github/workflows/checkpatch.yml b/.github/workflows/checkpatch.yml index c383886..080327d 100644 --- a/.github/workflows/checkpatch.yml +++ b/.github/workflows/checkpatch.yml @@ -39,4 +39,4 @@ jobs: ) ignore_str=${ignore[*]} - git format-patch -1 --stdout | ./checkpatch.pl --no-tree --show-types --ignore=$(echo "${ignore_str// /,}") - + git format-patch -1 --stdout | ./checkpatch.pl --no-tree --show-types --ignore="${ignore_str// /,}" - |
|
From: Gleb C. <lna...@ya...> - 2023-04-05 11:55:30
|
Commit: 0717a72 GitHub URL: https://github.com/SCST-project/scst/commit/0717a72052c63b702fc1d8eca5d1af19e0364410 Author: Gleb Chesnokov Date: 2023-04-05T14:54:49+03:00 Log Message: ----------- github: Add a GitHub action to run checkpatch upon push Introduce a new GitHub action that automatically runs the checkpatch.pl script upon each push to the repository. Modified Paths: -------------- .github/workflows/checkpatch.yml | 42 +++++++++++++++ 1 file changed, 42 insertions(+) =================================================================== diff --git a/.github/workflows/checkpatch.yml b/.github/workflows/checkpatch.yml new file mode 100644 index 0000000..c383886 --- /dev/null +++ b/.github/workflows/checkpatch.yml @@ -0,0 +1,42 @@ +name: Checkpatch + +on: [push] + +jobs: + checkpatch: + name: ${{matrix.commit.message}} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + commit: ${{github.event.commits}} + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + ref: ${{matrix.commit.id}} + fetch-depth: 2 + + - name: Download checkpatch.pl + run: | + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl -o checkpatch.pl + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/spelling.txt -o spelling.txt + curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/const_structs.checkpatch -o const_structs.checkpatch + chmod +x checkpatch.pl + + - name: Run checkpatch.pl + run: | + ignore=( + MISSING_SIGN_OFF + EMAIL_SUBJECT + UNKNOWN_COMMIT_ID + NO_AUTHOR_SIGN_OFF + FILE_PATH_CHANGES + SPDX_LICENSE_TAG + LINUX_VERSION_CODE + CONSTANT_COMPARISON + SPACING + ) + ignore_str=${ignore[*]} + + git format-patch -1 --stdout | ./checkpatch.pl --no-tree --show-types --ignore=$(echo "${ignore_str// /,}") - |
|
From: Gleb C. <lna...@ya...> - 2023-04-05 11:55:18
|
Commit: e5b936f GitHub URL: https://github.com/SCST-project/scst/commit/e5b936f10b35b3371c1398aad4e9eeb7b93e2c86 Author: Gleb Chesnokov Date: 2023-04-05T14:54:49+03:00 Log Message: ----------- github: Add a job name for the mail notification action Enhance the mail notification GitHub action by including the commit message in the job name. Modified Paths: -------------- .github/workflows/mail_notification.yml | 1 + 1 file changed, 1 insertion(+) =================================================================== diff --git a/.github/workflows/mail_notification.yml b/.github/workflows/mail_notification.yml index e66ecc8..ee54d3b 100644 --- a/.github/workflows/mail_notification.yml +++ b/.github/workflows/mail_notification.yml @@ -9,6 +9,7 @@ on: jobs: send_mails: + name: ${{matrix.commit.message}} runs-on: ubuntu-latest strategy: max-parallel: 1 |
|
From: Gleb C. <lna...@ya...> - 2023-04-05 09:10:24
|
Commit: 634bd00 GitHub URL: https://github.com/SCST-project/scst/commit/634bd00cc04ae1d140c16bbc40729c798bc019f6 Author: Gleb Chesnokov Date: 2023-04-05T12:09:53+03:00 Log Message: ----------- github: Fix deprecated set-output commands set-output is being deprecated: "Starting 1st June 2023 workflows using save-state or set-output commands via stdout will fail with an error." So fix this by using the GITHUB_OUTPUT environment files instead. Modified Paths: -------------- .github/workflows/coverity.yml | 2 +- .github/workflows/mail_notification.yml | 38 +++++++-------- 2 files changed, 18 insertions(+), 22 deletions(-) =================================================================== diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index 083ef0f..ebdc75f 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml @@ -19,7 +19,7 @@ jobs: revision="$(git rev-parse --short HEAD)" version="$version_without_revesion-$revision" - echo ::set-output name=version::"$version" + echo "version=$version" >> $GITHUB_OUTPUT - name: Run Coverity Build uses: vapier/coverity-scan-action@v1 diff --git a/.github/workflows/mail_notification.yml b/.github/workflows/mail_notification.yml index 36ff772..e66ecc8 100644 --- a/.github/workflows/mail_notification.yml +++ b/.github/workflows/mail_notification.yml @@ -24,40 +24,36 @@ jobs: - name: Get short ref id: get_short_ref run: | - echo ::set-output name=short_ref::${GITHUB_REF#refs/*/} + echo "short_ref=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - name: Get commit id - id: get_comm_id + id: get_commit_id run: | - echo ::set-output name=comm_id::$(git rev-parse --short HEAD) + echo "commit_id=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Get commit message - id: get_comm_message + id: get_commit_message run: | - echo ::set-output name=comm_message::$(git log --format=%s -n 1 HEAD) + echo "commit_message=$(git log --format=%s -n 1 HEAD)" >> $GITHUB_OUTPUT - name: Get list of files id: get_list_files run: | - files="$(git diff-tree --no-commit-id --stat --stat-name-width=60 --stat-graph-width=15 -r HEAD)" + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) - files="${files//'%'/'%25'}" - files="${files//$'\n'/'%0A'}" - files="${files//$'\r'/'%0D'}" - - echo ::set-output name=files::"$files" + echo "files<<$EOF" >> $GITHUB_OUTPUT + echo "$(git diff-tree --no-commit-id --stat --stat-name-width=60 --stat-graph-width=15 -r HEAD)" >> $GITHUB_OUTPUT + echo "$EOF" >> $GITHUB_OUTPUT - name: Get commit diff - id: get_comm_diff + id: get_commit_diff run: | if [ $(git show --no-patch --format="%P" | wc -w) -eq 1 ]; then - diff="$(git --no-pager diff -p HEAD^1)" - - diff="${diff//'%'/'%25'}" - diff="${diff//$'\n'/'%0A'}" - diff="${diff//$'\r'/'%0D'}" + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) - echo ::set-output name=comm_diff::"$diff" + echo "commit_diff<<$EOF" >> $GITHUB_OUTPUT + echo "$(git --no-pager diff -p HEAD^1)" >> $GITHUB_OUTPUT + echo "$EOF" >> $GITHUB_OUTPUT fi - name: Send mail @@ -73,7 +69,7 @@ jobs: password: ${{secrets.MAIL_SERVER_PASSWORD}} # Required mail subject: subject: | - [${{steps.get_short_ref.outputs.short_ref}}] ${{steps.get_comm_message.outputs.comm_message}} + [${{steps.get_short_ref.outputs.short_ref}}] ${{steps.get_commit_message.outputs.commit_message}} # Required recipients' addresses: to: scs...@li... # Required sender full name (address can be skipped): @@ -83,7 +79,7 @@ jobs: # Optional plain body: body: | - Commit: ${{steps.get_comm_id.outputs.comm_id}} + Commit: ${{steps.get_commit_id.outputs.commit_id}} GitHub URL: ${{matrix.commit.url}} Author: ${{matrix.commit.author.name}} Date: ${{matrix.commit.timestamp}} @@ -96,7 +92,7 @@ jobs: ${{steps.get_list_files.outputs.files}} =================================================================== - ${{steps.get_comm_diff.outputs.comm_diff}} + ${{steps.get_commit_diff.outputs.commit_diff}} # Optional unsigned/invalid certificates allowance: ignore_cert: true |
|
From: Gleb C. <lna...@ya...> - 2023-04-05 08:44:26
|
Commit: e80c825 GitHub URL: https://github.com/SCST-project/scst/commit/e80c825e805b33ab4bc5141c51636d8a7d4c1194 Author: Gleb Chesnokov Date: 2023-04-05T11:42:48+03:00 Log Message: ----------- github: Fix deprecated set-output commands set-output is being deprecated: "Starting 1st June 2023 workflows using save-state or set-output commands via stdout will fail with an error." So fix this by using the GITHUB_OUTPUT environment files instead. Modified Paths: -------------- .github/workflows/coverity.yml | 2 +-%0A .github/workflows/mail_notification.yml | 22 +++++++--------%0A 2 files changed, 12 insertions(+), 12 deletions(-) =================================================================== diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml%0Aindex 083ef0f..ebdc75f 100644%0A--- a/.github/workflows/coverity.yml%0A+++ b/.github/workflows/coverity.yml%0A@@ -19,7 +19,7 @@ jobs:%0A revision="$(git rev-parse --short HEAD)"%0A version="$version_without_revesion-$revision"%0A %0A- echo ::set-output name=version::"$version"%0A+ echo "version=$version" >> $GITHUB_OUTPUT%0A %0A - name: Run Coverity Build%0A uses: vapier/coverity-scan-action@v1%0Adiff --git a/.github/workflows/mail_notification.yml b/.github/workflows/mail_notification.yml%0Aindex 36ff772..725478b 100644%0A--- a/.github/workflows/mail_notification.yml%0A+++ b/.github/workflows/mail_notification.yml%0A@@ -24,17 +24,17 @@ jobs:%0A - name: Get short ref%0A id: get_short_ref%0A run: |%0A- echo ::set-output name=short_ref::${GITHUB_REF#refs/*/}%0A+ echo "short_ref=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT%0A %0A - name: Get commit id%0A- id: get_comm_id%0A+ id: get_commit_id%0A run: |%0A- echo ::set-output name=comm_id::$(git rev-parse --short HEAD)%0A+ echo "commit_id=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT%0A %0A - name: Get commit message%0A- id: get_comm_message%0A+ id: get_commit_message%0A run: |%0A- echo ::set-output name=comm_message::$(git log --format=%25s -n 1 HEAD)%0A+ echo "commit_message=$(git log --format=%25s -n 1 HEAD)" >> $GITHUB_OUTPUT%0A %0A - name: Get list of files%0A id: get_list_files%0A@@ -45,10 +45,10 @@ jobs:%0A files="${files//$'\n'/'%250A'}"%0A files="${files//$'\r'/'%250D'}"%0A %0A- echo ::set-output name=files::"$files"%0A+ echo "files=$files" >> $GITHUB_OUTPUT%0A %0A - name: Get commit diff%0A- id: get_comm_diff%0A+ id: get_commit_diff%0A run: |%0A if [ $(git show --no-patch --format="%25P" | wc -w) -eq 1 ]; then%0A diff="$(git --no-pager diff -p HEAD^1)"%0A@@ -57,7 +57,7 @@ jobs:%0A diff="${diff//$'\n'/'%250A'}"%0A diff="${diff//$'\r'/'%250D'}"%0A %0A- echo ::set-output name=comm_diff::"$diff"%0A+ echo "commit_diff=$diff" >> $GITHUB_OUTPUT%0A fi%0A %0A - name: Send mail%0A@@ -73,7 +73,7 @@ jobs:%0A password: ${{secrets.MAIL_SERVER_PASSWORD}}%0A # Required mail subject:%0A subject: |%0A- [${{steps.get_short_ref.outputs.short_ref}}] ${{steps.get_comm_message.outputs.comm_message}}%0A+ [${{steps.get_short_ref.outputs.short_ref}}] ${{steps.get_commit_message.outputs.commit_message}}%0A # Required recipients' addresses:%0A to: scs...@li...%0A # Required sender full name (address can be skipped):%0A@@ -83,7 +83,7 @@ jobs:%0A %0A # Optional plain body:%0A body: |%0A- Commit: ${{steps.get_comm_id.outputs.comm_id}}%0A+ Commit: ${{steps.get_commit_id.outputs.commit_id}}%0A GitHub URL: ${{matrix.commit.url}}%0A Author: ${{matrix.commit.author.name}}%0A Date: ${{matrix.commit.timestamp}}%0A@@ -96,7 +96,7 @@ jobs:%0A ${{steps.get_list_files.outputs.files}}%0A %0A ===================================================================%0A- ${{steps.get_comm_diff.outputs.comm_diff}}%0A+ ${{steps.get_commit_diff.outputs.commit_diff}}%0A %0A # Optional unsigned/invalid certificates allowance:%0A ignore_cert: true |
|
From: Gleb C. <lna...@ya...> - 2023-04-04 08:48:29
|
Commit: 22b03d1 GitHub URL: https://github.com/SCST-project/scst/commit/22b03d1c6efa0c418cf0a8152e6e08a46686536a Author: Gleb Chesnokov Date: 2023-04-04T11:47:44+03:00 Log Message: ----------- INSTALL.md: Fix a checkpatch complaint about whitespace This patch fixes the following checkpatch warnings: ERROR:TRAILING_WHITESPACE: trailing whitespace. Modified Paths: -------------- INSTALL.md | 2 +- iscsi-scst/COPYING | 10 +++++----- scst/COPYING | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) =================================================================== diff --git a/INSTALL.md b/INSTALL.md index bbea35d..ce7c6b2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -46,7 +46,7 @@ scst-dkms package instead of the scst package. For example, if you want to have dkms support for your SCST rpm install, then you would use the following command to make your SCST packages: - make rpm-dkms + make rpm-dkms or diff --git a/iscsi-scst/COPYING b/iscsi-scst/COPYING index 31b2c9e..e14a790 100644 --- a/iscsi-scst/COPYING +++ b/iscsi-scst/COPYING @@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions: License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -225,7 +225,7 @@ impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest diff --git a/scst/COPYING b/scst/COPYING index d2469d5..7f982ea 100644 --- a/scst/COPYING +++ b/scst/COPYING @@ -54,7 +54,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @@ -109,7 +109,7 @@ above, provided that you also meet all of these conditions: License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -167,7 +167,7 @@ access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -224,7 +224,7 @@ impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -277,7 +277,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest |
|
From: Gleb C. <lna...@ya...> - 2023-04-04 08:48:10
|
Commit: 70dfb06 GitHub URL: https://github.com/SCST-project/scst/commit/70dfb06c402faeda5040bcdb6fbb3fe4dbfed07f Author: Gleb Chesnokov Date: 2023-04-04T11:47:44+03:00 Log Message: ----------- scst: Fix a checkpatch complaint about whitespace This patch fixes the following checkpatch warnings: WARNING:SPACE_BEFORE_TAB: please, no space before tabs. Modified Paths: -------------- scst/include/backport.h | 2 +- scst/src/dev_handlers/scst_vdisk.c | 4 ++-- scst_local/scst_local.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 59f1433..44ef2e9 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -583,7 +583,7 @@ static inline long get_user_pages_backport(unsigned long start, /* <linux/kobject_ns.h> */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) && \ +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) && \ (!defined(RHEL_RELEASE_CODE) || \ RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(7, 6)) /* diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 1dc9c8b..00d76ed 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -3238,8 +3238,8 @@ static enum compl_status_e fileio_exec_async(struct vdisk_cmd_params *p) WARN_ON_ONCE(sg_cnt != cmd->sg_cnt); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) || \ - (defined(RHEL_RELEASE_CODE) && \ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) || \ + (defined(RHEL_RELEASE_CODE) && \ RHEL_RELEASE_CODE -0 >= RHEL_RELEASE_VERSION(8, 2)) iov_iter_bvec(&iter, dir, p->async.bvec, sg_cnt, total); #else diff --git a/scst_local/scst_local.c b/scst_local/scst_local.c index ce1996a..cda53aa 100644 --- a/scst_local/scst_local.c +++ b/scst_local/scst_local.c @@ -907,7 +907,7 @@ static int scst_local_queuecommand(struct Scsi_Host *host, sgl_count = scsi_sg_count(scmd); if (scsi_bidi_cmnd(scmd)) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) && \ +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) && \ (!defined(RHEL_RELEASE_CODE) || \ RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 3)) /* Some of these symbols are only defined after 2.6.24 */ |
|
From: Gleb C. <lna...@ya...> - 2023-04-03 11:16:23
|
Commit: 9be09fd GitHub URL: https://github.com/SCST-project/scst/commit/9be09fd68b4657df6b89170295ee12f70d4acd3f Author: Robert Blackhart Date: 2023-04-03T14:15:55+03:00 Log Message: ----------- scst/include/backport.h: Fix building on RHEL 8.8 This fixes a compilation issue with RHEL 8.8 in scst/include/backport.h. This is the same issue as was seen for RHEL 8.7 in #77 Modified Paths: -------------- scst/include/backport.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) =================================================================== diff --git a/scst/include/backport.h b/scst/include/backport.h index 40f8f17..59f1433 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -1474,7 +1474,7 @@ static inline void scsi_build_sense(struct scsi_cmnd *scmd, int desc, RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(9, 1)) #if (!defined(RHEL_RELEASE_CODE) || \ - RHEL_RELEASE_CODE -0 != RHEL_RELEASE_VERSION(8, 7)) + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7)) /* * See also 51f3a4788928 ("scsi: core: Introduce the scsi_cmd_to_rq() * function"). @@ -1505,7 +1505,7 @@ static inline unsigned int scsi_prot_interval(struct scsi_cmnd *scmd) */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) || \ (defined(RHEL_RELEASE_CODE) && \ - RHEL_RELEASE_CODE -0 != RHEL_RELEASE_VERSION(8, 7))) + RHEL_RELEASE_CODE -0 < RHEL_RELEASE_VERSION(8, 7))) static inline u32 scsi_prot_ref_tag(struct scsi_cmnd *scmd) { #if defined(RHEL_MAJOR) && RHEL_MAJOR -0 == 7 |
|
From: Gleb C. <lna...@ya...> - 2023-03-31 15:55:15
|
Commit: 4e8ec64 GitHub URL: https://github.com/SCST-project/scst/commit/4e8ec64959df23e90a8c62744277c0cbf398402a Author: Gleb Chesnokov Date: 2023-03-31T18:54:42+03:00 Log Message: ----------- scst_vdisk: Introduce the function vdev_set_t10_dev_id() This patch reduces code duplication. This patch does not change any functionality. Modified Paths: -------------- scst/src/dev_handlers/scst_vdisk.c | 77 +++++++-------- 1 file changed, 35 insertions(+), 42 deletions(-) =================================================================== diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 87195f7..1dc9c8b 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -6852,6 +6852,35 @@ out: return; } +static int vdev_set_t10_dev_id(struct scst_vdisk_dev *virt_dev, + const char *buf, size_t count) +{ + size_t t10_dev_id_size, i; + + t10_dev_id_size = sizeof(virt_dev->t10_dev_id); + + if (count > t10_dev_id_size || + (count == t10_dev_id_size && buf[count - 1] != '\n')) { + PRINT_ERROR("T10 device id is too long (max %zu characters)", + t10_dev_id_size - 1); + return -EINVAL; + } + + memset(virt_dev->t10_dev_id, 0, t10_dev_id_size); + memcpy(virt_dev->t10_dev_id, buf, count); + + for (i = 0; i < t10_dev_id_size; i++) { + if (virt_dev->t10_dev_id[i] == '\n') { + virt_dev->t10_dev_id[i] = '\0'; + break; + } + } + + virt_dev->t10_dev_id_set = 1; + + return 0; +} + /* * Parse the add_device parameters. @allowed_params restricts which * parameters can be specified at device creation time. @@ -6994,29 +7023,12 @@ static int vdev_parse_add_dev_params(struct scst_vdisk_dev *virt_dev, } if (!strcasecmp("t10_dev_id", p)) { - /* Handle in a fashion similar to vdev_sysfs_t10_dev_id_store */ - int i, length = strlen(pp); - - if (length >= sizeof(virt_dev->t10_dev_id)) { - PRINT_ERROR("T10 device id is too long (max %zd " - "characters)", sizeof(virt_dev->t10_dev_id)-1); - res = -EINVAL; + res = vdev_set_t10_dev_id(virt_dev, pp, strlen(pp)); + if (unlikely(res)) { + PRINT_ERROR("Failed to set %s t10_dev_id", pp); goto out; } - memset(virt_dev->t10_dev_id, 0, sizeof(virt_dev->t10_dev_id)); - memcpy(virt_dev->t10_dev_id, pp, length); - - i = 0; - while (i < sizeof(virt_dev->t10_dev_id)) { - if (virt_dev->t10_dev_id[i] == '\n') { - virt_dev->t10_dev_id[i] = '\0'; - break; - } - i++; - } - - virt_dev->t10_dev_id_set = 1; continue; } @@ -8875,9 +8887,9 @@ static ssize_t vdev_sysfs_scsi_device_name_show(struct kobject *kobj, static ssize_t vdev_sysfs_t10_dev_id_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { - int res, i; struct scst_device *dev; struct scst_vdisk_dev *virt_dev; + int res; TRACE_ENTRY(); @@ -8890,28 +8902,9 @@ static ssize_t vdev_sysfs_t10_dev_id_store(struct kobject *kobj, write_lock(&vdisk_serial_rwlock); - if ((count > sizeof(virt_dev->t10_dev_id)) || - ((count == sizeof(virt_dev->t10_dev_id)) && - (buf[count-1] != '\n'))) { - PRINT_ERROR("T10 device id is too long (max %zd " - "characters)", sizeof(virt_dev->t10_dev_id)-1); - res = -EINVAL; + res = vdev_set_t10_dev_id(virt_dev, buf, count); + if (unlikely(res)) goto out_unlock; - } - - memset(virt_dev->t10_dev_id, 0, sizeof(virt_dev->t10_dev_id)); - memcpy(virt_dev->t10_dev_id, buf, count); - - i = 0; - while (i < sizeof(virt_dev->t10_dev_id)) { - if (virt_dev->t10_dev_id[i] == '\n') { - virt_dev->t10_dev_id[i] = '\0'; - break; - } - i++; - } - - virt_dev->t10_dev_id_set = 1; schedule_work(&virt_dev->vdev_inq_changed_work); |
|
From: Gleb C. <lna...@ya...> - 2023-03-31 15:10:59
|
Commit: db581fc GitHub URL: https://github.com/SCST-project/scst/commit/db581fc016a8a2a8742994dcc48f2ad86274d4aa Author: Gleb Chesnokov Date: 2023-03-31T18:10:04+03:00 Log Message: ----------- qla2x00t-32gbit: Synchronize the IOCB count to be in order A system hang was observed with the following call trace: BUG: kernel NULL pointer dereference, address: 0000000000000000 PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 15 PID: 86747 Comm: nvme Kdump: loaded Not tainted 6.2.0+ #1 Hardware name: Dell Inc. PowerEdge R6515/04F3CJ, BIOS 2.7.3 03/31/2022 RIP: 0010:__wake_up_common+0x55/0x190 Code: 41 f6 01 04 0f 85 b2 00 00 00 48 8b 43 08 4c 8d 40 e8 48 8d 43 08 48 89 04 24 48 89 c6\ 49 8d 40 18 48 39 c6 0f 84 e9 00 00 00 <49> 8b 40 18 89 6c 24 14 31 ed 4c 8d 60 e8 41 8b 18 f6 c3 04 75 5d RSP: 0018:ffffb05a82afbba0 EFLAGS: 00010082 RAX: 0000000000000000 RBX: ffff8f9b83a00018 RCX: 0000000000000000 RDX: 0000000000000001 RSI: ffff8f9b83a00020 RDI: ffff8f9b83a00018 RBP: 0000000000000001 R08: ffffffffffffffe8 R09: ffffb05a82afbbf8 R10: 70735f7472617473 R11: 5f30307832616c71 R12: 0000000000000001 R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000 FS: 00007f815cf4c740(0000) GS:ffff8f9eeed80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000010633a000 CR4: 0000000000350ee0 Call Trace: <TASK> __wake_up_common_lock+0x83/0xd0 qla_nvme_ls_req+0x21b/0x2b0 [qla2xxx] __nvme_fc_send_ls_req+0x1b5/0x350 [nvme_fc] nvme_fc_xmt_disconnect_assoc+0xca/0x110 [nvme_fc] nvme_fc_delete_association+0x1bf/0x220 [nvme_fc] ? nvme_remove_namespaces+0x9f/0x140 [nvme_core] nvme_do_delete_ctrl+0x5b/0xa0 [nvme_core] nvme_sysfs_delete+0x5f/0x70 [nvme_core] kernfs_fop_write_iter+0x12b/0x1c0 vfs_write+0x2a3/0x3b0 ksys_write+0x5f/0xe0 do_syscall_64+0x5c/0x90 ? syscall_exit_work+0x103/0x130 ? syscall_exit_to_user_mode+0x12/0x30 ? do_syscall_64+0x69/0x90 ? exit_to_user_mode_loop+0xd0/0x130 ? exit_to_user_mode_prepare+0xec/0x100 ? syscall_exit_to_user_mode+0x12/0x30 ? do_syscall_64+0x69/0x90 ? syscall_exit_to_user_mode+0x12/0x30 ? do_syscall_64+0x69/0x90 entry_SYSCALL_64_after_hwframe+0x72/0xdc RIP: 0033:0x7f815cd3eb97 The IOCB counts are out of order and that would block any commands from going out and subsequently hang the system. Synchronize the IOCB count to be in correct order. Fixes: 5f63a163ed2f ("scsi: qla2xxx: Fix exchange oversubscription for management commands") 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...> Reviewed-by: John Meneghini <jme...@re...> Tested-by: Lin Li <li...@re...> Signed-off-by: Martin K. Petersen <mar...@or...> [ commit d3affdeb400f upstream ] Modified Paths: -------------- qla2x00t-32gbit/qla_isr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) =================================================================== diff --git a/qla2x00t-32gbit/qla_isr.c b/qla2x00t-32gbit/qla_isr.c index 966c1b9..9a57920 100644 --- a/qla2x00t-32gbit/qla_isr.c +++ b/qla2x00t-32gbit/qla_isr.c @@ -1912,6 +1912,8 @@ qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func, } req->outstanding_cmds[index] = NULL; + + qla_put_fw_resources(sp->qpair, &sp->iores); return sp; } @@ -3135,7 +3137,6 @@ qla25xx_process_bidir_status_iocb(scsi_qla_host_t *vha, void *pkt, } bsg_reply->reply_payload_rcv_len = 0; - qla_put_fw_resources(sp->qpair, &sp->iores); done: /* Return the vendor specific reply to API */ bsg_reply->reply_data.vendor_reply.vendor_rsp[0] = rval; |