diff mbox series

scsi: mpt3sas: make sysfs error messages ratelimited

Message ID 20180907103924.17598-1-colin.king@canonical.com (mailing list archive)
State Changes Requested
Headers show
Series scsi: mpt3sas: make sysfs error messages ratelimited | expand

Commit Message

Colin King Sept. 7, 2018, 10:39 a.m. UTC
From: Colin Ian King <colin.king@canonical.com>

It is possible to heavily spam the kernel logs with messages by
excessive reading of the mpt3sas sysfs files.  Make the error messages
ratelimited to reduce the spamming effect.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/scsi/mpt3sas/mpt3sas_ctl.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Joe Perches Sept. 14, 2018, 11:26 a.m. UTC | #1
On Fri, 2018-09-07 at 11:39 +0100, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> It is possible to heavily spam the kernel logs with messages by
> excessive reading of the mpt3sas sysfs files.  Make the error messages
> ratelimited to reduce the spamming effect.
[]
> diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
[]
> @@ -2958,7 +2958,7 @@ _ctl_BRM_status_show(struct device *cdev, struct device_attribute *attr,
>  	ssize_t rc = 0;
>  
>  	if (!ioc->is_warpdrive) {
> -		pr_err(MPT3SAS_FMT "%s: BRM attribute is only for"
> +		pr_err_ratelimited(MPT3SAS_FMT "%s: BRM attribute is only for"
>  		    " warpdrive\n", ioc->name, __func__);
>  		goto out;
>  	}

trivia:

All the uses of MPT3SAS_FMT in drivers/scsi/mpt3sas/ seem
not nice.  It obfuscate the format and arguments.

Perhaps better would be create ioc_<level> macros.
Martin K. Petersen Sept. 17, 2018, 6:48 a.m. UTC | #2
Colin,

> It is possible to heavily spam the kernel logs with messages by
> excessive reading of the mpt3sas sysfs files.  Make the error messages
> ratelimited to reduce the spamming effect.

That's a bug. Please just nuke all of these.
diff mbox series

Patch

diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
index 5e8c059ce2c9..656cec5adb17 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
@@ -2958,7 +2958,7 @@  _ctl_BRM_status_show(struct device *cdev, struct device_attribute *attr,
 	ssize_t rc = 0;
 
 	if (!ioc->is_warpdrive) {
-		pr_err(MPT3SAS_FMT "%s: BRM attribute is only for"
+		pr_err_ratelimited(MPT3SAS_FMT "%s: BRM attribute is only for"
 		    " warpdrive\n", ioc->name, __func__);
 		goto out;
 	}
@@ -3039,7 +3039,7 @@  _ctl_host_trace_buffer_size_show(struct device *cdev,
 	struct DIAG_BUFFER_START *request_data;
 
 	if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) {
-		pr_err(MPT3SAS_FMT
+		pr_err_ratelimited(MPT3SAS_FMT
 			"%s: host_trace_buffer is not registered\n",
 			ioc->name, __func__);
 		return 0;
@@ -3047,7 +3047,7 @@  _ctl_host_trace_buffer_size_show(struct device *cdev,
 
 	if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
 	    MPT3_DIAG_BUFFER_IS_REGISTERED) == 0) {
-		pr_err(MPT3SAS_FMT
+		pr_err_ratelimited(MPT3SAS_FMT
 			"%s: host_trace_buffer is not registered\n",
 			ioc->name, __func__);
 		return 0;
@@ -3089,7 +3089,7 @@  _ctl_host_trace_buffer_show(struct device *cdev, struct device_attribute *attr,
 	u32 size;
 
 	if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) {
-		pr_err(MPT3SAS_FMT
+		pr_err_ratelimited(MPT3SAS_FMT
 			"%s: host_trace_buffer is not registered\n",
 			ioc->name, __func__);
 		return 0;
@@ -3097,7 +3097,7 @@  _ctl_host_trace_buffer_show(struct device *cdev, struct device_attribute *attr,
 
 	if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
 	    MPT3_DIAG_BUFFER_IS_REGISTERED) == 0) {
-		pr_err(MPT3SAS_FMT
+		pr_err_ratelimited(MPT3SAS_FMT
 			"%s: host_trace_buffer is not registered\n",
 			ioc->name, __func__);
 		return 0;