5.10.207-rc1 review
Subsystems (2)
Greg Kroah-Hartman
maintainercover 5.10.207-rc1 review
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.10.207-rc1
Alexander Atanasov <[email protected]>
scsi: core: Always send batch on reset or error handling command
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Add scsi_prot_ref_tag() helper"
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Introduce scsi_get_sector()"
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Make scsi_get_lba() return the LBA"
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request"
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Use a structure member to track the SCSI command submitter"
Greg Kroah-Hartman <[email protected]>
Revert "scsi: core: Always send batch on reset or error handling command"
-------------
Diffstat:
Makefile | 4 ++-- drivers/scsi/scsi.c | 2 +- drivers/scsi/scsi_error.c | 34 +++++++++++++++++++--------------- drivers/scsi/scsi_lib.c | 38 +++++++++++++------------------------- drivers/scsi/scsi_logging.c | 18 ++++++++---------- drivers/scsi/scsi_priv.h | 1 - include/scsi/scsi_cmnd.h | 29 +++-------------------------- include/scsi/scsi_device.h | 16 +++++++--------- 8 files changed, 53 insertions(+), 89 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/7 Revert "scsi: core: Always send batch on reset or error handling command"
5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit 9db5239d7533c841dcd7a36700f829f6ee96a76d which is commit 066c5b46b6eaf2f13f80c19500dbb3b84baabb33 upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- drivers/scsi/scsi_error.c | 2 -- 1 file changed, 2 deletions(-)
drivers/scsi/scsi_error.c +0 -2
@@ -1068,7 +1068,6 @@ retry:scsi_log_send (scmd); scmd->submitter =SUBMITTED_BY_SCSI_ERROR_HANDLER ; - scmd->flags |=SCMD_LAST ;/* * Lock sdev->state_mutex to avoid that scsi_device_quiesce() can
@@ -2360,7 +2359,6 @@ scsi_ioctl_reset(struct scsi_device *dev scmd->cmnd =scsi_req (rq)->cmd; scmd->submitter =SUBMITTED_BY_SCSI_RESET_IOCTL ; - scmd->flags |=SCMD_LAST ;memset (&scmd->sdb,0 ,sizeof (scmd->sdb)); scmd->cmd_len =0 ;
Greg Kroah-Hartman
maintainerPATCH 2/7 Revert "scsi: core: Use a structure member to track the SCSI command submitter"
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit f2d30198c0530b8da155697d8723e19ac72c15fe which is commit bf23e619039d360d503b7282d030daf2277a5d47 upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- drivers/scsi/scsi_error.c | 17 +++++++++++------ drivers/scsi/scsi_lib.c | 10 ---------- drivers/scsi/scsi_priv.h | 1 - include/scsi/scsi_cmnd.h | 7 ------- 4 files changed, 11 insertions(+), 24 deletions(-)
drivers/scsi/scsi_error.c +11 -6
@@ -50,6 +50,8 @@#include <asm/unaligned.h> +static void scsi_eh_done (struct scsi_cmnd *scmd); +/* * These should *probably* be handled by the host itself. * Since it is allowed to sleep, it probably should.
@@ -498,8 +500,7 @@ int scsi_check_sense(struct scsi_cmnd *s/* handler does not care. Drop down to default handling */ } -if (scmd->cmnd[0 ] ==TEST_UNIT_READY && - scmd->submitter !=SUBMITTED_BY_SCSI_ERROR_HANDLER ) +if (scmd->cmnd[0 ] ==TEST_UNIT_READY && scmd->scsi_done != scsi_eh_done)/* * nasty: for mid-layer issued TURs, we need to return the * actual sense data without any recovery attempt. For eh
@@ -767,7 +768,7 @@ static int scsi_eh_completed_normally(st* scsi_eh_done - Completion function for error handling. * @scmd: Cmd that is done. */ -void scsi_eh_done (struct scsi_cmnd *scmd) +static void scsi_eh_done (struct scsi_cmnd *scmd) {struct completion *eh_action;
@@ -1067,7 +1068,7 @@ retry: shost->eh_action = &done;scsi_log_send (scmd); - scmd->submitter =SUBMITTED_BY_SCSI_ERROR_HANDLER ; + scmd->scsi_done = scsi_eh_done;/* * Lock sdev->state_mutex to avoid that scsi_device_quiesce() can
@@ -1094,7 +1095,6 @@ retry:if (rtn) {if (timeleft > stall_for) {scsi_eh_restore_cmnd (scmd, &ses); - timeleft -= stall_for;msleep (jiffies_to_msecs (stall_for)); goto retry;
@@ -2322,6 +2322,11 @@ void scsi_report_device_reset(struct Scs }EXPORT_SYMBOL (scsi_report_device_reset); +static void +scsi_reset_provider_done_command (struct scsi_cmnd *scmd) +{ +} +/** * scsi_ioctl_reset: explicitly reset a host/bus/target/device * @dev: scsi_device to operate on
@@ -2358,7 +2363,7 @@ scsi_ioctl_reset(struct scsi_device *dev scmd->request = rq; scmd->cmnd =scsi_req (rq)->cmd; - scmd->submitter =SUBMITTED_BY_SCSI_RESET_IOCTL ; + scmd->scsi_done = scsi_reset_provider_done_command;memset (&scmd->sdb,0 ,sizeof (scmd->sdb)); scmd->cmd_len =0 ;
drivers/scsi/scsi_lib.c +0 -10
@@ -1596,15 +1596,6 @@ static blk_status_t scsi_prepare_cmd(strstatic void scsi_mq_done (struct scsi_cmnd *cmd) { -switch (cmd->submitter) { -case SUBMITTED_BY_BLOCK_LAYER : -break ; -case SUBMITTED_BY_SCSI_ERROR_HANDLER : -return scsi_eh_done (cmd); -case SUBMITTED_BY_SCSI_RESET_IOCTL : -return ; - } -if (unlikely (blk_should_fake_timeout (scsi_cmd_to_rq (cmd)->q)))return ;if (unlikely (test_and_set_bit (SCMD_STATE_COMPLETE , &cmd->state)))
@@ -1694,7 +1685,6 @@ static blk_status_t scsi_queue_rq(structscsi_set_resid (cmd,0 );memset (cmd->sense_buffer,0 ,SCSI_SENSE_BUFFERSIZE ); - cmd->submitter =SUBMITTED_BY_BLOCK_LAYER ; cmd->scsi_done = scsi_mq_done;blk_mq_start_request (req);
drivers/scsi/scsi_priv.h +0 -1
@@ -82,7 +82,6 @@ void scsi_eh_ready_devs(struct Scsi_Hostint scsi_eh_get_sense (struct list_head *work_q,struct list_head *done_q);int scsi_noretry_cmd (struct scsi_cmnd *scmd); -void scsi_eh_done (struct scsi_cmnd *scmd);/* scsi_lib.c */ extern int scsi_maybe_unblock_host (struct scsi_device *sdev);
include/scsi/scsi_cmnd.h +0 -7
@@ -65,12 +65,6 @@ struct scsi_pointer {#define SCMD_STATE_COMPLETE 0#define SCMD_STATE_INFLIGHT 1 -enum scsi_cmnd_submitter { -SUBMITTED_BY_BLOCK_LAYER =0 , -SUBMITTED_BY_SCSI_ERROR_HANDLER =1 , -SUBMITTED_BY_SCSI_RESET_IOCTL =2 , -} __packed; -struct scsi_cmnd {struct scsi_request req;struct scsi_device *device;
@@ -94,7 +88,6 @@ struct scsi_cmnd {unsigned char prot_op;unsigned char prot_type;unsigned char prot_flags; -enum scsi_cmnd_submitter submitter;unsigned short cmd_len;enum dma_data_direction sc_data_direction;
Greg Kroah-Hartman
maintainerPATCH 3/7 Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request"
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit df83ca8e986d0285974dfa510973191547dcd173 which is commit aa8e25e5006aac52c943c84e9056ab488630ee19 upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- drivers/scsi/scsi.c | 2 +- drivers/scsi/scsi_error.c | 15 +++++++-------- drivers/scsi/scsi_lib.c | 28 +++++++++++++--------------- drivers/scsi/scsi_logging.c | 18 ++++++++---------- include/scsi/scsi_cmnd.h | 8 +++----- include/scsi/scsi_device.h | 16 +++++++--------- 6 files changed, 39 insertions(+), 48 deletions(-)
drivers/scsi/scsi.c +1 -1
@@ -197,7 +197,7 @@ void scsi_finish_command(struct scsi_cmn "(result %x)\n", cmd->result)); good_bytes =scsi_bufflen (cmd); -if (!blk_rq_is_passthrough (scsi_cmd_to_rq (cmd))) { +if (!blk_rq_is_passthrough (cmd->request)) {int old_good_bytes = good_bytes; drv =scsi_cmd_to_driver (cmd);if (drv->done)
drivers/scsi/scsi_error.c +7 -8
@@ -230,7 +230,7 @@ scsi_abort_command(struct scsi_cmnd *scm*/ static void scsi_eh_reset (struct scsi_cmnd *scmd) { -if (!blk_rq_is_passthrough (scsi_cmd_to_rq (scmd))) { +if (!blk_rq_is_passthrough (scmd->request)) {struct scsi_driver *sdrv =scsi_cmd_to_driver (scmd);if (sdrv->eh_reset) sdrv->eh_reset (scmd);
@@ -1167,7 +1167,7 @@ static int scsi_request_sense(struct scsstatic int scsi_eh_action (struct scsi_cmnd *scmd,int rtn) { -if (!blk_rq_is_passthrough (scsi_cmd_to_rq (scmd))) { +if (!blk_rq_is_passthrough (scmd->request)) {struct scsi_driver *sdrv =scsi_cmd_to_driver (scmd);if (sdrv->eh_action) rtn = sdrv->eh_action (scmd, rtn);
@@ -1733,24 +1733,22 @@ static void scsi_eh_offline_sdevs(struct*/ int scsi_noretry_cmd (struct scsi_cmnd *scmd) { -struct request *req =scsi_cmd_to_rq (scmd); -switch (host_byte (scmd->result)) {case DID_OK :break ;case DID_TIME_OUT : goto check_type;case DID_BUS_BUSY : -return req->cmd_flags &REQ_FAILFAST_TRANSPORT ; +return (scmd->request->cmd_flags &REQ_FAILFAST_TRANSPORT );case DID_PARITY : -return req->cmd_flags &REQ_FAILFAST_DEV ; +return (scmd->request->cmd_flags &REQ_FAILFAST_DEV );case DID_ERROR :if (msg_byte (scmd->result) ==COMMAND_COMPLETE &&status_byte (scmd->result) ==RESERVATION_CONFLICT )return 0 ; fallthrough;case DID_SOFT_ERROR : -return req->cmd_flags &REQ_FAILFAST_DRIVER ; +return (scmd->request->cmd_flags &REQ_FAILFAST_DRIVER ); }if (status_byte (scmd->result) !=CHECK_CONDITION )
@@ -1761,7 +1759,8 @@ check_type:* assume caller has checked sense and determined * the check condition was retryable. */ -if (req->cmd_flags &REQ_FAILFAST_DEV ||blk_rq_is_passthrough (req)) +if (scmd->request->cmd_flags &REQ_FAILFAST_DEV || +blk_rq_is_passthrough (scmd->request))return 1 ;return 0 ;
drivers/scsi/scsi_lib.c +13 -15
@@ -153,15 +153,13 @@ scsi_set_blocked(struct scsi_cmnd *cmd,static void scsi_mq_requeue_cmd (struct scsi_cmnd *cmd) { -struct request *rq =scsi_cmd_to_rq (cmd); - -if (rq->rq_flags &RQF_DONTPREP ) { - rq->rq_flags &= ~RQF_DONTPREP ; +if (cmd->request->rq_flags &RQF_DONTPREP ) { + cmd->request->rq_flags &= ~RQF_DONTPREP ;scsi_mq_uninit_cmd (cmd); }else {WARN_ON_ONCE (true); } -blk_mq_requeue_request (rq, true); +blk_mq_requeue_request (cmd->request, true); }/**
@@ -200,7 +198,7 @@ static void __scsi_queue_insert(struct s*/ cmd->result =0 ; -blk_mq_requeue_request (scsi_cmd_to_rq (cmd), true); +blk_mq_requeue_request (cmd->request, true); }/**
@@ -510,7 +508,7 @@ void scsi_run_host_queues(struct Scsi_Hostatic void scsi_uninit_cmd (struct scsi_cmnd *cmd) { -if (!blk_rq_is_passthrough (scsi_cmd_to_rq (cmd))) { +if (!blk_rq_is_passthrough (cmd->request)) {struct scsi_driver *drv =scsi_cmd_to_driver (cmd);if (drv->uninit_command)
@@ -660,7 +658,7 @@ static void scsi_io_completion_reprep(ststatic bool scsi_cmd_runtime_exceeced (struct scsi_cmnd *cmd) { -struct request *req =scsi_cmd_to_rq (cmd); +struct request *req = cmd->request;unsigned long wait_for;if (cmd->allowed ==SCSI_CMD_RETRIES_NO_LIMIT )
@@ -679,7 +677,7 @@ static bool scsi_cmd_runtime_exceeced(ststatic void scsi_io_completion_action (struct scsi_cmnd *cmd,int result) {struct request_queue *q = cmd->device->request_queue; -struct request *req =scsi_cmd_to_rq (cmd); +struct request *req = cmd->request;int level =0 ;enum {ACTION_FAIL ,ACTION_REPREP ,ACTION_RETRY ,ACTION_DELAYED_RETRY } action;
@@ -851,7 +849,7 @@ static int scsi_io_completion_nz_result( {bool sense_valid;bool sense_current = true;/* false implies "deferred sense" */ -struct request *req =scsi_cmd_to_rq (cmd); +struct request *req = cmd->request;struct scsi_sense_hdr sshdr; sense_valid =scsi_command_normalize_sense (cmd, &sshdr);
@@ -940,7 +938,7 @@ void scsi_io_completion(struct scsi_cmnd {int result = cmd->result;struct request_queue *q = cmd->device->request_queue; -struct request *req =scsi_cmd_to_rq (cmd); +struct request *req = cmd->request;blk_status_t blk_stat =BLK_STS_OK ;if (unlikely (result))/* a nz result may or may not be an error */
@@ -1008,7 +1006,7 @@ static inline bool scsi_cmd_needs_dma_drblk_status_t scsi_alloc_sgtables (struct scsi_cmnd *cmd) {struct scsi_device *sdev = cmd->device; -struct request *rq =scsi_cmd_to_rq (cmd); +struct request *rq = cmd->request;unsigned short nr_segs =blk_rq_nr_phys_segments (rq);struct scatterlist *last_sg =NULL ;blk_status_t ret;
@@ -1137,7 +1135,7 @@ void scsi_init_command(struct scsi_devic {void *buf = cmd->sense_buffer;void *prot = cmd->prot_sdb; -struct request *rq =scsi_cmd_to_rq (cmd); +struct request *rq =blk_mq_rq_from_pdu (cmd);unsigned int flags = cmd->flags &SCMD_PRESERVED_FLAGS ;unsigned long jiffies_at_alloc;int retries, to_clear;
@@ -1596,12 +1594,12 @@ static blk_status_t scsi_prepare_cmd(strstatic void scsi_mq_done (struct scsi_cmnd *cmd) { -if (unlikely (blk_should_fake_timeout (scsi_cmd_to_rq (cmd)->q))) +if (unlikely (blk_should_fake_timeout (cmd->request->q)))return ;if (unlikely (test_and_set_bit (SCMD_STATE_COMPLETE , &cmd->state)))return ;trace_scsi_dispatch_cmd_done (cmd); -blk_mq_complete_request (scsi_cmd_to_rq (cmd)); +blk_mq_complete_request (cmd->request); }static void scsi_mq_put_budget (struct request_queue *q)
drivers/scsi/scsi_logging.c +8 -10
@@ -28,9 +28,8 @@ static void scsi_log_release_buffer(charstatic inline const char *scmd_name (const struct scsi_cmnd *scmd) { -struct request *rq =scsi_cmd_to_rq ((struct scsi_cmnd *)scmd); - -return rq->rq_disk ? rq->rq_disk->disk_name :NULL ; +return scmd->request->rq_disk ? + scmd->request->rq_disk->disk_name :NULL ; } static size_t sdev_format_header(char *logbuf, size_t logbuf_len,
@@ -92,7 +91,7 @@ void scmd_printk(const char *level, consif (!logbuf)return ; off =sdev_format_header (logbuf, logbuf_len,scmd_name (scmd), -scsi_cmd_to_rq ((struct scsi_cmnd *)scmd)->tag); + scmd->request->tag);if (off < logbuf_len) {va_start (args, fmt); off +=vscnprintf (logbuf + off, logbuf_len - off, fmt, args);
@@ -189,7 +188,7 @@ void scsi_print_command(struct scsi_cmndreturn ; off =sdev_format_header (logbuf, logbuf_len, -scmd_name (cmd),scsi_cmd_to_rq (cmd)->tag); +scmd_name (cmd), cmd->request->tag);if (off >= logbuf_len) goto out_printk; off +=scnprintf (logbuf + off, logbuf_len - off,"CDB: " );
@@ -211,7 +210,7 @@ void scsi_print_command(struct scsi_cmnd off =sdev_format_header (logbuf, logbuf_len,scmd_name (cmd), -scsi_cmd_to_rq (cmd)->tag); + cmd->request->tag);if (!WARN_ON (off > logbuf_len -58 )) { off +=scnprintf (logbuf + off, logbuf_len - off,"CDB[%02x]: " , k);
@@ -374,8 +373,7 @@ EXPORT_SYMBOL(__scsi_print_sense);/* Normalize and print sense buffer in SCSI command */ void scsi_print_sense (const struct scsi_cmnd *cmd) { -scsi_log_print_sense (cmd->device,scmd_name (cmd), -scsi_cmd_to_rq ((struct scsi_cmnd *)cmd)->tag, +scsi_log_print_sense (cmd->device,scmd_name (cmd), cmd->request->tag, cmd->sense_buffer,SCSI_SENSE_BUFFERSIZE ); }EXPORT_SYMBOL (scsi_print_sense);
@@ -394,8 +392,8 @@ void scsi_print_result(const struct scsiif (!logbuf)return ; - off =sdev_format_header (logbuf, logbuf_len,scmd_name (cmd), -scsi_cmd_to_rq ((struct scsi_cmnd *)cmd)->tag); + off =sdev_format_header (logbuf, logbuf_len, +scmd_name (cmd), cmd->request->tag);if (off >= logbuf_len) goto out_printk;
include/scsi/scsi_cmnd.h +3 -5
@@ -162,9 +162,7 @@ static inline void *scsi_cmd_priv(struct/* make sure not to use it with passthrough commands */ static inline struct scsi_driver *scsi_cmd_to_driver (struct scsi_cmnd *cmd) { -struct request *rq =scsi_cmd_to_rq (cmd); - -return *(struct scsi_driver **)rq->rq_disk->private_data; +return *(struct scsi_driver **)cmd->request->rq_disk->private_data; }extern void scsi_finish_command (struct scsi_cmnd *cmd);
@@ -228,14 +226,14 @@ static inline int scsi_sg_copy_to_bufferstatic inline sector_t scsi_get_sector (struct scsi_cmnd *scmd) { -return blk_rq_pos (scsi_cmd_to_rq (scmd)); +return blk_rq_pos (scmd->request); }static inline sector_t scsi_get_lba (struct scsi_cmnd *scmd) {unsigned int shift =ilog2 (scmd->device->sector_size) -SECTOR_SHIFT ; -return blk_rq_pos (scsi_cmd_to_rq (scmd)) >> shift; +return blk_rq_pos (scmd->request) >> shift; }/*
include/scsi/scsi_device.h +7 -9
@@ -264,15 +264,13 @@ sdev_prefix_printk(const char *, const s __printf(3, 4) voidscmd_printk (const char *,const struct scsi_cmnd *,const char *, ...); -#define scmd_dbg(scmd, fmt, a...) \ - do { \ - struct request *__rq = scsi_cmd_to_rq((scmd)); \ - \ - if (__rq->rq_disk) \ - sdev_dbg((scmd)->device, "[%s] " fmt, \ - __rq->rq_disk->disk_name, ##a); \ - else \ - sdev_dbg((scmd)->device, fmt, ##a); \ +#define scmd_dbg(scmd, fmt, a...) \ + do { \ + if ((scmd)->request->rq_disk) \ + sdev_dbg((scmd)->device, "[%s] " fmt, \ + (scmd)->request->rq_disk->disk_name, ##a);\ + else \ + sdev_dbg((scmd)->device, fmt, ##a); \ } while (0)enum scsi_target_state {
Greg Kroah-Hartman
maintainerPATCH 4/7 Revert "scsi: core: Make scsi_get_lba() return the LBA"
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit d054858a9c9e4406099e61fe00c93516f9b4c169 which is commit d2c945f01d233085fedc9e3cf7ec180eaa2b7a85 upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- include/scsi/scsi_cmnd.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
include/scsi/scsi_cmnd.h +5 -7
@@ -229,13 +229,6 @@ static inline sector_t scsi_get_sector(sreturn blk_rq_pos (scmd->request); } -static inline sector_t scsi_get_lba (struct scsi_cmnd *scmd) -{ -unsigned int shift =ilog2 (scmd->device->sector_size) -SECTOR_SHIFT ; - -return blk_rq_pos (scmd->request) >> shift; -} -/* * The operations below are hints that tell the controller driver how * to handle I/Os with DIF or similar types of protection information.
@@ -298,6 +291,11 @@ static inline unsigned char scsi_get_proreturn scmd->prot_type; } +static inline sector_t scsi_get_lba (struct scsi_cmnd *scmd) +{ +return blk_rq_pos (scmd->request); +} +static inline u32 scsi_prot_ref_tag (struct scsi_cmnd *scmd) {struct request *rq =blk_mq_rq_from_pdu (scmd);
Greg Kroah-Hartman
maintainerPATCH 5/7 Revert "scsi: core: Introduce scsi_get_sector()"
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit f230e6d4249b9ccdcb571077023cecabf91ecbb1 which is commit f0f214fe8cd32224267ebea93817b8c32074623d upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- include/scsi/scsi_cmnd.h | 5 ----- 1 file changed, 5 deletions(-)
include/scsi/scsi_cmnd.h +0 -5
@@ -224,11 +224,6 @@ static inline int scsi_sg_copy_to_buffer buf, buflen); } -static inline sector_t scsi_get_sector (struct scsi_cmnd *scmd) -{ -return blk_rq_pos (scmd->request); -} -/* * The operations below are hints that tell the controller driver how * to handle I/Os with DIF or similar types of protection information.
Greg Kroah-Hartman
maintainerPATCH 6/7 Revert "scsi: core: Add scsi_prot_ref_tag() helper"
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Greg Kroah-Hartman <[email protected]>
This reverts commit 294d66c35a4e019a9dfe889fe382adce1cc3773e which is commit 7ba46799d34695534666a3f71a2be10ea85ece6c upstream.
As reported, a lot of scsi changes were made just to resolve a 2 line patch, so let's revert them all and then manually fix up the 2 line fixup so that things are simpler and potential abi changes are not an issue.
--- include/scsi/scsi_cmnd.h | 7 ------- 1 file changed, 7 deletions(-)
include/scsi/scsi_cmnd.h +0 -7
@@ -291,13 +291,6 @@ static inline sector_t scsi_get_lba(strureturn blk_rq_pos (scmd->request); } -static inline u32 scsi_prot_ref_tag (struct scsi_cmnd *scmd) -{ -struct request *rq =blk_mq_rq_from_pdu (scmd); - -return t10_pi_ref_tag (rq); -} -static inline unsigned int scsi_prot_interval (struct scsi_cmnd *scmd) {return scmd->device->sector_size;
Greg Kroah-Hartman
maintainerPATCH 7/7 scsi: core: Always send batch on reset or error handling command
In reply to Greg Kroah-Hartman5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexander Atanasov <[email protected]>
commit 066c5b46b6eaf2f13f80c19500dbb3b84baabb33 upstream.
In commit 8930a6c20791 ("scsi: core: add support for request batching") the block layer bd->last flag was mapped to SCMD_LAST and used as an indicator to send the batch for the drivers that implement this feature. However, the error handling code was not updated accordingly.
scsi_send_eh_cmnd() is used to send error handling commands and request sense. The problem is that request sense comes as a single command that gets into the batch queue and times out. As a result the device goes offline after several failed resets. This was observed on virtio_scsi during a device resize operation.
[ 496.316946] sd 0:0:4:0: [sdd] tag#117 scsi_eh_0: requesting sense [ 506.786356] sd 0:0:4:0: [sdd] tag#117 scsi_send_eh_cmnd timeleft: 0 [ 506.787981] sd 0:0:4:0: [sdd] tag#117 abort
To fix this always set SCMD_LAST flag in scsi_send_eh_cmnd() and scsi_reset_ioctl().
--- drivers/scsi/scsi_error.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/scsi/scsi_error.c +2 -0
@@ -1069,6 +1069,7 @@ retry:scsi_log_send (scmd); scmd->scsi_done = scsi_eh_done; + scmd->flags |=SCMD_LAST ;/* * Lock sdev->state_mutex to avoid that scsi_device_quiesce() can
@@ -2361,6 +2362,7 @@ scsi_ioctl_reset(struct scsi_device *devscsi_init_command (dev, scmd); scmd->request = rq; scmd->cmnd =scsi_req (rq)->cmd; + scmd->flags |=SCMD_LAST ; scmd->scsi_done = scsi_reset_provider_done_command;memset (&scmd->sdb,0 ,sizeof (scmd->sdb));
Hi!
Quoted 4 lines
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
CIP testing did not find any problems here:
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-5.10.y
Best regards,
Pavel
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Erika Unter HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on BMIPS_GENERIC:
Signature · 1 line
Florian
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Quoted 8 lines
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gz
or in the git tree and branch at:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y and the diffstat can be found below.
Hi,
5.10.207-rc1 compiled and booted just fine on x86_64, no errors or regressions.
Best,
Slade
Greg Kroah-Hartman wrote on Thu, Jan 11, 2024 at 10:52:49AM +0100:
Quoted 5 lines
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Quoted 8 lines
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.
Tested 9d64f2ec9cf9 ("Linux 5.10.207-rc1") on:
- arm i.MX6ULL (Armadillo 640)
- arm64 i.MX8MP (Armadillo G4)
No obvious regression in dmesg or basic tests:
Signature · 1 line
Dominique Martinet | Asmadeus
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
## Build
* kernel: 5.10.207-rc1
* git: https://gitlab.com/Linaro/lkft/mirrors/stable/linux-stable-rc
* git branch: linux-5.10.y
* git commit: 9d64f2ec9cf9d1a55dabce3c7f639ec26bd1d7b4
* git describe: v5.10.206-8-g9d64f2ec9cf9
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.10.y/build/v5.10.206-8-g9d64f2ec9cf9
## Test Regressions (compared to v5.10.206)
## Metric Regressions (compared to v5.10.206)
## Test Fixes (compared to v5.10.206)
## Metric Fixes (compared to v5.10.206)
## Test result summary
total: 99306, pass: 75376, fail: 4061, skip: 19792, xfail: 77
## Build Summary
* arc: 5 total, 5 passed, 0 failed
* arm: 117 total, 117 passed, 0 failed
* arm64: 44 total, 44 passed, 0 failed
* i386: 35 total, 35 passed, 0 failed
* mips: 24 total, 24 passed, 0 failed
* parisc: 3 total, 0 passed, 3 failed
* powerpc: 25 total, 25 passed, 0 failed
* riscv: 11 total, 11 passed, 0 failed
* s390: 12 total, 12 passed, 0 failed
* sh: 10 total, 10 passed, 0 failed
* sparc: 8 total, 8 passed, 0 failed
* x86_64: 38 total, 38 passed, 0 failed
## Test suites summary
* boot
* kselftest-android
* kselftest-arm64
* kselftest-breakpoints
* kselftest-capabilities
* kselftest-cgroup
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-cpufreq
* kselftest-drivers-dma-buf
* kselftest-efivarfs
* kselftest-exec
* kselftest-filesystems
* kselftest-filesystems-binderfs
* kselftest-filesystems-epoll
* kselftest-firmware
* kselftest-fpu
* kselftest-ftrace
* kselftest-futex
* kselftest-gpio
* kselftest-intel_pstate
* kselftest-ipc
* kselftest-ir
* kselftest-kcmp
* kselftest-kexec
* kselftest-kvm
* kselftest-lib
* kselftest-membarrier
* kselftest-memfd
* kselftest-memory-hotplug
* kselftest-mincore
* kselftest-mount
* kselftest-mqueue
* kselftest-net
* kselftest-net-forwarding
* kselftest-net-mptcp
* kselftest-netfilter
* kselftest-nsfs
* kselftest-openat2
* kselftest-pid_namespace
* kselftest-pidfd
* kselftest-proc
* kselftest-pstore
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-sigaltstack
* kselftest-size
* kselftest-tc-testing
* kselftest-timens
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-user_events
* kselftest-vDSO
* kselftest-vm
* kselftest-x86
* kselftest-zram
* kunit
* kvm-unit-tests
* libgpiod
* log-parser-boot
* log-parser-test
* ltp-cap_bounds
* ltp-commands
* ltp-containers
* ltp-controllers
* ltp-cpuhotplug
* ltp-crypto
* ltp-cve
* ltp-dio
* ltp-fcntl-locktests
* ltp-filecaps
* ltp-fs
* ltp-fs_bind
* ltp-fs_perms_simple
* ltp-fsx
* ltp-hugetlb
* ltp-io
* ltp-ipc
* ltp-math
* ltp-mm
* ltp-nptl
* ltp-pty
* ltp-sched
* ltp-securebits
* ltp-smoke
* ltp-syscalls
* ltp-tracing
* network-basic-tests
* perf
* rcutorture
* v4l2-compliance
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.207 release. There are 7 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat, 13 Jan 2024 09:46:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.207-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.10:
10 builds: 10 pass, 0 fail
26 boots: 26 pass, 0 fail
68 tests: 68 pass, 0 failLinux version: 5.10.207-rc1-g9d64f2ec9cf9
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000,
tegra20-ventana, tegra210-p2371-2180,
tegra210-p3450-0000, tegra30-cardhu-a04Jon