Re: [PATCH v2 7/9] qedi: add module param to set ping packet size

2018-11-28 Thread Lee Duncan
On 11/21/18 1:25 AM, Nilesh Javali wrote:
> Default packet size is 0x400.
> For jumbo packets set to 0x2400.
> 
> Signed-off-by: Nilesh Javali 
> ---
>  drivers/scsi/qedi/qedi.h  |  1 -
>  drivers/scsi/qedi/qedi_main.c | 13 +
>  2 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/scsi/qedi/qedi.h b/drivers/scsi/qedi/qedi.h
> index 6fa02c5..a26bb506 100644
> --- a/drivers/scsi/qedi/qedi.h
> +++ b/drivers/scsi/qedi/qedi.h
> @@ -63,7 +63,6 @@
>  #define QEDI_LOCAL_PORT_INVALID  0x
>  #define TX_RX_RING   16
>  #define RX_RING  (TX_RX_RING - 1)
> -#define LL2_SINGLE_BUF_SIZE  0x400
>  #define QEDI_PAGE_ALIGN(addr)ALIGN(addr, QEDI_PAGE_SIZE)
>  #define QEDI_PAGE_MASK   (~((QEDI_PAGE_SIZE) - 1))
>  
> diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
> index 2621dee..8942f62 100644
> --- a/drivers/scsi/qedi/qedi_main.c
> +++ b/drivers/scsi/qedi/qedi_main.c
> @@ -44,6 +44,11 @@
>  MODULE_PARM_DESC(qedi_io_tracing,
>" Enable logging of SCSI requests/completions into trace 
> buffer. (default off).");
>  
> +uint qedi_ll2_buf_size = 0x400;
> +module_param(qedi_ll2_buf_size, uint, 0644);
> +MODULE_PARM_DESC(qedi_ll2_buf_size,
> +  "parameter to set ping packet size, default - 0x400, Jumbo 
> packets - 0x2400.");
> +
>  const struct qed_iscsi_ops *qedi_ops;
>  static struct scsi_transport_template *qedi_scsi_transport;
>  static struct pci_driver qedi_pci_driver;
> @@ -228,7 +233,7 @@ static int __qedi_alloc_uio_rings(struct qedi_uio_dev 
> *udev)
>   }
>  
>   /* Allocating memory for Tx/Rx pkt buffer */
> - udev->ll2_buf_size = TX_RX_RING * LL2_SINGLE_BUF_SIZE;
> + udev->ll2_buf_size = TX_RX_RING * qedi_ll2_buf_size;
>   udev->ll2_buf_size = QEDI_PAGE_ALIGN(udev->ll2_buf_size);
>   udev->ll2_buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_COMP |
>__GFP_ZERO, 2);
> @@ -283,7 +288,7 @@ static int qedi_alloc_uio_rings(struct qedi_ctx *qedi)
>   qedi->udev = udev;
>  
>   udev->tx_pkt = udev->ll2_buf;
> - udev->rx_pkt = udev->ll2_buf + LL2_SINGLE_BUF_SIZE;
> + udev->rx_pkt = udev->ll2_buf + qedi_ll2_buf_size;
>   return 0;
>  
>   err_uctrl:
> @@ -752,8 +757,8 @@ static int qedi_ll2_process_skb(struct qedi_ctx *qedi, 
> struct sk_buff *skb,
>  
>   udev = qedi->udev;
>   uctrl = udev->uctrl;
> - pkt = udev->rx_pkt + (uctrl->hw_rx_prod * LL2_SINGLE_BUF_SIZE);
> - len = min_t(u32, skb->len, (u32)LL2_SINGLE_BUF_SIZE);
> + pkt = udev->rx_pkt + (uctrl->hw_rx_prod * qedi_ll2_buf_size);
> + len = min_t(u32, skb->len, (u32)qedi_ll2_buf_size);
>   memcpy(pkt, skb->data, len);
>  
>   memset(, 0, sizeof(rxbd));
> 


Reviewed-by: Lee Duncan 


[PATCH v2 7/9] qedi: add module param to set ping packet size

2018-11-21 Thread Nilesh Javali
Default packet size is 0x400.
For jumbo packets set to 0x2400.

Signed-off-by: Nilesh Javali 
---
 drivers/scsi/qedi/qedi.h  |  1 -
 drivers/scsi/qedi/qedi_main.c | 13 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/qedi/qedi.h b/drivers/scsi/qedi/qedi.h
index 6fa02c5..a26bb506 100644
--- a/drivers/scsi/qedi/qedi.h
+++ b/drivers/scsi/qedi/qedi.h
@@ -63,7 +63,6 @@
 #define QEDI_LOCAL_PORT_INVALID0x
 #define TX_RX_RING 16
 #define RX_RING(TX_RX_RING - 1)
-#define LL2_SINGLE_BUF_SIZE0x400
 #define QEDI_PAGE_ALIGN(addr)  ALIGN(addr, QEDI_PAGE_SIZE)
 #define QEDI_PAGE_MASK (~((QEDI_PAGE_SIZE) - 1))
 
diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
index 2621dee..8942f62 100644
--- a/drivers/scsi/qedi/qedi_main.c
+++ b/drivers/scsi/qedi/qedi_main.c
@@ -44,6 +44,11 @@
 MODULE_PARM_DESC(qedi_io_tracing,
 " Enable logging of SCSI requests/completions into trace 
buffer. (default off).");
 
+uint qedi_ll2_buf_size = 0x400;
+module_param(qedi_ll2_buf_size, uint, 0644);
+MODULE_PARM_DESC(qedi_ll2_buf_size,
+"parameter to set ping packet size, default - 0x400, Jumbo 
packets - 0x2400.");
+
 const struct qed_iscsi_ops *qedi_ops;
 static struct scsi_transport_template *qedi_scsi_transport;
 static struct pci_driver qedi_pci_driver;
@@ -228,7 +233,7 @@ static int __qedi_alloc_uio_rings(struct qedi_uio_dev *udev)
}
 
/* Allocating memory for Tx/Rx pkt buffer */
-   udev->ll2_buf_size = TX_RX_RING * LL2_SINGLE_BUF_SIZE;
+   udev->ll2_buf_size = TX_RX_RING * qedi_ll2_buf_size;
udev->ll2_buf_size = QEDI_PAGE_ALIGN(udev->ll2_buf_size);
udev->ll2_buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_COMP |
 __GFP_ZERO, 2);
@@ -283,7 +288,7 @@ static int qedi_alloc_uio_rings(struct qedi_ctx *qedi)
qedi->udev = udev;
 
udev->tx_pkt = udev->ll2_buf;
-   udev->rx_pkt = udev->ll2_buf + LL2_SINGLE_BUF_SIZE;
+   udev->rx_pkt = udev->ll2_buf + qedi_ll2_buf_size;
return 0;
 
  err_uctrl:
@@ -752,8 +757,8 @@ static int qedi_ll2_process_skb(struct qedi_ctx *qedi, 
struct sk_buff *skb,
 
udev = qedi->udev;
uctrl = udev->uctrl;
-   pkt = udev->rx_pkt + (uctrl->hw_rx_prod * LL2_SINGLE_BUF_SIZE);
-   len = min_t(u32, skb->len, (u32)LL2_SINGLE_BUF_SIZE);
+   pkt = udev->rx_pkt + (uctrl->hw_rx_prod * qedi_ll2_buf_size);
+   len = min_t(u32, skb->len, (u32)qedi_ll2_buf_size);
memcpy(pkt, skb->data, len);
 
memset(, 0, sizeof(rxbd));
-- 
1.8.3.1