On Fri, 2009-08-21 at 12:47 +0900, Hidetoshi Seto wrote: > The static buffer errmsg_buff[] is used only for building error > message in fixed format, and is protected by a spinlock. > > This patch removes this buffer and the spinlock. > > Signed-off-by: Hidetoshi Seto <seto.hidetoshi@xxxxxxxxxxxxxx> > --- > drivers/pci/pcie/aer/aerdrv_errprint.c | 28 ++++++++-------------------- > 1 files changed, 8 insertions(+), 20 deletions(-) > > diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c > index d584ffd..5fd1178 100644 > --- a/drivers/pci/pcie/aer/aerdrv_errprint.c > +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c > @@ -152,38 +152,31 @@ static char *aer_agent_string[] = { > "Transmitter ID" > }; > > -static char *aer_get_error_source_name(int severity, > - unsigned int status, > - char errmsg_buff[]) > +static void aer_print_error_source(struct aer_err_info *info) > { > int i; > char *errmsg = NULL; > > for (i = 0; i < 32; i++) { > - if (!(status & (1 << i))) > + if (!(info->status & (1 << i))) > continue; > > - if (severity == AER_CORRECTABLE) > + if (info->severity == AER_CORRECTABLE) > errmsg = aer_correctable_error_string[i]; > else > errmsg = aer_uncorrectable_error_string[i]; > > - if (!errmsg) { > - sprintf(errmsg_buff, "Unknown Error Bit %2d ", i); > - errmsg = errmsg_buff; > - } > + if (errmsg) > + AER_PR(info, "%s\t:\n", errmsg); > + else > + AER_PR(info, "Unknown Error Bit %2d \t:\n", i); > > break; > } > - > - return errmsg; > } > > -static DEFINE_SPINLOCK(logbuf_lock); > -static char errmsg_buff[100]; > void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) > { > - char *errmsg; > int err_layer, agent; > int id = ((dev->bus->number << 8) | dev->devfn); > > @@ -199,12 +192,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) > AER_PR(info, "PCIE Bus Error type\t: %s\n", > aer_error_layer[err_layer]); > > - spin_lock(&logbuf_lock); > - errmsg = aer_get_error_source_name(info->severity, > - info->status, > - errmsg_buff); > - AER_PR(info, "%s\t:\n", errmsg); > - spin_unlock(&logbuf_lock); > + aer_print_error_source(info); > > agent = AER_GET_AGENT(info->severity, info->status); > AER_PR(info, "%s\t\t: %04x\n", aer_agent_string[agent], id); Reviewed-by: Andrew Patterson <andrew.patterson@xxxxxx> -- Andrew Patterson Hewlett-Packard -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html