* [PATCH RESEND 0/2] two missing patches
@ 2024-02-09 12:45 Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 1/2] s390/dasd: Improve ERP error messages Stefan Haberland
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Stefan Haberland @ 2024-02-09 12:45 UTC (permalink / raw
To: Jens Axboe
Cc: linux-block, Jan Hoeppner, linux-s390, Heiko Carstens,
Vasily Gorbik, Christian Borntraeger, Miroslav Franc
Hi Jens,
somehow two of the patches have not been sent with the patchset yesterday.
Sorry for this.
Here are the two missing patches.
Please apply for the upcomming merge window.
Jan Höppner (1):
s390/dasd: Improve ERP error messages
Miroslav Franc (1):
s390/dasd: fix double module refcount decrement
drivers/s390/block/dasd.c | 5 +--
drivers/s390/block/dasd_3990_erp.c | 51 ++++++++----------------------
2 files changed, 14 insertions(+), 42 deletions(-)
--
2.40.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH RESEND 1/2] s390/dasd: Improve ERP error messages
2024-02-09 12:45 [PATCH RESEND 0/2] two missing patches Stefan Haberland
@ 2024-02-09 12:45 ` Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 2/2] s390/dasd: fix double module refcount decrement Stefan Haberland
2024-02-09 14:33 ` [PATCH RESEND 0/2] two missing patches Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Stefan Haberland @ 2024-02-09 12:45 UTC (permalink / raw
To: Jens Axboe
Cc: linux-block, Jan Hoeppner, linux-s390, Heiko Carstens,
Vasily Gorbik, Christian Borntraeger, Miroslav Franc
From: Jan Höppner <hoeppner@linux.ibm.com>
Some ERP errors still share the same message format and only add
different reason codes to it. These reason codes don't have any meaning
anymore.
Make the individual error messages more explicit and remove the reason
codes altogether. Comments around the error messages are also removed as
they provide no additional value anymore with more explicit messages.
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
---
drivers/s390/block/dasd_3990_erp.c | 51 ++++++++----------------------
1 file changed, 13 insertions(+), 38 deletions(-)
diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c
index c59a961cfdd2..459b7f8ac883 100644
--- a/drivers/s390/block/dasd_3990_erp.c
+++ b/drivers/s390/block/dasd_3990_erp.c
@@ -1048,11 +1048,9 @@ dasd_3990_erp_com_rej(struct dasd_ccw_req * erp, char *sense)
set_bit(DASD_CQR_SUPPRESS_CR, &erp->refers->flags);
erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
} else {
- /* fatal error - set status to FAILED
- internal error 09 - Command Reject */
if (!test_bit(DASD_CQR_SUPPRESS_CR, &erp->flags))
dev_err(&device->cdev->dev,
- "An error occurred in the DASD device driver, reason=09\n");
+ "An I/O command request was rejected\n");
erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
}
@@ -1120,13 +1118,7 @@ dasd_3990_erp_equip_check(struct dasd_ccw_req * erp, char *sense)
erp->function = dasd_3990_erp_equip_check;
if (sense[1] & SNS1_WRITE_INHIBITED) {
- dev_info(&device->cdev->dev,
- "Write inhibited path encountered\n");
-
- /* vary path offline
- internal error 04 - Path should be varied off-line.*/
- dev_err(&device->cdev->dev, "An error occurred in the DASD "
- "device driver, reason=%s\n", "04");
+ dev_err(&device->cdev->dev, "Write inhibited path encountered\n");
erp = dasd_3990_erp_action_1(erp);
@@ -1277,11 +1269,7 @@ dasd_3990_erp_inv_format(struct dasd_ccw_req * erp, char *sense)
erp = dasd_3990_erp_action_4(erp, sense);
} else {
- /* internal error 06 - The track format is not valid*/
- dev_err(&device->cdev->dev,
- "An error occurred in the DASD device driver, "
- "reason=%s\n", "06");
-
+ dev_err(&device->cdev->dev, "Track format is not valid\n");
erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
}
@@ -1655,9 +1643,8 @@ dasd_3990_erp_action_1B_32(struct dasd_ccw_req * default_erp, char *sense)
sizeof(struct LO_eckd_data), device);
if (IS_ERR(erp)) {
- /* internal error 01 - Unable to allocate ERP */
- dev_err(&device->cdev->dev, "An error occurred in the DASD "
- "device driver, reason=%s\n", "01");
+ DBF_DEV_EVENT(DBF_ERR, device, "%s",
+ "Unable to allocate ERP request (1B 32)");
return dasd_3990_erp_cleanup(default_erp, DASD_CQR_FAILED);
}
@@ -1799,10 +1786,8 @@ dasd_3990_update_1B(struct dasd_ccw_req * previous_erp, char *sense)
cpa = previous_erp->irb.scsw.cmd.cpa;
if (cpa == 0) {
- /* internal error 02 -
- Unable to determine address of the CCW to be restarted */
- dev_err(&device->cdev->dev, "An error occurred in the DASD "
- "device driver, reason=%s\n", "02");
+ dev_err(&device->cdev->dev,
+ "Unable to determine address of to be restarted CCW\n");
previous_erp->status = DASD_CQR_FAILED;
@@ -2001,15 +1986,9 @@ dasd_3990_erp_compound_config(struct dasd_ccw_req * erp, char *sense)
{
if ((sense[25] & DASD_SENSE_BIT_1) && (sense[26] & DASD_SENSE_BIT_2)) {
-
- /* set to suspended duplex state then restart
- internal error 05 - Set device to suspended duplex state
- should be done */
struct dasd_device *device = erp->startdev;
dev_err(&device->cdev->dev,
- "An error occurred in the DASD device driver, "
- "reason=%s\n", "05");
-
+ "Compound configuration error occurred\n");
}
erp->function = dasd_3990_erp_compound_config;
@@ -2145,10 +2124,9 @@ dasd_3990_erp_inspect_32(struct dasd_ccw_req * erp, char *sense)
erp = dasd_3990_erp_int_req(erp);
break;
- case 0x0F: /* length mismatch during update write command
- internal error 08 - update write command error*/
- dev_err(&device->cdev->dev, "An error occurred in the "
- "DASD device driver, reason=%s\n", "08");
+ case 0x0F:
+ dev_err(&device->cdev->dev,
+ "Update write command error occurred\n");
erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
break;
@@ -2157,12 +2135,9 @@ dasd_3990_erp_inspect_32(struct dasd_ccw_req * erp, char *sense)
erp = dasd_3990_erp_action_10_32(erp, sense);
break;
- case 0x15: /* next track outside defined extend
- internal error 07 - The next track is not
- within the defined storage extent */
+ case 0x15:
dev_err(&device->cdev->dev,
- "An error occurred in the DASD device driver, "
- "reason=%s\n", "07");
+ "Track outside defined extent error occurred\n");
erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
break;
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH RESEND 2/2] s390/dasd: fix double module refcount decrement
2024-02-09 12:45 [PATCH RESEND 0/2] two missing patches Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 1/2] s390/dasd: Improve ERP error messages Stefan Haberland
@ 2024-02-09 12:45 ` Stefan Haberland
2024-02-09 14:33 ` [PATCH RESEND 0/2] two missing patches Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Stefan Haberland @ 2024-02-09 12:45 UTC (permalink / raw
To: Jens Axboe
Cc: linux-block, Jan Hoeppner, linux-s390, Heiko Carstens,
Vasily Gorbik, Christian Borntraeger, Miroslav Franc
From: Miroslav Franc <mfranc@suse.cz>
Once the discipline is associated with the device, deleting the device
takes care of decrementing the module's refcount. Doing it manually on
this error path causes refcount to artificially decrease on each error
while it should just stay the same.
Fixes: c020d722b110 ("s390/dasd: fix panic during offline processing")
Signed-off-by: Miroslav Franc <mfranc@suse.cz>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
---
drivers/s390/block/dasd.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index fdb6cb8d8abf..2f3adf5d8fee 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -3503,12 +3503,11 @@ int dasd_generic_set_online(struct ccw_device *cdev,
dasd_delete_device(device);
return -EINVAL;
}
+ device->base_discipline = base_discipline;
if (!try_module_get(discipline->owner)) {
- module_put(base_discipline->owner);
dasd_delete_device(device);
return -EINVAL;
}
- device->base_discipline = base_discipline;
device->discipline = discipline;
/* check_device will allocate block device if necessary */
@@ -3516,8 +3515,6 @@ int dasd_generic_set_online(struct ccw_device *cdev,
if (rc) {
dev_warn(dev, "Setting the DASD online with discipline %s failed with rc=%i\n",
discipline->name, rc);
- module_put(discipline->owner);
- module_put(base_discipline->owner);
dasd_delete_device(device);
return rc;
}
--
2.40.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND 0/2] two missing patches
2024-02-09 12:45 [PATCH RESEND 0/2] two missing patches Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 1/2] s390/dasd: Improve ERP error messages Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 2/2] s390/dasd: fix double module refcount decrement Stefan Haberland
@ 2024-02-09 14:33 ` Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2024-02-09 14:33 UTC (permalink / raw
To: Stefan Haberland
Cc: linux-block, Jan Hoeppner, linux-s390, Heiko Carstens,
Vasily Gorbik, Miroslav Franc, Christian Borntraeger
On Fri, 09 Feb 2024 13:45:20 +0100, Stefan Haberland wrote:
> somehow two of the patches have not been sent with the patchset yesterday.
> Sorry for this.
>
> Here are the two missing patches.
> Please apply for the upcomming merge window.
>
> Jan Höppner (1):
> s390/dasd: Improve ERP error messages
>
> [...]
Applied, thanks!
[1/2] s390/dasd: Improve ERP error messages
commit: 1df0f512faa71f1e106f36529ceff52f48209e30
[2/2] s390/dasd: fix double module refcount decrement
commit: c3116e62ddeff79cae342147753ce596f01fcf06
Best regards,
--
Jens Axboe
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-09 14:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-09 12:45 [PATCH RESEND 0/2] two missing patches Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 1/2] s390/dasd: Improve ERP error messages Stefan Haberland
2024-02-09 12:45 ` [PATCH RESEND 2/2] s390/dasd: fix double module refcount decrement Stefan Haberland
2024-02-09 14:33 ` [PATCH RESEND 0/2] two missing patches Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).