* [PATCH 0/5] qlge:Fix sparse warnings. @ 2009-01-05 22:26 Ron Mercer 2009-01-05 22:27 ` [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c Ron Mercer ` (4 more replies) 0 siblings, 5 replies; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:26 UTC (permalink / raw) To: davem; +Cc: "netdev, "linux-driver, "ron.mercer Dave, The attached patches fix sparse warnings as requested by Christoph Hellwig. I will get rid of the volatile usage per your request in my next series. Thanks, Ron ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer @ 2009-01-05 22:27 ` Ron Mercer 2009-01-06 2:17 ` David Miller 2009-01-05 22:27 ` [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags Ron Mercer ` (3 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:27 UTC (permalink / raw) To: davem; +Cc: netdev, linux-driver, ron.mercer drivers/net/qlge/qlge_ethtool.c:59:23: warning: cast to restricted type drivers/net/qlge/qlge_ethtool.c:59:21: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_ethtool.c:59:21: expected restricted unsigned short [usertype] irq_delay drivers/net/qlge/qlge_ethtool.c:59:21: got unsigned short [unsigned] [usertype] <noident> drivers/net/qlge/qlge_ethtool.c:61:8: warning: cast to restricted type drivers/net/qlge/qlge_ethtool.c:60:21: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_ethtool.c:60:21: expected restricted unsigned short [usertype] pkt_delay drivers/net/qlge/qlge_ethtool.c:60:21: got unsigned short [unsigned] [usertype] <noident> drivers/net/qlge/qlge_ethtool.c:82:23: warning: cast to restricted type drivers/net/qlge/qlge_ethtool.c:82:21: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_ethtool.c:82:21: expected restricted unsigned short [usertype] irq_delay drivers/net/qlge/qlge_ethtool.c:82:21: got unsigned short [unsigned] [usertype] <noident> drivers/net/qlge/qlge_ethtool.c:84:8: warning: cast to restricted type drivers/net/qlge/qlge_ethtool.c:83:21: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_ethtool.c:83:21: expected restricted unsigned short [usertype] pkt_delay drivers/net/qlge/qlge_ethtool.c:83:21: got unsigned short [unsigned] [usertype] <noident> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge_ethtool.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/qlge/qlge_ethtool.c b/drivers/net/qlge/qlge_ethtool.c index eefb81b..9d922e2 100644 --- a/drivers/net/qlge/qlge_ethtool.c +++ b/drivers/net/qlge/qlge_ethtool.c @@ -56,9 +56,9 @@ static int ql_update_ring_coalescing(struct ql_adapter *qdev) for (i = 1; i < qdev->rss_ring_first_cq_id; i++, rx_ring++) { rx_ring = &qdev->rx_ring[i]; cqicb = (struct cqicb *)rx_ring; - cqicb->irq_delay = le16_to_cpu(qdev->tx_coalesce_usecs); + cqicb->irq_delay = cpu_to_le16(qdev->tx_coalesce_usecs); cqicb->pkt_delay = - le16_to_cpu(qdev->tx_max_coalesced_frames); + cpu_to_le16(qdev->tx_max_coalesced_frames); cqicb->flags = FLAGS_LI; status = ql_write_cfg(qdev, cqicb, sizeof(cqicb), CFG_LCQ, rx_ring->cq_id); @@ -79,9 +79,9 @@ static int ql_update_ring_coalescing(struct ql_adapter *qdev) i++) { rx_ring = &qdev->rx_ring[i]; cqicb = (struct cqicb *)rx_ring; - cqicb->irq_delay = le16_to_cpu(qdev->rx_coalesce_usecs); + cqicb->irq_delay = cpu_to_le16(qdev->rx_coalesce_usecs); cqicb->pkt_delay = - le16_to_cpu(qdev->rx_max_coalesced_frames); + cpu_to_le16(qdev->rx_max_coalesced_frames); cqicb->flags = FLAGS_LI; status = ql_write_cfg(qdev, cqicb, sizeof(cqicb), CFG_LCQ, rx_ring->cq_id); -- 1.6.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c 2009-01-05 22:27 ` [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c Ron Mercer @ 2009-01-06 2:17 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2009-01-06 2:17 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, linux-driver From: Ron Mercer <ron.mercer@qlogic.com> Date: Mon, 5 Jan 2009 14:27:28 -0800 ... > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags. 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer 2009-01-05 22:27 ` [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c Ron Mercer @ 2009-01-05 22:27 ` Ron Mercer 2009-01-06 2:18 ` David Miller 2009-01-05 22:27 ` [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup() Ron Mercer ` (2 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:27 UTC (permalink / raw) To: davem; +Cc: netdev, linux-driver, ron.mercer Changed flags element from __le32 to 3 reserved bytes and one byte of flags. Changed flags bit definitions to reflect byte width instead of __le32 width. Warnings: drivers/net/qlge/qlge_main.c:1206:16: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1207:16: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1233:17: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1276:17: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1349:19: warning: restricted degrades to integer Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 9 +++++---- drivers/net/qlge/qlge_dbg.c | 13 +++++-------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index 97321bb..71cc487 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -979,10 +979,11 @@ struct ib_mac_iocb_rsp { __le16 reserved1; __le32 reserved2[6]; - __le32 flags4; -#define IB_MAC_IOCB_RSP_HV 0x20000000 /* */ -#define IB_MAC_IOCB_RSP_HS 0x40000000 /* */ -#define IB_MAC_IOCB_RSP_HL 0x80000000 /* */ + u8 reserved3[3]; + u8 flags4; +#define IB_MAC_IOCB_RSP_HV 0x20 +#define IB_MAC_IOCB_RSP_HS 0x40 +#define IB_MAC_IOCB_RSP_HL 0x80 __le32 hdr_len; /* */ __le32 hdr_addr_lo; /* */ __le32 hdr_addr_hi; /* */ diff --git a/drivers/net/qlge/qlge_dbg.c b/drivers/net/qlge/qlge_dbg.c index 47df304..3f5e02d 100644 --- a/drivers/net/qlge/qlge_dbg.c +++ b/drivers/net/qlge/qlge_dbg.c @@ -821,14 +821,11 @@ void ql_dump_ib_mac_rsp(struct ib_mac_iocb_rsp *ib_mac_rsp) le16_to_cpu(ib_mac_rsp->vlan_id)); printk(KERN_ERR PFX "flags4 = %s%s%s.\n", - le32_to_cpu(ib_mac_rsp-> - flags4) & IB_MAC_IOCB_RSP_HV ? "HV " : "", - le32_to_cpu(ib_mac_rsp-> - flags4) & IB_MAC_IOCB_RSP_HS ? "HS " : "", - le32_to_cpu(ib_mac_rsp-> - flags4) & IB_MAC_IOCB_RSP_HL ? "HL " : ""); - - if (le32_to_cpu(ib_mac_rsp->flags4) & IB_MAC_IOCB_RSP_HV) { + ib_mac_rsp->flags4 & IB_MAC_IOCB_RSP_HV ? "HV " : "", + ib_mac_rsp->flags4 & IB_MAC_IOCB_RSP_HS ? "HS " : "", + ib_mac_rsp->flags4 & IB_MAC_IOCB_RSP_HL ? "HL " : ""); + + if (ib_mac_rsp->flags4 & IB_MAC_IOCB_RSP_HV) { printk(KERN_ERR PFX "hdr length = %d.\n", le32_to_cpu(ib_mac_rsp->hdr_len)); printk(KERN_ERR PFX "hdr addr_hi = 0x%x.\n", -- 1.6.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags. 2009-01-05 22:27 ` [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags Ron Mercer @ 2009-01-06 2:18 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2009-01-06 2:18 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, linux-driver From: Ron Mercer <ron.mercer@qlogic.com> Date: Mon, 5 Jan 2009 14:27:29 -0800 > Changed flags element from __le32 to 3 reserved bytes and one byte of > flags. Changed flags bit definitions to reflect byte width instead of > __le32 width. > > Warnings: > drivers/net/qlge/qlge_main.c:1206:16: warning: restricted degrades to integer > drivers/net/qlge/qlge_main.c:1207:16: warning: restricted degrades to integer > drivers/net/qlge/qlge_main.c:1233:17: warning: restricted degrades to integer > drivers/net/qlge/qlge_main.c:1276:17: warning: restricted degrades to integer > drivers/net/qlge/qlge_main.c:1349:19: warning: restricted degrades to integer > > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup(). 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer 2009-01-05 22:27 ` [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c Ron Mercer 2009-01-05 22:27 ` [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags Ron Mercer @ 2009-01-05 22:27 ` Ron Mercer 2009-01-06 2:18 ` David Miller 2009-01-05 22:27 ` [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues Ron Mercer 2009-01-05 22:27 ` [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes Ron Mercer 4 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:27 UTC (permalink / raw) To: davem; +Cc: netdev, linux-driver, ron.mercer Changed u16 to __sum16 usage. Warnings: drivers/net/qlge/qlge_main.c:1897:9: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:1897:9: expected unsigned short [usertype] *check drivers/net/qlge/qlge_main.c:1897:9: got restricted unsigned short *<noident> drivers/net/qlge/qlge_main.c:1903:9: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:1903:9: expected unsigned short [usertype] *check drivers/net/qlge/qlge_main.c:1903:9: got restricted unsigned short *<noident> drivers/net/qlge/qlge_main.c:1909:9: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:1909:9: expected unsigned short [unsigned] [short] [usertype] <noident> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge_main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 837be72..d7894aa 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -1884,7 +1884,7 @@ static void ql_hw_csum_setup(struct sk_buff *skb, { int len; struct iphdr *iph = ip_hdr(skb); - u16 *check; + __sum16 *check; mac_iocb_ptr->opcode = OPCODE_OB_MAC_TSO_IOCB; mac_iocb_ptr->frame_len = cpu_to_le32((u32) skb->len); mac_iocb_ptr->net_trans_offset = -- 1.6.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup(). 2009-01-05 22:27 ` [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup() Ron Mercer @ 2009-01-06 2:18 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2009-01-06 2:18 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, linux-driver From: Ron Mercer <ron.mercer@qlogic.com> Date: Mon, 5 Jan 2009 14:27:30 -0800 > Changed u16 to __sum16 usage. > > Warnings: ... > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues. 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer ` (2 preceding siblings ...) 2009-01-05 22:27 ` [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup() Ron Mercer @ 2009-01-05 22:27 ` Ron Mercer 2009-01-06 2:19 ` David Miller 2009-01-05 22:27 ` [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes Ron Mercer 4 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:27 UTC (permalink / raw) To: davem; +Cc: netdev, linux-driver, ron.mercer Warnings: drivers/net/qlge/qlge_main.c:909:17: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:909:17: expected unsigned int [unsigned] [usertype] addr_lo drivers/net/qlge/qlge_main.c:909:17: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:911:17: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:911:17: expected unsigned int [unsigned] [usertype] addr_hi drivers/net/qlge/qlge_main.c:911:17: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:974:17: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:974:17: expected unsigned int [unsigned] [usertype] addr_lo drivers/net/qlge/qlge_main.c:974:17: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:975:17: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:975:17: expected unsigned int [unsigned] [usertype] addr_hi drivers/net/qlge/qlge_main.c:975:17: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:2132:16: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:2132:16: expected unsigned int [unsigned] [usertype] addr_lo drivers/net/qlge/qlge_main.c:2132:16: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:2133:16: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:2133:16: expected unsigned int [unsigned] [usertype] addr_hi drivers/net/qlge/qlge_main.c:2133:16: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:2212:15: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:2212:15: expected unsigned int [unsigned] [usertype] addr_lo drivers/net/qlge/qlge_main.c:2212:15: got restricted unsigned int [usertype] <noident> drivers/net/qlge/qlge_main.c:2214:15: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:2214:15: expected unsigned int [unsigned] [usertype] addr_hi drivers/net/qlge/qlge_main.c:2214:15: got restricted unsigned int [usertype] <noident> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 11 +------- drivers/net/qlge/qlge_main.c | 55 ++++++++++------------------------------- 2 files changed, 15 insertions(+), 51 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index 71cc487..76ef2bc 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -818,15 +818,6 @@ struct tx_doorbell_context { }; /* DATA STRUCTURES SHARED WITH HARDWARE. */ - -struct bq_element { - u32 addr_lo; -#define BQ_END 0x00000001 -#define BQ_CONT 0x00000002 -#define BQ_MASK 0x00000003 - u32 addr_hi; -} __attribute((packed)); - struct tx_buf_desc { __le64 addr; __le32 len; @@ -1139,7 +1130,7 @@ struct bq_desc { struct page *lbq_page; struct sk_buff *skb; } p; - struct bq_element *bq; + __le64 *addr; int index; DECLARE_PCI_UNMAP_ADDR(mapaddr); DECLARE_PCI_UNMAP_LEN(maplen); diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index d7894aa..f4c0160 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -874,7 +874,6 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) { int clean_idx = rx_ring->lbq_clean_idx; struct bq_desc *lbq_desc; - struct bq_element *bq; u64 map; int i; @@ -884,7 +883,6 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) "lbq: try cleaning clean_idx = %d.\n", clean_idx); lbq_desc = &rx_ring->lbq[clean_idx]; - bq = lbq_desc->bq; if (lbq_desc->p.lbq_page == NULL) { QPRINTK(qdev, RX_STATUS, DEBUG, "lbq: getting new page for index %d.\n", @@ -906,10 +904,7 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) } pci_unmap_addr_set(lbq_desc, mapaddr, map); pci_unmap_len_set(lbq_desc, maplen, PAGE_SIZE); - bq->addr_lo = /*lbq_desc->addr_lo = */ - cpu_to_le32(map); - bq->addr_hi = /*lbq_desc->addr_hi = */ - cpu_to_le32(map >> 32); + *lbq_desc->addr = cpu_to_le64(map); } clean_idx++; if (clean_idx == rx_ring->lbq_len) @@ -934,7 +929,6 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) { int clean_idx = rx_ring->sbq_clean_idx; struct bq_desc *sbq_desc; - struct bq_element *bq; u64 map; int i; @@ -944,7 +938,6 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) QPRINTK(qdev, RX_STATUS, DEBUG, "sbq: try cleaning clean_idx = %d.\n", clean_idx); - bq = sbq_desc->bq; if (sbq_desc->p.skb == NULL) { QPRINTK(qdev, RX_STATUS, DEBUG, "sbq: getting new skb for index %d.\n", @@ -971,8 +964,7 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring) pci_unmap_addr_set(sbq_desc, mapaddr, map); pci_unmap_len_set(sbq_desc, maplen, rx_ring->sbq_buf_size / 2); - bq->addr_lo = cpu_to_le32(map); - bq->addr_hi = cpu_to_le32(map >> 32); + *sbq_desc->addr = cpu_to_le64(map); } clean_idx++; @@ -1340,7 +1332,7 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter *qdev, * eventually be in trouble. */ int size, offset, i = 0; - struct bq_element *bq, bq_array[8]; + __le64 *bq, bq_array[8]; sbq_desc = ql_get_curr_sbuf(rx_ring); pci_unmap_single(qdev->pdev, pci_unmap_addr(sbq_desc, mapaddr), @@ -1366,16 +1358,10 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter *qdev, } else { QPRINTK(qdev, RX_STATUS, DEBUG, "Headers in small, %d bytes of data in chain of large.\n", length); - bq = (struct bq_element *)sbq_desc->p.skb->data; + bq = (__le64 *)sbq_desc->p.skb->data; } while (length > 0) { lbq_desc = ql_get_curr_lbuf(rx_ring); - if ((bq->addr_lo & ~BQ_MASK) != lbq_desc->bq->addr_lo) { - QPRINTK(qdev, RX_STATUS, ERR, - "Panic!!! bad large buffer address, expected 0x%.08x, got 0x%.08x.\n", - lbq_desc->bq->addr_lo, bq->addr_lo); - return NULL; - } pci_unmap_page(qdev->pdev, pci_unmap_addr(lbq_desc, mapaddr), @@ -2093,8 +2079,6 @@ static void ql_free_lbq_buffers(struct ql_adapter *qdev, struct rx_ring *rx_ring put_page(lbq_desc->p.lbq_page); lbq_desc->p.lbq_page = NULL; } - lbq_desc->bq->addr_lo = 0; - lbq_desc->bq->addr_hi = 0; } } @@ -2107,12 +2091,12 @@ static int ql_alloc_lbq_buffers(struct ql_adapter *qdev, int i; struct bq_desc *lbq_desc; u64 map; - struct bq_element *bq = rx_ring->lbq_base; + __le64 *bq = rx_ring->lbq_base; for (i = 0; i < rx_ring->lbq_len; i++) { lbq_desc = &rx_ring->lbq[i]; memset(lbq_desc, 0, sizeof(lbq_desc)); - lbq_desc->bq = bq; + lbq_desc->addr = bq; lbq_desc->index = i; lbq_desc->p.lbq_page = alloc_page(GFP_ATOMIC); if (unlikely(!lbq_desc->p.lbq_page)) { @@ -2129,8 +2113,7 @@ static int ql_alloc_lbq_buffers(struct ql_adapter *qdev, } pci_unmap_addr_set(lbq_desc, mapaddr, map); pci_unmap_len_set(lbq_desc, maplen, PAGE_SIZE); - bq->addr_lo = cpu_to_le32(map); - bq->addr_hi = cpu_to_le32(map >> 32); + *lbq_desc->addr = cpu_to_le64(map); } bq++; } @@ -2159,13 +2142,6 @@ static void ql_free_sbq_buffers(struct ql_adapter *qdev, struct rx_ring *rx_ring dev_kfree_skb(sbq_desc->p.skb); sbq_desc->p.skb = NULL; } - if (sbq_desc->bq == NULL) { - QPRINTK(qdev, IFUP, ERR, "sbq_desc->bq %d is NULL.\n", - i); - return; - } - sbq_desc->bq->addr_lo = 0; - sbq_desc->bq->addr_hi = 0; } } @@ -2177,13 +2153,13 @@ static int ql_alloc_sbq_buffers(struct ql_adapter *qdev, struct bq_desc *sbq_desc; struct sk_buff *skb; u64 map; - struct bq_element *bq = rx_ring->sbq_base; + __le64 *bq = rx_ring->sbq_base; for (i = 0; i < rx_ring->sbq_len; i++) { sbq_desc = &rx_ring->sbq[i]; memset(sbq_desc, 0, sizeof(sbq_desc)); sbq_desc->index = i; - sbq_desc->bq = bq; + sbq_desc->addr = bq; skb = netdev_alloc_skb(qdev->ndev, rx_ring->sbq_buf_size); if (unlikely(!skb)) { /* Better luck next round */ @@ -2209,10 +2185,7 @@ static int ql_alloc_sbq_buffers(struct ql_adapter *qdev, } pci_unmap_addr_set(sbq_desc, mapaddr, map); pci_unmap_len_set(sbq_desc, maplen, rx_ring->sbq_buf_size / 2); - bq->addr_lo = /*sbq_desc->addr_lo = */ - cpu_to_le32(map); - bq->addr_hi = /*sbq_desc->addr_hi = */ - cpu_to_le32(map >> 32); + *sbq_desc->addr = cpu_to_le64(map); bq++; } return 0; @@ -3356,11 +3329,11 @@ static int ql_configure_rings(struct ql_adapter *qdev) rx_ring->cq_len * sizeof(struct ql_net_rsp_iocb); rx_ring->lbq_len = NUM_LARGE_BUFFERS; rx_ring->lbq_size = - rx_ring->lbq_len * sizeof(struct bq_element); + rx_ring->lbq_len * sizeof(__le64); rx_ring->lbq_buf_size = LARGE_BUFFER_SIZE; rx_ring->sbq_len = NUM_SMALL_BUFFERS; rx_ring->sbq_size = - rx_ring->sbq_len * sizeof(struct bq_element); + rx_ring->sbq_len * sizeof(__le64); rx_ring->sbq_buf_size = SMALL_BUFFER_SIZE * 2; rx_ring->type = DEFAULT_Q; } else if (i < qdev->rss_ring_first_cq_id) { @@ -3387,11 +3360,11 @@ static int ql_configure_rings(struct ql_adapter *qdev) rx_ring->cq_len * sizeof(struct ql_net_rsp_iocb); rx_ring->lbq_len = NUM_LARGE_BUFFERS; rx_ring->lbq_size = - rx_ring->lbq_len * sizeof(struct bq_element); + rx_ring->lbq_len * sizeof(__le64); rx_ring->lbq_buf_size = LARGE_BUFFER_SIZE; rx_ring->sbq_len = NUM_SMALL_BUFFERS; rx_ring->sbq_size = - rx_ring->sbq_len * sizeof(struct bq_element); + rx_ring->sbq_len * sizeof(__le64); rx_ring->sbq_buf_size = SMALL_BUFFER_SIZE * 2; rx_ring->type = RX_Q; } -- 1.6.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues. 2009-01-05 22:27 ` [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues Ron Mercer @ 2009-01-06 2:19 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2009-01-06 2:19 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, linux-driver From: Ron Mercer <ron.mercer@qlogic.com> Date: Mon, 5 Jan 2009 14:27:31 -0800 > Warnings: ... > > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes. 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer ` (3 preceding siblings ...) 2009-01-05 22:27 ` [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues Ron Mercer @ 2009-01-05 22:27 ` Ron Mercer 2009-01-06 2:20 ` David Miller 4 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2009-01-05 22:27 UTC (permalink / raw) To: davem; +Cc: netdev, linux-driver, ron.mercer Warnings: drivers/net/qlge/qlge_main.c:1474:34: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1475:36: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1592:51: warning: restricted degrades to integer drivers/net/qlge/qlge_main.c:1941:20: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:1941:20: expected restricted unsigned int [usertype] tid drivers/net/qlge/qlge_main.c:1941:20: got int [signed] index drivers/net/qlge/qlge_main.c:1945:24: warning: incorrect type in assignment (different base types) drivers/net/qlge/qlge_main.c:1945:24: expected restricted unsigned int [usertype] txq_idx drivers/net/qlge/qlge_main.c:1945:24: got unsigned int [unsigned] [usertype] tx_ring_idx Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index 76ef2bc..459663a 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -851,8 +851,8 @@ struct ob_mac_iocb_req { __le16 frame_len; #define OB_MAC_IOCB_LEN_MASK 0x3ffff __le16 reserved2; - __le32 tid; - __le32 txq_idx; + u32 tid; + u32 txq_idx; __le32 reserved3; __le16 vlan_tci; __le16 reserved4; @@ -871,8 +871,8 @@ struct ob_mac_iocb_rsp { u8 flags2; /* */ u8 flags3; /* */ #define OB_MAC_IOCB_RSP_B 0x80 /* */ - __le32 tid; - __le32 txq_idx; + u32 tid; + u32 txq_idx; __le32 reserved[13]; } __attribute((packed)); @@ -894,8 +894,8 @@ struct ob_mac_tso_iocb_req { #define OB_MAC_TSO_IOCB_V 0x04 __le32 reserved1[2]; __le32 frame_len; - __le32 tid; - __le32 txq_idx; + u32 tid; + u32 txq_idx; __le16 total_hdrs_len; __le16 net_trans_offset; #define OB_MAC_TRANSPORT_HDR_SHIFT 6 @@ -916,8 +916,8 @@ struct ob_mac_tso_iocb_rsp { u8 flags2; /* */ u8 flags3; /* */ #define OB_MAC_TSO_IOCB_RSP_B 0x8000 - __le32 tid; - __le32 txq_idx; + u32 tid; + u32 txq_idx; __le32 reserved2[13]; } __attribute((packed)); @@ -1118,7 +1118,7 @@ struct map_list { struct tx_ring_desc { struct sk_buff *skb; struct ob_mac_iocb_req *queue_entry; - int index; + u32 index; struct oal oal; struct map_list map[MAX_SKB_FRAGS + 1]; int map_cnt; @@ -1131,7 +1131,7 @@ struct bq_desc { struct sk_buff *skb; } p; __le64 *addr; - int index; + u32 index; DECLARE_PCI_UNMAP_ADDR(mapaddr); DECLARE_PCI_UNMAP_LEN(maplen); }; -- 1.6.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes. 2009-01-05 22:27 ` [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes Ron Mercer @ 2009-01-06 2:20 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2009-01-06 2:20 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, linux-driver From: Ron Mercer <ron.mercer@qlogic.com> Date: Mon, 5 Jan 2009 14:27:32 -0800 > Warnings: ... > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Also applied, thanks Ron. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-01-06 2:20 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-01-05 22:26 [PATCH 0/5] qlge:Fix sparse warnings Ron Mercer 2009-01-05 22:27 ` [PATCH 1/5] qlge: Fix sparse warnings for byte swapping in qlge_ethool.c Ron Mercer 2009-01-06 2:17 ` David Miller 2009-01-05 22:27 ` [PATCH 2/5] qlge: Fix sparse endian warning for inbound packet control block flags Ron Mercer 2009-01-06 2:18 ` David Miller 2009-01-05 22:27 ` [PATCH 3/5] qlge: Fix sparse endian warning in ql_hw_csum_setup() Ron Mercer 2009-01-06 2:18 ` David Miller 2009-01-05 22:27 ` [PATCH 4/5] qlge: Fix sparse warning regarding rx buffer queues Ron Mercer 2009-01-06 2:19 ` David Miller 2009-01-05 22:27 ` [PATCH 5/5] qlge: Fix sparse warnings for tx ring indexes Ron Mercer 2009-01-06 2:20 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).