Message ID | 20210810151711.1795374-1-hch@lst.de (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | RDMA/hfi1: stop using seq_get_buf in _driver_stats_seq_show | expand |
> Subject: [PATCH] RDMA/hfi1: stop using seq_get_buf in > _driver_stats_seq_show > > Just use seq_write to copy the stats into the seq_file buffer instead of > poking holes into the seq_file abstraction. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > drivers/infiniband/hw/hfi1/debugfs.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) Patch looks ok to me and it tests ok too! Reviewed-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com> Tested-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
On Tue, Aug 10, 2021 at 05:17:11PM +0200, Christoph Hellwig wrote: > Just use seq_write to copy the stats into the seq_file buffer instead > of poking holes into the seq_file abstraction. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com> > Tested-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com> > --- > drivers/infiniband/hw/hfi1/debugfs.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) Applied to for-next, thanks Jason
diff --git a/drivers/infiniband/hw/hfi1/debugfs.c b/drivers/infiniband/hw/hfi1/debugfs.c index 2ced236e1553..250079bca68e 100644 --- a/drivers/infiniband/hw/hfi1/debugfs.c +++ b/drivers/infiniband/hw/hfi1/debugfs.c @@ -1358,7 +1358,7 @@ static void _driver_stats_seq_stop(struct seq_file *s, void *v) { } -static u64 hfi1_sps_ints(void) +static void hfi1_sps_show_ints(struct seq_file *s) { unsigned long index, flags; struct hfi1_devdata *dd; @@ -1369,24 +1369,19 @@ static u64 hfi1_sps_ints(void) sps_ints += get_all_cpu_total(dd->int_counter); } xa_unlock_irqrestore(&hfi1_dev_table, flags); - return sps_ints; + seq_write(s, &sps_ints, sizeof(u64)); } static int _driver_stats_seq_show(struct seq_file *s, void *v) { loff_t *spos = v; - char *buffer; u64 *stats = (u64 *)&hfi1_stats; - size_t sz = seq_get_buf(s, &buffer); - if (sz < sizeof(u64)) - return SEQ_SKIP; /* special case for interrupts */ if (*spos == 0) - *(u64 *)buffer = hfi1_sps_ints(); + hfi1_sps_show_ints(s); else - *(u64 *)buffer = stats[*spos]; - seq_commit(s, sizeof(u64)); + seq_write(s, stats + *spos, sizeof(u64)); return 0; }
Just use seq_write to copy the stats into the seq_file buffer instead of poking holes into the seq_file abstraction. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/infiniband/hw/hfi1/debugfs.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)