Em 13-07-2011 18:58, Jarod Wilson escreveu: > There are folks with flaky imon hardware out there that doesn't always > respond to requests to write to their displays for some reason, which > can flood logs quickly when something like lcdproc is trying to > constantly update the display, so lets rate-limit all that error spew. This patch caused a compilation error here: drivers/media/rc/imon.c: In function ‘send_packet’: drivers/media/rc/imon.c:519: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:519: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:519: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:519: error: implicit declaration of function ‘__ratelimit’ drivers/media/rc/imon.c:519: error: ‘_rs’ undeclared (first use in this function) drivers/media/rc/imon.c:519: error: (Each undeclared identifier is reported only once drivers/media/rc/imon.c:519: error: for each function it appears in.) drivers/media/rc/imon.c:526: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:526: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:526: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:531: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:531: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:531: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c: In function ‘vfd_write’: drivers/media/rc/imon.c:833: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:833: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:833: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:833: error: ‘_rs’ undeclared (first use in this function) drivers/media/rc/imon.c:840: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:840: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:840: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:846: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:846: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:846: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:872: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:872: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:872: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:886: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:886: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:886: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c: In function ‘lcd_write’: drivers/media/rc/imon.c:915: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:915: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:915: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:915: error: ‘_rs’ undeclared (first use in this function) drivers/media/rc/imon.c:922: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:922: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:922: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:928: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:928: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:928: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:941: warning: type defaults to ‘int’ in declaration of ‘DEFINE_RATELIMIT_STATE’ drivers/media/rc/imon.c:941: warning: parameter names (without types) in function declaration drivers/media/rc/imon.c:941: error: invalid storage class for function ‘DEFINE_RATELIMIT_STATE’ > > Signed-off-by: Jarod Wilson <jarod@xxxxxxxxxx> > --- > drivers/media/rc/imon.c | 25 +++++++++++++------------ > 1 files changed, 13 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c > index 6bc35ee..ba48c1e 100644 > --- a/drivers/media/rc/imon.c > +++ b/drivers/media/rc/imon.c > @@ -516,19 +516,19 @@ static int send_packet(struct imon_context *ictx) > if (retval) { > ictx->tx.busy = false; > smp_rmb(); /* ensure later readers know we're not busy */ > - pr_err("error submitting urb(%d)\n", retval); > + pr_err_ratelimited("error submitting urb(%d)\n", retval); > } else { > /* Wait for transmission to complete (or abort) */ > mutex_unlock(&ictx->lock); > retval = wait_for_completion_interruptible( > &ictx->tx.finished); > if (retval) > - pr_err("task interrupted\n"); > + pr_err_ratelimited("task interrupted\n"); > mutex_lock(&ictx->lock); > > retval = ictx->tx.status; > if (retval) > - pr_err("packet tx failed (%d)\n", retval); > + pr_err_ratelimited("packet tx failed (%d)\n", retval); > } > > kfree(control_req); > @@ -830,20 +830,20 @@ static ssize_t vfd_write(struct file *file, const char *buf, > > ictx = file->private_data; > if (!ictx) { > - pr_err("no context for device\n"); > + pr_err_ratelimited("no context for device\n"); > return -ENODEV; > } > > mutex_lock(&ictx->lock); > > if (!ictx->dev_present_intf0) { > - pr_err("no iMON device present\n"); > + pr_err_ratelimited("no iMON device present\n"); > retval = -ENODEV; > goto exit; > } > > if (n_bytes <= 0 || n_bytes > 32) { > - pr_err("invalid payload size\n"); > + pr_err_ratelimited("invalid payload size\n"); > retval = -EINVAL; > goto exit; > } > @@ -869,7 +869,7 @@ static ssize_t vfd_write(struct file *file, const char *buf, > > retval = send_packet(ictx); > if (retval) { > - pr_err("send packet failed for packet #%d\n", seq / 2); > + pr_err_ratelimited("send packet #%d failed\n", seq / 2); > goto exit; > } else { > seq += 2; > @@ -883,7 +883,7 @@ static ssize_t vfd_write(struct file *file, const char *buf, > ictx->usb_tx_buf[7] = (unsigned char) seq; > retval = send_packet(ictx); > if (retval) > - pr_err("send packet failed for packet #%d\n", seq / 2); > + pr_err_ratelimited("send packet #%d failed\n", seq / 2); > > exit: > mutex_unlock(&ictx->lock); > @@ -912,20 +912,21 @@ static ssize_t lcd_write(struct file *file, const char *buf, > > ictx = file->private_data; > if (!ictx) { > - pr_err("no context for device\n"); > + pr_err_ratelimited("no context for device\n"); > return -ENODEV; > } > > mutex_lock(&ictx->lock); > > if (!ictx->display_supported) { > - pr_err("no iMON display present\n"); > + pr_err_ratelimited("no iMON display present\n"); > retval = -ENODEV; > goto exit; > } > > if (n_bytes != 8) { > - pr_err("invalid payload size: %d (expected 8)\n", (int)n_bytes); > + pr_err_ratelimited("invalid payload size: %d (expected 8)\n", > + (int)n_bytes); > retval = -EINVAL; > goto exit; > } > @@ -937,7 +938,7 @@ static ssize_t lcd_write(struct file *file, const char *buf, > > retval = send_packet(ictx); > if (retval) { > - pr_err("send packet failed!\n"); > + pr_err_ratelimited("send packet failed!\n"); > goto exit; > } else { > dev_dbg(ictx->dev, "%s: write %d bytes to LCD\n", -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html