提交 8092d7c9 编写于 作者: D David Vrabel

uwb: don't use printk_ratelimit() so often

Avoid using printk_ratelimit() in many places because:
  - many were error messages reporting broken hardware (it's useful to
    get all of these).
  - the message itself wasn't useful so the message has been removed.
Signed-off-by: NDavid Vrabel <david.vrabel@csr.com>
上级 92c4d9bd
......@@ -200,7 +200,6 @@ static struct wusb_dev *wusbhc_cack_add(struct wusbhc *wusbhc,
u8 dev_addr;
int result;
d_fnstart(3, dev, "(wusbhc %p port_idx %d)\n", wusbhc, port_idx);
/* Is it registered already? */
list_for_each_entry(wusb_dev, &wusbhc->cack_list, cack_node)
if (!memcmp(&wusb_dev->cdid, &dnc->CDID,
......@@ -208,13 +207,8 @@ static struct wusb_dev *wusbhc_cack_add(struct wusbhc *wusbhc,
return wusb_dev;
/* We don't have it, create an entry, register it */
wusb_dev = wusb_dev_alloc(wusbhc);
if (wusb_dev == NULL) {
if (printk_ratelimit())
dev_err(dev, "DN CONNECT: no memory to process %s's %s "
"request\n", pr_cdid,
new_connection ? "connect" : "reconnect");
if (wusb_dev == NULL)
return NULL;
}
wusb_dev_init(wusb_dev);
wusb_dev->cdid = dnc->CDID;
wusb_dev->port_idx = port_idx;
......@@ -246,7 +240,6 @@ static struct wusb_dev *wusbhc_cack_add(struct wusbhc *wusbhc,
list_add_tail(&wusb_dev->cack_node, &wusbhc->cack_list);
wusbhc->cack_count++;
wusbhc_fill_cack_ie(wusbhc);
d_fnend(3, dev, "(wusbhc %p port_idx %d)\n", wusbhc, port_idx);
return wusb_dev;
}
......@@ -334,13 +327,8 @@ void wusbhc_devconnect_ack(struct wusbhc *wusbhc, struct wusb_dn_connect *dnc,
for (idx = 0; idx < wusbhc->ports_max; idx++) {
port = wusb_port_by_idx(wusbhc, idx);
if (port->wusb_dev
&& !memcmp(&dnc->CDID, &port->wusb_dev->cdid,
sizeof(dnc->CDID))) {
if (printk_ratelimit())
dev_err(dev, "Already handling dev %s "
" (it might be slow)\n", pr_cdid);
&& memcmp(&dnc->CDID, &port->wusb_dev->cdid, sizeof(dnc->CDID)) == 0)
goto error_unlock;
}
}
/* Look up those fake ports we have for a free one */
for (idx = 0; idx < wusbhc->ports_max; idx++) {
......@@ -494,7 +482,6 @@ int wusbhc_devconnect_auth(struct wusbhc *wusbhc, u8 port_idx)
*/
static void __wusbhc_keep_alive(struct wusbhc *wusbhc)
{
int result;
struct device *dev = wusbhc->dev;
unsigned cnt;
struct wusb_dev *wusb_dev;
......@@ -502,7 +489,6 @@ static void __wusbhc_keep_alive(struct wusbhc *wusbhc)
struct wuie_keep_alive *ie = &wusbhc->keep_alive_ie;
unsigned keep_alives, old_keep_alives;
d_fnstart(5, dev, "(wusbhc %p)\n", wusbhc);
old_keep_alives = ie->hdr.bLength - sizeof(ie->hdr);
keep_alives = 0;
for (cnt = 0;
......@@ -531,13 +517,10 @@ static void __wusbhc_keep_alive(struct wusbhc *wusbhc)
ie->bDeviceAddress[keep_alives++] = 0x7f;
ie->hdr.bLength = sizeof(ie->hdr) +
keep_alives*sizeof(ie->bDeviceAddress[0]);
if (keep_alives > 0) {
result = wusbhc_mmcie_set(wusbhc, 10, 5, &ie->hdr);
if (result < 0 && printk_ratelimit())
dev_err(dev, "KEEPALIVE: can't set MMC: %d\n", result);
} else if (old_keep_alives != 0)
if (keep_alives > 0)
wusbhc_mmcie_set(wusbhc, 10, 5, &ie->hdr);
else if (old_keep_alives != 0)
wusbhc_mmcie_rm(wusbhc, &ie->hdr);
d_fnend(5, dev, "(wusbhc %p) = void\n", wusbhc);
}
/*
......
......@@ -93,7 +93,6 @@ int wusbhc_mmcie_set(struct wusbhc *wusbhc, u8 interval, u8 repeat_cnt,
struct wuie_hdr *wuie)
{
int result = -ENOBUFS;
struct device *dev = wusbhc->dev;
unsigned handle, itr;
/* Search a handle, taking into account the ordering */
......@@ -119,11 +118,8 @@ int wusbhc_mmcie_set(struct wusbhc *wusbhc, u8 interval, u8 repeat_cnt,
if (wusbhc->mmcie[itr] == NULL)
handle = itr;
}
if (handle == ~0) {
if (printk_ratelimit())
dev_err(dev, "MMC handle space exhausted\n");
if (handle == ~0)
goto error_unlock;
}
}
result = (wusbhc->mmcie_add)(wusbhc, interval, repeat_cnt, handle,
wuie);
......@@ -143,15 +139,15 @@ EXPORT_SYMBOL_GPL(wusbhc_mmcie_set);
void wusbhc_mmcie_rm(struct wusbhc *wusbhc, struct wuie_hdr *wuie)
{
int result;
struct device *dev = wusbhc->dev;
unsigned handle, itr;
mutex_lock(&wusbhc->mmcie_mutex);
for (itr = 0; itr < wusbhc->mmcies_max; itr++)
for (itr = 0; itr < wusbhc->mmcies_max; itr++) {
if (wusbhc->mmcie[itr] == wuie) {
handle = itr;
goto found;
}
}
mutex_unlock(&wusbhc->mmcie_mutex);
return;
......@@ -159,11 +155,7 @@ void wusbhc_mmcie_rm(struct wusbhc *wusbhc, struct wuie_hdr *wuie)
result = (wusbhc->mmcie_rm)(wusbhc, handle);
if (result == 0)
wusbhc->mmcie[itr] = NULL;
else if (printk_ratelimit())
dev_err(dev, "MMC: Failed to remove IE %p (0x%02x)\n",
wuie, wuie->bIEIdentifier);
mutex_unlock(&wusbhc->mmcie_mutex);
return;
}
EXPORT_SYMBOL_GPL(wusbhc_mmcie_rm);
......
......@@ -410,7 +410,6 @@ int uwbd_evt_handle_rc_beacon(struct uwb_event *evt)
struct uwb_rc_evt_beacon *be;
struct uwb_beacon_frame *bf;
struct uwb_beca_e *bce;
struct device *dev = &evt->rc->uwb_dev.dev;
unsigned long last_ts;
rc = evt->rc;
......@@ -419,14 +418,12 @@ int uwbd_evt_handle_rc_beacon(struct uwb_event *evt)
if (result < 0)
return result;
/* Ignore beacon if it is from an alien. */
/* FIXME: handle alien beacons. */
if (be->bBeaconType == UWB_RC_BEACON_TYPE_OL_ALIEN ||
be->bBeaconType == UWB_RC_BEACON_TYPE_NOL_ALIEN) {
if (printk_ratelimit())
dev_err(dev, "BEACON received from ALIEN. Action? \n");
result = -ENOSYS;
return 0;
return -ENOSYS;
}
bf = (struct uwb_beacon_frame *) be->BeaconInfo;
/*
......
......@@ -363,22 +363,17 @@ ssize_t uwb_est_get_size(struct uwb_rc *uwb_rc, struct uwb_est *est,
size = -ENOENT;
if (event_low >= est->entries) { /* in range? */
if (printk_ratelimit())
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: "
"event %u out of range\n",
est, est->type_event_high, est->vendor,
est->product, est->entries,
event_low);
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: event %u out of range\n",
est, est->type_event_high, est->vendor, est->product,
est->entries, event_low);
goto out;
}
size = -ENOENT;
entry = &est->entry[event_low];
if (entry->size == 0 && entry->offset == 0) { /* unknown? */
if (printk_ratelimit())
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: "
"event %u unknown\n",
est, est->type_event_high, est->vendor,
est->product, est->entries, event_low);
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: event %u unknown\n",
est, est->type_event_high, est->vendor, est->product,
est->entries, event_low);
goto out;
}
offset = entry->offset; /* extra fries with that? */
......@@ -396,11 +391,10 @@ ssize_t uwb_est_get_size(struct uwb_rc *uwb_rc, struct uwb_est *est,
default: BUG();
}
if (offset + type_size > rceb_size) {
if (printk_ratelimit())
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: "
"not enough data to read extra size\n",
est, est->type_event_high, est->vendor,
est->product, est->entries);
dev_err(dev, "EST %p 0x%04x/%04x/%04x[%u]: "
"not enough data to read extra size\n",
est, est->type_event_high, est->vendor,
est->product, est->entries);
goto out;
}
size = entry->size;
......@@ -469,14 +463,12 @@ ssize_t uwb_est_find_size(struct uwb_rc *rc, const struct uwb_rceb *rceb,
if (size != -ENOENT)
goto out;
}
/* FIXME: downgrade to _dbg() */
if (printk_ratelimit())
dev_err(dev, "event 0x%02x/%04x/%02x: no handlers available; "
dev_dbg(dev, "event 0x%02x/%04x/%02x: no handlers available; "
"RCEB %02x %02x %02x %02x\n",
(unsigned) rceb->bEventType,
(unsigned) le16_to_cpu(rceb->wEvent),
(unsigned) rceb->bEventContext,
ptr[0], ptr[1], ptr[2], ptr[3]);
(unsigned) rceb->bEventType,
(unsigned) le16_to_cpu(rceb->wEvent),
(unsigned) rceb->bEventContext,
ptr[0], ptr[1], ptr[2], ptr[3]);
size = -ENOENT;
out:
read_unlock_irqrestore(&uwb_est_lock, flags);
......
......@@ -425,7 +425,7 @@ int i1480_cmd_reset(struct i1480 *i1480)
}
/** Wait for the MAC FW to start running */
/* Wait for the MAC FW to start running */
static
int i1480_fw_is_running_q(struct i1480 *i1480)
{
......@@ -443,8 +443,6 @@ int i1480_fw_is_running_q(struct i1480 *i1480)
}
if (*val == 0x55555555UL) /* fw running? cool */
goto out;
if (printk_ratelimit())
d_printf(5, i1480->dev, "read #%d: 0x%08x\n", cnt, *val);
}
dev_err(i1480->dev, "Timed out waiting for fw to start\n");
result = -ETIMEDOUT;
......
......@@ -440,7 +440,7 @@ static void uwb_rc_neh_grok_event(struct uwb_rc *rc, struct uwb_rceb *rceb, size
neh = uwb_rc_neh_lookup(rc, rceb);
if (neh)
uwb_rc_neh_cb(neh, rceb, size);
else if (printk_ratelimit())
else
dev_warn(dev, "event 0x%02x/%04x/%02x (%zu bytes): nobody cared\n",
rceb->bEventType, le16_to_cpu(rceb->wEvent),
rceb->bEventContext, size);
......
......@@ -188,7 +188,6 @@ static DEFINE_MUTEX(uwbd_event_mutex);
static
int uwbd_event_handle_urc(struct uwb_event *evt)
{
int result;
struct uwbd_evt_type_handler *type_table;
uwbd_evt_handler_f handler;
u8 type, context;
......@@ -199,41 +198,25 @@ int uwbd_event_handle_urc(struct uwb_event *evt)
context = evt->notif.rceb->bEventContext;
if (type > uwbd_evt_type_handlers_len) {
if (printk_ratelimit())
printk(KERN_ERR "UWBD: event type %u: unknown "
"(too high)\n", type);
printk(KERN_ERR "UWBD: event type %u: unknown (too high)\n", type);
return -EINVAL;
}
type_table = &uwbd_evt_type_handlers[type];
if (type_table->uwbd_events == NULL) {
if (printk_ratelimit())
printk(KERN_ERR "UWBD: event type %u: unknown\n", type);
printk(KERN_ERR "UWBD: event type %u: unknown\n", type);
return -EINVAL;
}
if (event > type_table->size) {
if (printk_ratelimit())
printk(KERN_ERR "UWBD: event %s[%u]: "
"unknown (too high)\n", type_table->name, event);
printk(KERN_ERR "UWBD: event %s[%u]: unknown (too high)\n",
type_table->name, event);
return -EINVAL;
}
handler = type_table->uwbd_events[event].handler;
if (handler == NULL) {
if (printk_ratelimit())
printk(KERN_ERR "UWBD: event %s[%u]: unknown\n",
type_table->name, event);
printk(KERN_ERR "UWBD: event %s[%u]: unknown\n", type_table->name, event);
return -EINVAL;
}
d_printf(3, NULL, "processing 0x%02x/%04x/%02x, %zu bytes\n",
type, event, context, evt->notif.size);
result = (*handler)(evt);
if (result < 0) {
if (printk_ratelimit())
printk(KERN_ERR "UWBD: event 0x%02x/%04x/%02x, "
"table %s[%u]: handling failed: %d\n",
type, event, context, type_table->name,
event, result);
}
return result;
return (*handler)(evt);
}
static void uwbd_event_handle_message(struct uwb_event *evt)
......
......@@ -212,7 +212,6 @@ irqreturn_t whcrc_irq_cb(int irq, void *_whcrc)
struct device *dev = &whcrc->umc_dev->dev;
u32 urcsts;
d_fnstart(4, dev, "irq %d _whcrc %p)\n", irq, _whcrc);
urcsts = le_readl(whcrc->rc_base + URCSTS);
if (!(urcsts & URCSTS_INT_MASK))
return IRQ_NONE;
......@@ -221,13 +220,6 @@ irqreturn_t whcrc_irq_cb(int irq, void *_whcrc)
d_printf(4, dev, "acked 0x%08x, urcsts 0x%08x\n",
le_readl(whcrc->rc_base + URCSTS), urcsts);
if (whcrc->uwb_rc == NULL) {
if (printk_ratelimit())
dev_dbg(dev, "Received interrupt when not yet "
"ready!\n");
goto out;
}
if (urcsts & URCSTS_HSE) {
dev_err(dev, "host system error -- hardware halted\n");
/* FIXME: do something sensible here */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册