Re: [PATCH 127/141] staging: qlge: Fix fall-through warnings for Clang

2020-11-24 Thread Benjamin Poirier
On 2020-11-20 12:39 -0600, Gustavo A. R. Silva wrote: > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning > by explicitly adding a break statement instead of letting the code fall > through to the next case. > > Link: https://github.com/KSPP/linux/issues/115 > Signed-off-by:

Re: [PATCH v2 1/7] staging: qlge: replace ql_* with qlge_* to avoid namespace clashes with other qlogic drivers

2020-10-18 Thread Benjamin Poirier
On 2020-10-17 07:16 +0800, Coiby Xu wrote: > On Thu, Oct 15, 2020 at 10:01:36AM +0900, Benjamin Poirier wrote: > > On 2020-10-14 18:43 +0800, Coiby Xu wrote: > > > To avoid namespace clashes with other qlogic drivers and also for the > > > sake of naming consistency

Re: [PATCH v1 1/6] staging: qlge: Initialize devlink health dump framework for the dlge driver

2020-10-15 Thread Benjamin Poirier
On 2020-10-15 11:37 +0800, Coiby Xu wrote: > On Tue, Oct 13, 2020 at 09:37:04AM +0900, Benjamin Poirier wrote: > > On 2020-10-12 19:24 +0800, Coiby Xu wrote: > > [...] > > > > I think, but didn't check in depth, that in those drivers, the devlink > > > &

Re: [PATCH v2 1/7] staging: qlge: replace ql_* with qlge_* to avoid namespace clashes with other qlogic drivers

2020-10-14 Thread Benjamin Poirier
On 2020-10-14 18:43 +0800, Coiby Xu wrote: > To avoid namespace clashes with other qlogic drivers and also for the > sake of naming consistency, use the "qlge_" prefix as suggested in > drivers/staging/qlge/TODO. > > Suggested-by: Benjamin Poirier > Signed-off-by

Re: [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter

2020-10-12 Thread Benjamin Poirier
On 2020-10-12 19:51 +0800, Coiby Xu wrote: > On Sat, Oct 10, 2020 at 10:22:30PM +0900, Benjamin Poirier wrote: > > On 2020-10-10 18:02 +0800, Coiby Xu wrote: > > [...] > > > > > + do { \ > > >

Re: [PATCH v1 1/6] staging: qlge: Initialize devlink health dump framework for the dlge driver

2020-10-12 Thread Benjamin Poirier
On 2020-10-12 19:24 +0800, Coiby Xu wrote: [...] > > I think, but didn't check in depth, that in those drivers, the devlink > > device is tied to the pci device and can exist independently of the > > netdev, at least in principle. > > > You are right. Take drivers/net/ethernet/mellanox/mlxsw as an

Re: [PATCH v1 1/6] staging: qlge: Initialize devlink health dump framework for the dlge driver

2020-10-10 Thread Benjamin Poirier
On 2020-10-10 18:24 +0800, Coiby Xu wrote: > On Sat, Oct 10, 2020 at 04:35:14PM +0900, Benjamin Poirier wrote: > > On 2020-10-08 19:58 +0800, Coiby Xu wrote: > > > Initialize devlink health dump framework for the dlge driver so the > > > coredump could be done via devli

Re: [PATCH v1 5/6] staging: qlge: clean up debugging code in the QL_ALL_DUMP ifdef land

2020-10-10 Thread Benjamin Poirier
On 2020-10-10 18:00 +0800, Coiby Xu wrote: [...] > > > > Please also update drivers/staging/qlge/TODO accordingly. There is still > > a lot of debugging code IMO (the netif_printk statements - kernel > > tracing can be used instead of those) but this patch is a substantial > > improvement. > > Th

Re: [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter

2020-10-10 Thread Benjamin Poirier
On 2020-10-10 18:02 +0800, Coiby Xu wrote: [...] > > > + do { \ > > > + err = fill_seg_(fmsg, &dump->seg_hdr, dump->seg_regs); \ > > > + if (err) { \ > > > + kvfree(

Re: [PATCH v1 5/6] staging: qlge: clean up debugging code in the QL_ALL_DUMP ifdef land

2020-10-10 Thread Benjamin Poirier
ers can be obtained by ethtool. > - Coredump can be done via devlink health reporter. > - Structure related to the hardware (struct ql_adapter) can be obtained > by crash or drgn. > > Suggested-by: Benjamin Poirier > Signed-off-by: Coiby Xu > --- > drivers/staging/

Re: [PATCH v1 2/6] staging: qlge: coredump via devlink health reporter

2020-10-10 Thread Benjamin Poirier
On 2020-10-08 19:58 +0800, Coiby Xu wrote: > $ devlink health dump show DEVICE reporter coredump -p -j > { > "Core Registers": { > "segment": 1, > "values": [ > 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Re: [PATCH v1 1/6] staging: qlge: Initialize devlink health dump framework for the dlge driver

2020-10-10 Thread Benjamin Poirier
On 2020-10-08 19:58 +0800, Coiby Xu wrote: > Initialize devlink health dump framework for the dlge driver so the > coredump could be done via devlink. > > Signed-off-by: Coiby Xu > --- > drivers/staging/qlge/Kconfig| 1 + > drivers/staging/qlge/Makefile | 2 +- > drivers/staging/

Re: [PATCH v4] staging: qlge: fix build breakage with dumping enabled

2020-10-04 Thread Benjamin Poirier
On 2020-10-04 23:22 +0800, Coiby Xu wrote: > On Sat, Oct 03, 2020 at 02:53:48PM +0900, Benjamin Poirier wrote: > > On 2020-10-03 07:59 +0800, Coiby Xu wrote: > > > This fixes commit 0107635e15ac > > > ("staging: qlge: replace pr_err with netdev_err") which

Re: [PATCH v4] staging: qlge: fix build breakage with dumping enabled

2020-10-02 Thread Benjamin Poirier
unsigned int > > Note that now ql_dump_rx_ring/ql_dump_tx_ring won't check if the passed > parameter is a null pointer. > > Fixes: 0107635e15ac ("staging: qlge: replace pr_err with netdev_err") > Reported-by: Benjamin Poirier > Suggested-by: B

Re: [PATCH v3] staging: qlge: fix build breakage with dumping enabled

2020-09-02 Thread Benjamin Poirier
:37: warning: format ‘%x’ expects a matching ‘unsigned int’ > argument [-Wformat=] > 1435 |"%s: Routing Mask %d = 0x%.08x\n", > | ^ > | | > |

Re: [PATCH v2] staging: qlge: fix build breakage with dumping enabled

2020-08-26 Thread Benjamin Poirier
:37: warning: format ‘%x’ expects a matching ‘unsigned int’ > argument [-Wformat=] > 1435 |"%s: Routing Mask %d = 0x%.08x\n", > | ^ > | | > |

Re: [PATCH] staging: qlge: fix build breakage with dumping enabled

2020-08-25 Thread Benjamin Poirier
On 2020-08-25 19:16 +0800, Coiby Xu wrote: [...] > > > @@ -1630,7 +1630,7 @@ void ql_dump_wqicb(struct wqicb *wqicb) > > > (unsigned long long)le64_to_cpu(wqicb->cnsmr_idx_addr)); > > > } > > > > > > -void ql_dump_tx_ring(struct tx_ring *tx_ring) > > > +void ql_dump_tx_ring(struct ql

Re: [PATCH] staging: qlge: fix build breakage with dumping enabled

2020-08-21 Thread Benjamin Poirier
QL_IB_DUMP=1 QL_DEV_DUMP=1 make M=drivers/staging/qlge > > Fixes: 0107635e15ac ("taging: qlge: replace pr_err with netdev_err") ^ staging > Reported-by: Benjamin Poirier > Signed-off-by: Coiby Xu > --- > drivers/staging/qlge/qlge.h | 42

Re: [RFC 1/3] Initialize devlink health dump framework for the dlge driver

2020-08-20 Thread Benjamin Poirier
On 2020-08-21 11:08 +0800, Coiby Xu wrote: [...] > > > diff --git a/drivers/staging/qlge/qlge_health.h > > > b/drivers/staging/qlge/qlge_health.h > > > new file mode 100644 > > > index ..07d3bafab845 > > > --- /dev/null > > > +++ b/drivers/staging/qlge/qlge_health.h > > > @@ -0,0 +1,2

Re: [RFC 1/3] Initialize devlink health dump framework for the dlge driver

2020-08-15 Thread Benjamin Poirier
On 2020-08-15 00:05 +0800, Coiby Xu wrote: > Initialize devlink health dump framework for the dlge driver so the > coredump could be done via devlink. > > Signed-off-by: Coiby Xu > --- > drivers/staging/qlge/Makefile | 2 +- > drivers/staging/qlge/qlge.h| 9 +++ > drivers/stag

Re: [RFC 3/3] staging: qlge: clean up code that dump info to dmesg

2020-08-15 Thread Benjamin Poirier
On 2020-08-15 00:06 +0800, Coiby Xu wrote: > The related code are not necessary because, > - Device status and general registers can be obtained by ethtool. > - Coredump can be done via devlink health reporter. > - Structure related to the hardware (struct ql_adapter) can be obtained > by crash o

Re: [PATCH 4/6] staging: qlge: qlge_main: Simplify while statements.

2020-07-13 Thread Benjamin Poirier
On 2020-07-13 17:50 +0530, Suraj Upadhyay wrote: > Simplify while loops into more readable and simple for loops. > > Signed-off-by: Suraj Upadhyay > --- [...] > @@ -1824,7 +1821,7 @@ static struct sk_buff *ql_build_rx_skb(struct > ql_adapter *qdev, > sbq_desc->p.skb = NULL;

Re: [PATCH] staging: qlge: Remove pci-dma-compat wrapper APIs.

2020-07-12 Thread Benjamin Poirier
On 2020-07-13 11:14 +0530, Suraj Upadhyay wrote: > On Mon, Jul 13, 2020 at 01:59:59PM +0900, Benjamin Poirier wrote: > > On 2020-07-11 18:16 +0530, Suraj Upadhyay wrote: > > > The legacy API wrappers in include/linux/pci-dma-compat.h > > > should go away as it crea

Re: [PATCH] staging: qlge: Remove pci-dma-compat wrapper APIs.

2020-07-12 Thread Benjamin Poirier
On 2020-07-11 18:16 +0530, Suraj Upadhyay wrote: > The legacy API wrappers in include/linux/pci-dma-compat.h > should go away as it creates unnecessary midlayering > for include/linux/dma-mapping.h APIs, instead use dma-mapping.h > APIs directly. > > The patch has been generated with the coccinell

Re: [PATCH v2 4/4] staging: qlge: replace pr_err with netdev_err

2020-06-29 Thread Benjamin Poirier
On 2020-06-30 01:43 +0800, Coiby Xu wrote: > On Mon, Jun 29, 2020 at 02:30:04PM +0900, Benjamin Poirier wrote: > > On 2020-06-27 22:58 +0800, Coiby Xu wrote: > > [...] > > > void ql_dump_qdev(struct ql_adapter *qdev) > > > { > > > @@ -1611,99 +1618,

Re: [PATCH v2 4/4] staging: qlge: replace pr_err with netdev_err

2020-06-28 Thread Benjamin Poirier
On 2020-06-27 22:58 +0800, Coiby Xu wrote: [...] > void ql_dump_qdev(struct ql_adapter *qdev) > { > @@ -1611,99 +1618,100 @@ void ql_dump_qdev(struct ql_adapter *qdev) > #ifdef QL_CB_DUMP > void ql_dump_wqicb(struct wqicb *wqicb) > { > - pr_err("Dumping wqicb stuff...\n"); > - pr_err("

Re: [PATCH] staging: qlge: qlge_main.c: fixed spaces coding style issues

2020-05-31 Thread Benjamin Poirier
On 2020-05-29 17:17 +0200, Jil Rouceau wrote: > Fixed the missing spaces before and after binary operators. > > Signed-off-by: Jil Rouceau This patch does not apply cleanly. I think your base tree is missing commit ec269f1250c6 ("staging: qlge: Remove unnecessary spaces in qlge_main.c"). ___

Re: [PATCH] staging: qlge: unmap dma when lock failed

2020-05-17 Thread Benjamin Poirier
On 2020-05-17 13:46 +0800, Xiangyang Zhang wrote: > DMA not unmapped when lock failed, this patch fixed it. > Fixes: 4322c5bee85e ("qlge: Expand coverage of hw lock for config register.") > Signed-off-by: Xiangyang Zhang > --- > drivers/staging/qlge/qlge_main.c | 3 ++- > 1 file changed, 2 ins

Re: [PATCH] staging: qlge: add braces around macro arguments

2020-02-24 Thread Benjamin Poirier
On 2020/02/24 13:22 +0530, Kaaira Gupta wrote: > On Mon, Feb 24, 2020 at 02:32:25PM +0900, Benjamin Poirier wrote: > > On 2020/02/22 01:26 +0530, Kaaira Gupta wrote: > > > Fix checkpatch.pl warnings of adding braces around macro arguments to > > > prevent precedence

Re: [PATCH] staging: qlge: add braces around macro arguments

2020-02-23 Thread Benjamin Poirier
On 2020/02/22 01:26 +0530, Kaaira Gupta wrote: > Fix checkpatch.pl warnings of adding braces around macro arguments to > prevent precedence issues by adding braces in qlge_dbg.c > > Signed-off-by: Kaaira Gupta > --- > drivers/staging/qlge/qlge_dbg.c | 6 +++--- > 1 file changed, 3 insertions(+),

Re: [PATCH] staging: qlge: fix spelling mistake "to" -> "too"

2020-01-22 Thread Benjamin Poirier
On 2020/01/23 00:07 +, Colin King wrote: > From: Colin Ian King > > There is a spelling mistake in a netif_printk message. Fix it. > > Signed-off-by: Colin Ian King > --- > drivers/staging/qlge/qlge_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/st

Re: [PATCH v2 0/17] staging: qlge: Fix rx stall in case of allocation failures

2019-10-04 Thread Benjamin Poirier
On 2019/10/04 10:19, Greg Kroah-Hartman wrote: > On Fri, Sep 27, 2019 at 07:11:54PM +0900, Benjamin Poirier wrote: [...] > > As this code got moved to staging with the goal to drop it from the > tree, why are you working on fixing it up? Do you want it moved back > out of staging

[PATCH v2 11/17] staging: qlge: Factor out duplicated expression

2019-09-27 Thread Benjamin Poirier
Given that (u16) 65536 == 0, that expression can be replaced by a simple cast. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 5 + drivers/staging/qlge/qlge_main.c | 18 ++ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers

[PATCH v2 05/17] staging: qlge: Remove bq_desc.maplen

2019-09-27 Thread Benjamin Poirier
The size of the mapping is known statically in all cases, there's no need to save it at runtime. Remove this member. Signed-off-by: Benjamin Poirier Acked-by: Manish Chopra --- drivers/staging/qlge/qlge.h | 1 - drivers/staging/qlge/qlge_main.c | 43 +++---

[PATCH v2 16/17] staging: qlge: Refill rx buffers up to multiple of 16

2019-09-27 Thread Benjamin Poirier
no longer guarantees prod_idx values aligned on multiples of 16. While it appears that we can write unaligned values to prod_idx without ill effects on device operation, it makes more sense to change qlge_refill_bq() to refill up to a limit that corresponds with the device's behavior. Signed-of

[PATCH v2 12/17] staging: qlge: Remove qlge_bq.len & size

2019-09-27 Thread Benjamin Poirier
Given the way the driver currently works, these values are always known at compile time. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 17 +--- drivers/staging/qlge/qlge_dbg.c | 4 -- drivers/staging/qlge/qlge_main.c | 75 3 files

[PATCH v2 08/17] staging: qlge: Deduplicate rx buffer queue management

2019-09-27 Thread Benjamin Poirier
required adjustments to code and dedup the most obvious cases of copy/paste. This patch should not introduce any functional change other than to some of the printk format strings. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 96 +++--- drivers/staging/qlge/qlge_dbg.c

[PATCH v2 13/17] staging: qlge: Remove useless memset

2019-09-27 Thread Benjamin Poirier
This just repeats what the other memset a few lines above did. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge_main.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c index ef33db118aa1..8da596922582 100644

[PATCH v2 15/17] staging: qlge: Update buffer queue prod index despite oom

2019-09-27 Thread Benjamin Poirier
ome associated bookkeeping variables. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 8 +-- drivers/staging/qlge/qlge_dbg.c | 10 ++- drivers/staging/qlge/qlge_main.c | 105 +++ 3 files changed, 60 insertions(+), 63 deletions(-) diff --gi

[PATCH v2 02/17] staging: qlge: Remove irq_cnt

2019-09-27 Thread Benjamin Poirier
( +- 0.09% ) After: 636300 634106 634984 638555 634188 [...] 259,237,291,449 cycles ( +- 0.19% ) Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 7 --- drivers/staging/qlge/qlge_main.c | 98 +--- drivers/staging/qlge

[PATCH v2 17/17] staging: qlge: Refill empty buffer queues from wq

2019-09-27 Thread Benjamin Poirier
27;t lock up if there are allocation failures. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/TODO| 3 -- drivers/staging/qlge/qlge.h | 8 drivers/staging/qlge/qlge_main.c | 80 +--- 3 files changed, 72 insertions(+), 19 deletions(-) diff

[PATCH v2 14/17] staging: qlge: Replace memset with assignment

2019-09-27 Thread Benjamin Poirier
Instead of clearing the structure wholesale, it is sufficient to initialize the skb member which is used to manage sbq instances. lbq instances are managed according to curr_idx and clean_idx. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge_main.c | 3 +-- 1 file changed, 1

[PATCH v2 03/17] staging: qlge: Remove page_chunk.last_flag

2019-09-27 Thread Benjamin Poirier
As already done in ql_get_curr_lchunk(), this member can be replaced by a simple test. Signed-off-by: Benjamin Poirier Acked-by: Manish Chopra --- drivers/staging/qlge/qlge.h | 1 - drivers/staging/qlge/qlge_main.c | 13 + 2 files changed, 5 insertions(+), 9 deletions

[PATCH v2 09/17] staging: qlge: Fix dma_sync_single calls

2019-09-27 Thread Benjamin Poirier
Fixes: 2c9a266afefe ("qlge: Fix receive packets drop.") Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 5 +-- drivers/staging/qlge/qlge_main.c | 54 +--- 2 files changed, 22 insertions(+), 37 deletions(-) diff --git a/drivers/staging

[PATCH v2 04/17] staging: qlge: Deduplicate lbq_buf_size

2019-09-27 Thread Benjamin Poirier
lbq_buf_size is duplicated to every rx_ring structure whereas lbq_buf_order is present once in the ql_adapter structure. All rings use the same buf size, keep only one copy of it. Also factor out the calculation of lbq_buf_size instead of having two copies. Signed-off-by: Benjamin Poirier Acked

[PATCH v2 07/17] staging: qlge: Remove useless dma synchronization calls

2019-09-27 Thread Benjamin Poirier
This is unneeded for two reasons: 1) the cpu does not write data for the device in the mapping 2) calls like ..._sync_..._for_device(..., ..._FROMDEVICE) are nonsensical, see commit 3f0fb4e85b38 ("Documentation/DMA-API-HOWTO.txt: fix misleading example") Signed-off-by: Benjam

[PATCH v2 01/17] staging: qlge: Fix irq masking in INTx mode

2019-09-27 Thread Benjamin Poirier
qlge_isr() and falsely reported as IRQ_NONE thanks to the irq_cnt scheme. This in turn can cause frames to loiter in the receive queue until a later frame leads to another rx interrupt that will schedule napi. Use the INTR_EN_EI bit (master interrupt control) instead. Signed-off-by: Benjamin Poirier

[PATCH v2 06/17] staging: qlge: Remove rx_ring.sbq_buf_size

2019-09-27 Thread Benjamin Poirier
Tx completion rings have sbq_buf_size = 0 but there's no case where the code actually tests on that value. We can remove sbq_buf_size and use a constant instead. Signed-off-by: Benjamin Poirier Reviewed-by: Willem de Bruijn --- drivers/staging/qlge/qlge.h | 1 - drivers/staging

[PATCH v2 10/17] staging: qlge: Remove rx_ring.type

2019-09-27 Thread Benjamin Poirier
This field is redundant, the type can be determined from the index, cq_id. Signed-off-by: Benjamin Poirier --- drivers/staging/qlge/qlge.h | 10 -- drivers/staging/qlge/qlge_dbg.c | 16 drivers/staging/qlge/qlge_main.c | 31 +++ 3 files

[PATCH v2 0/17] staging: qlge: Fix rx stall in case of allocation failures

2019-09-27 Thread Benjamin Poirier
qlge refills rx buffers from napi context. In case of allocation failure, allocation will be retried the next time napi runs. If a receive queue runs out of free buffers (possibly after subsequent allocation failures), it drops all traffic, no longer raises interrupts and napi is no longer schedule