Re: [PATCH] staging: octeon: fix line over 80 characters

From: Joe Perches
Date: Tue Jul 25 2017 - 09:30:37 EST


On Tue, 2017-07-25 at 16:01 +0300, catalinnow@xxxxxxxxx wrote:
> From: John Smith <catalinnow@xxxxxxxxx>
>
> ethernet-rx.c:
>
> fix WARNING: line over 80 characters

Instead of just shutting up checkpatch, how about
restructuring the code a bit by adding a helper function
to this very long cvm_oct_poll?

> diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
[]
> @@ -323,7 +323,8 @@ static int cvm_oct_poll(struct oct_rx_group *rx_group, int budget)
> segment_size = len;
> /* Copy the data into the packet */
> skb_put_data(skb,
> - cvmx_phys_to_ptr(segment_ptr.s.addr),
> + cvmx_phys_to_ptr(
> + segment_ptr.s.addr),
> segment_size);
> len -= segment_size;
> segment_ptr = next_ptr;


Something like (uncompiled, untested)
---
 drivers/staging/octeon/ethernet-rx.c | 78 ++++++++++++++++++------------------
 1 file changed, 40 insertions(+), 38 deletions(-)

diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
index 72baedefa0f1..7315c8150dcb 100644
--- a/drivers/staging/octeon/ethernet-rx.c
+++ b/drivers/staging/octeon/ethernet-rx.c
@@ -149,6 +149,45 @@ static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work)
  return 0;
 }
 
+static void copy_segments_to_skb(cvmx_wqe_t *work, struct sk_buff *skb)
+{
+ int segments = work->word2.s.bufs;
+ union cvmx_buf_ptr segment_ptr = work->packet_ptr;
+ int len = work->word1.len;
+
+ while (segments--) {
+ union cvmx_buf_ptr next_ptr;
+
+ next_ptr = *(union cvmx_buf_ptr *)
+ cvmx_phys_to_ptr(segment_ptr.s.addr - 8);
+
+ /*
+  * Octeon Errata PKI-100: The segment size is wrong.
+  *
+  * Until it is fixed, calculate the segment size based on
+  * the packet pool buffer size.
+  * When it is fixed, the following line should be replaced
+  * with this one:
+  * int segment_size = segment_ptr.s.size;
+  */
+ int segment_size =
+ CVMX_FPA_PACKET_POOL_SIZE -
+ (segment_ptr.s.addr -
+  (((segment_ptr.s.addr >> 7) -
+    segment_ptr.s.back) << 7));
+
+ /* Don't copy more than what is left in the packet */
+ if (segment_size > len)
+ segment_size = len;
+
+ /* Copy the data into the packet */
+ skb_put_data(skb, cvmx_phys_to_ptr(segment_ptr.s.addr),
+      segment_size);
+ len -= segment_size;
+ segment_ptr = next_ptr;
+ }
+}
+
 static int cvm_oct_poll(struct oct_rx_group *rx_group, int budget)
 {
  const int coreid = cvmx_get_core_num();
@@ -290,44 +329,7 @@ static int cvm_oct_poll(struct oct_rx_group *rx_group, int budget)
  skb_put_data(skb, ptr, work->word1.len);
  /* No packet buffers to free */
  } else {
- int segments = work->word2.s.bufs;
- union cvmx_buf_ptr segment_ptr =
-     work->packet_ptr;
- int len = work->word1.len;
-
- while (segments--) {
- union cvmx_buf_ptr next_ptr =
-     *(union cvmx_buf_ptr *)
-       cvmx_phys_to_ptr(
-       segment_ptr.s.addr - 8);
-
- /*
-  * Octeon Errata PKI-100: The segment size is
-  * wrong. Until it is fixed, calculate the
-  * segment size based on the packet pool
-  * buffer size. When it is fixed, the
-  * following line should be replaced with this
-  * one: int segment_size =
-  * segment_ptr.s.size;
-  */
- int segment_size =
-     CVMX_FPA_PACKET_POOL_SIZE -
-     (segment_ptr.s.addr -
-      (((segment_ptr.s.addr >> 7) -
-        segment_ptr.s.back) << 7));
- /*
-  * Don't copy more than what
-  * is left in the packet.
-  */
- if (segment_size > len)
- segment_size = len;
- /* Copy the data into the packet */
- skb_put_data(skb,
-      cvmx_phys_to_ptr(segment_ptr.s.addr),
-      segment_size);
- len -= segment_size;
- segment_ptr = next_ptr;
- }
+ copy_segments_to_skb(work, skb);
  }
  packet_not_copied = 0;
  }