staging: slicoss: fix sparse warnings
cover staging: slicoss: fix sparse warnings
base: next-20160909, commit-id d221eb9f
Peng Sun (2):
staging: slicoss: slic.h: add several macros to fix sparse warnings
staging: slicoss: slicoss.c: fix different address space sparse
warnings
drivers/staging/slicoss/slic.h | 45 +++++++++++++++++++++ drivers/staging/slicoss/slicoss.c | 82 +++++++++++++++++++++++---------------- 2 files changed, 94 insertions(+), 33 deletions(-)
Signature · 1 line
2.7.4
PATCH 1/2 staging: slicoss: slic.h: add several macros to fix sparse warnings
--- drivers/staging/slicoss/slic.h | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)
drivers/staging/slicoss/slic.h +45 -0
@@ -539,6 +539,51 @@ static inline void slic_flush_write(struct adapter *adapter)ioread32 (adapter->regs +SLIC_REG_HOSTID ); } +#define IOMEM_GET_FIELDADDR (base, member) \ +({ \ + char __iomem *_base = (char __iomem *)base; \ + _base += offsetof(typeof(*base), member); \ + (void __iomem *)_base; \ +}) + +#define IOMEM_GET_FIELD32 (base, member) \ +({ \ + char __iomem *_base = (char __iomem *)base; \ + _base += offsetof(typeof(*base), member); \ + ioread32(_base); \ +}) + +#define IOMEM_SET_FIELD32 (value, base, member) \ +({ \ + char __iomem *_base = (char __iomem *)base; \ + _base += offsetof(typeof(*base), member); \ + iowrite32(value, _base); \ +}) + +#ifdef CONFIG_64BIT +#define IOMEM_GET_FIELD64 (base, member) \ +({ \ + char __iomem *_base = (char __iomem *)base; \ + _base += offsetof(typeof(*base), member); \ + readq(_base); \ +}) +#else +#define IOMEM_GET_FIELD64 (base, member) \ +({ \ + char __iomem *_base = (char __iomem *)base; \ + _base += offsetof(typeof(*base), member); \ + u64 val = ((u64)ioread8(_base + 7)) << 56; \ + val += ((u64)ioread8(_base + 6)) << 48; \ + val += ((u64)ioread8(_base + 5)) << 40; \ + val += ((u64)ioread8(_base + 4)) << 32; \ + val += ((u64)ioread8(_base + 3)) << 24; \ + val += ((u64)ioread8(_base + 2)) << 16; \ + val += ((u64)ioread8(_base + 1)) << 8; \ + val += ioread8(_base); \ + le64_to_cpu(val); \ +}) +#endif +#define UPDATE_STATS (largestat, newstat, oldstat) \ { \ if ((newstat) < (oldstat)) \
Signature · 1 line
2.7.4
PATCH 2/2 staging: slicoss: slicoss.c: fix different address space sparse warnings
In reply to Peng Sun--- drivers/staging/slicoss/slicoss.c | 82 +++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 33 deletions(-)
drivers/staging/slicoss/slicoss.c +49 -33
@@ -924,8 +924,8 @@ err_unlock_irq:static void slic_link_upr_complete (struct adapter *adapter,u32 isr) {struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; -u32 lst = sm_data->lnkstatus; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data; +u32 lst =IOMEM_GET_FIELD32 (sm_data, lnkstatus);uint linkup;unsigned char linkspeed;unsigned char linkduplex;
@@ -1004,8 +1004,9 @@ static void slic_upr_request_complete(struct adapter *adapter, u32 isr)switch (upr->upr_request) {case SLIC_UPR_STATS : {struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; -struct slic_stats *stats = &sm_data->stats; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data; +struct slic_stats __iomem *stats = +IOMEM_GET_FIELDADDR (sm_data, stats);struct slic_stats *old = &adapter->inicstats_prev;struct slicnet_stats *stst = &adapter->slic_stats;
@@ -1015,48 +1016,62 @@ static void slic_upr_request_complete(struct adapter *adapter, u32 isr)break ; } -UPDATE_STATS_GB (stst->tcp.xmit_tcp_segs, stats->xmit_tcp_segs, +UPDATE_STATS_GB (stst->tcp.xmit_tcp_segs, +IOMEM_GET_FIELD64 (stats, xmit_tcp_segs), old->xmit_tcp_segs); -UPDATE_STATS_GB (stst->tcp.xmit_tcp_bytes, stats->xmit_tcp_bytes, +UPDATE_STATS_GB (stst->tcp.xmit_tcp_bytes, +IOMEM_GET_FIELD64 (stats, xmit_tcp_bytes), old->xmit_tcp_bytes); -UPDATE_STATS_GB (stst->tcp.rcv_tcp_segs, stats->rcv_tcp_segs, +UPDATE_STATS_GB (stst->tcp.rcv_tcp_segs, +IOMEM_GET_FIELD64 (stats, rcv_tcp_segs), old->rcv_tcp_segs); -UPDATE_STATS_GB (stst->tcp.rcv_tcp_bytes, stats->rcv_tcp_bytes, +UPDATE_STATS_GB (stst->tcp.rcv_tcp_bytes, +IOMEM_GET_FIELD64 (stats, rcv_tcp_bytes), old->rcv_tcp_bytes); -UPDATE_STATS_GB (stst->iface.xmt_bytes, stats->xmit_bytes, +UPDATE_STATS_GB (stst->iface.xmt_bytes, +IOMEM_GET_FIELD64 (stats, xmit_bytes), old->xmit_bytes); -UPDATE_STATS_GB (stst->iface.xmt_ucast, stats->xmit_unicasts, +UPDATE_STATS_GB (stst->iface.xmt_ucast, +IOMEM_GET_FIELD64 (stats, xmit_unicasts), old->xmit_unicasts); -UPDATE_STATS_GB (stst->iface.rcv_bytes, stats->rcv_bytes, +UPDATE_STATS_GB (stst->iface.rcv_bytes, +IOMEM_GET_FIELD64 (stats, rcv_bytes), old->rcv_bytes); -UPDATE_STATS_GB (stst->iface.rcv_ucast, stats->rcv_unicasts, +UPDATE_STATS_GB (stst->iface.rcv_ucast, +IOMEM_GET_FIELD64 (stats, rcv_unicasts), old->rcv_unicasts); -UPDATE_STATS_GB (stst->iface.xmt_errors, stats->xmit_collisions, +UPDATE_STATS_GB (stst->iface.xmt_errors, +IOMEM_GET_FIELD64 (stats, xmit_collisions), old->xmit_collisions);UPDATE_STATS_GB (stst->iface.xmt_errors, - stats->xmit_excess_collisions, +IOMEM_GET_FIELD64 (stats, + xmit_excess_collisions), old->xmit_excess_collisions); -UPDATE_STATS_GB (stst->iface.xmt_errors, stats->xmit_other_error, +UPDATE_STATS_GB (stst->iface.xmt_errors, +IOMEM_GET_FIELD64 (stats, xmit_other_error), old->xmit_other_error); -UPDATE_STATS_GB (stst->iface.rcv_errors, stats->rcv_other_error, +UPDATE_STATS_GB (stst->iface.rcv_errors, +IOMEM_GET_FIELD64 (stats, rcv_other_error), old->rcv_other_error); -UPDATE_STATS_GB (stst->iface.rcv_discards, stats->rcv_drops, +UPDATE_STATS_GB (stst->iface.rcv_discards, +IOMEM_GET_FIELD64 (stats, rcv_drops), old->rcv_drops); -if (stats->rcv_drops > old->rcv_drops) - adapter->rcv_drops += (stats->rcv_drops - +if (IOMEM_GET_FIELD64 (stats, rcv_drops) > old->rcv_drops) + adapter->rcv_drops += + (IOMEM_GET_FIELD64 (stats, rcv_drops) - old->rcv_drops);memcpy_fromio (old, stats,sizeof (*stats));break ;
@@ -1682,9 +1697,10 @@ static void slic_init_cleanup(struct adapter *adapter)if (adapter->shmem.shmem_data) {struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data; -pci_free_consistent (adapter->pcidev,sizeof (*sm_data), sm_data, +pci_free_consistent (adapter->pcidev,sizeof (*sm_data), + (void __force *)sm_data, sm->isr_phaddr); }
@@ -2071,15 +2087,15 @@ static irqreturn_t slic_interrupt(int irq, void *dev_id)struct net_device *dev = dev_id;struct adapter *adapter =netdev_priv (dev);struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data;u32 isr; -if (sm_data->isr) { +if (IOMEM_GET_FIELD32 (sm_data, isr)) {slic_write32 (adapter,SLIC_REG_ICR ,ICR_INT_MASK );slic_flush_write (adapter); - isr = sm_data->isr; - sm_data->isr =0 ; + isr =IOMEM_GET_FIELD32 (sm_data, isr); +IOMEM_SET_FIELD32 (0 , sm_data, isr); adapter->num_isrs++;switch (adapter->card->state) {case CARD_UP :
@@ -2214,7 +2230,7 @@ static int slic_if_init(struct adapter *adapter, unsigned long *flags)struct sliccard *card = adapter->card;struct net_device *dev = adapter->netdev;struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data;int rc;/* adapter should be down at this point */
@@ -2298,7 +2314,7 @@ static int slic_if_init(struct adapter *adapter, unsigned long *flags)/* * clear any pending events, then enable interrupts */ - sm_data->isr =0 ; +IOMEM_SET_FIELD32 (0 , sm_data, isr);slic_write32 (adapter,SLIC_REG_ISR ,0 );slic_write32 (adapter,SLIC_REG_ICR ,ICR_INT_ON );
@@ -2587,7 +2603,7 @@ static void slic_config_pci(struct pci_dev *pcidev)static int slic_card_init (struct sliccard *card,struct adapter *adapter) {struct slic_shmemory *sm = &adapter->shmem; -struct slic_shmem_data *sm_data = sm->shmem_data; +struct slic_shmem_data __iomem *sm_data = sm->shmem_data;struct slic_eeprom *peeprom;struct oslic_eeprom *pOeeprom;dma_addr_t phys_config;
@@ -2650,9 +2666,9 @@ static int slic_card_init(struct sliccard *card, struct adapter *adapter) }for (;;) { -if (sm_data->isr) { -if (sm_data->isr &ISR_UPC ) { - sm_data->isr =0 ; +if (IOMEM_GET_FIELD32 (sm_data, isr)) { +if (IOMEM_GET_FIELD32 (sm_data, isr) &ISR_UPC ) { +IOMEM_SET_FIELD32 (0 , sm_data, isr);slic_write64 (adapter,SLIC_REG_ISP ,0 ,0 );slic_write32 (adapter,SLIC_REG_ISR ,0 );
@@ -2662,7 +2678,7 @@ static int slic_card_init(struct sliccard *card, struct adapter *adapter)break ; } - sm_data->isr =0 ; +IOMEM_SET_FIELD32 (0 , sm_data, isr);slic_write32 (adapter,SLIC_REG_ISR ,0 );slic_flush_write (adapter); }else {
@@ -2867,7 +2883,7 @@ static int slic_init_adapter(struct net_device *netdev,if (!sm_data)return -ENOMEM ; - sm->shmem_data = sm_data; + sm->shmem_data = (struct slic_shmem_data __force __iomem *)sm_data; sm->isr_phaddr = phaddr; sm->lnkstatus_phaddr = phaddr + offsetof(struct slic_shmem_data , lnkstatus);
Signature · 1 line
2.7.4
kbuild test robot
build botRe: [PATCH 2/2] staging: slicoss: slicoss.c: fix different address space sparse warnings
url: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805 config: i386-allyesconfig (attached as .config) compiler: gcc-6 (Debian 6.1.1-9) 6.1.1…
Hi Peng,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on next-20160913]
[cannot apply to v4.8-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 All warnings (new ones prefixed by >>):
drivers/staging/slicoss/slicoss.c: In function 'slic_upr_request_complete':
>> drivers/staging/slicoss/slicoss.c:1019:128: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->tcp.xmit_tcp_segs,
^
drivers/staging/slicoss/slicoss.c:1023:130: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->tcp.xmit_tcp_bytes,
^
drivers/staging/slicoss/slicoss.c:1027:126: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->tcp.rcv_tcp_segs,
^
drivers/staging/slicoss/slicoss.c:1031:128: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->tcp.rcv_tcp_bytes,
^
drivers/staging/slicoss/slicoss.c:1035:123: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.xmt_bytes,
^
drivers/staging/slicoss/slicoss.c:1039:126: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.xmt_ucast,
^
drivers/staging/slicoss/slicoss.c:1043:122: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.rcv_bytes,
^
drivers/staging/slicoss/slicoss.c:1047:125: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.rcv_ucast,
^
drivers/staging/slicoss/slicoss.c:1051:129: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.xmt_errors,
^
drivers/staging/slicoss/slicoss.c:1055:136: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.xmt_errors,
^
drivers/staging/slicoss/slicoss.c:1060:130: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.xmt_errors,
^
drivers/staging/slicoss/slicoss.c:1064:129: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.rcv_errors,
^
drivers/staging/slicoss/slicoss.c:1068:125: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
UPDATE_STATS_GB(stst->iface.rcv_discards,
^
drivers/staging/slicoss/slicoss.c:1072:95: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^
drivers/staging/slicoss/slicoss.c:1074:95: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
(IOMEM_GET_FIELD64(stats, rcv_drops) -
^ vim +1019 drivers/staging/slicoss/slicoss.c
1003 adapter->upr_busy = 0;
1004 switch (upr->upr_request) {
1005 case SLIC_UPR_STATS: {
1006 struct slic_shmemory *sm = &adapter->shmem;
1007 struct slic_shmem_data __iomem *sm_data = sm->shmem_data;
1008 struct slic_stats __iomem *stats =
1009 IOMEM_GET_FIELDADDR(sm_data, stats);
1010 struct slic_stats *old = &adapter->inicstats_prev;
1011 struct slicnet_stats *stst = &adapter->slic_stats;
1012
1013 if (isr & ISR_UPCERR) {
1014 dev_err(&adapter->netdev->dev,
1015 "SLIC_UPR_STATS command failed isr[%x]\n", isr);
1016 break;
1017 }
1018
> 1019 UPDATE_STATS_GB(stst->tcp.xmit_tcp_segs,
1020 IOMEM_GET_FIELD64(stats, xmit_tcp_segs),
1021 old->xmit_tcp_segs);
1022
1023 UPDATE_STATS_GB(stst->tcp.xmit_tcp_bytes,
1024 IOMEM_GET_FIELD64(stats, xmit_tcp_bytes),
1025 old->xmit_tcp_bytes);
1026
1027 UPDATE_STATS_GB(stst->tcp.rcv_tcp_segs,
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
kbuild test robot
build botRe: [PATCH 2/2] staging: slicoss: slicoss.c: fix different address space sparse warnings
In reply to Peng Sunurl: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805 config: i386-randconfig-h1-09132219 (attached as .config) compiler: gcc-6 (Debian 6.1.1-9)…
Hi Peng,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on next-20160913]
[cannot apply to v4.8-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805
config: i386-randconfig-h1-09132219 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705 reproduce:
# save the attached .config to linux build tree
make ARCH=i386 All warnings (new ones prefixed by >>):
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1032:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_tcp_bytes),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1036:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_bytes),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1040:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_unicasts),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1044:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_bytes),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1048:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_unicasts),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1052:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_collisions),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1056:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats,
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1061:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_other_error),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1065:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_other_error),
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1069:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_drops),
^~~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from drivers/staging/slicoss/slicoss.c:66:
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> drivers/staging/slicoss/slicoss.c:1072:3: note: in expansion of macro 'if'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~
drivers/staging/slicoss/slicoss.c:1072:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
include/linux/compiler.h:149:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> drivers/staging/slicoss/slicoss.c:1072:3: note: in expansion of macro 'if'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~
drivers/staging/slicoss/slicoss.c:1072:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~~~~~~~~~~~~~~~~
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
include/linux/compiler.h:160:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^~~~
>> drivers/staging/slicoss/slicoss.c:1072:3: note: in expansion of macro 'if'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~
drivers/staging/slicoss/slicoss.c:1072:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~~~~~~~~~~~~~~~~
In file included from drivers/staging/slicoss/slicoss.c:97:0:
drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slicoss.c:1074:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
(IOMEM_GET_FIELD64(stats, rcv_drops) -
^~~~~~~~~~~~~~~~~vim +/if +1072 drivers/staging/slicoss/slicoss.c
1056 IOMEM_GET_FIELD64(stats,
1057 xmit_excess_collisions),
1058 old->xmit_excess_collisions);
1059
1060 UPDATE_STATS_GB(stst->iface.xmt_errors,
1061 IOMEM_GET_FIELD64(stats, xmit_other_error),
1062 old->xmit_other_error);
1063
1064 UPDATE_STATS_GB(stst->iface.rcv_errors,
1065 IOMEM_GET_FIELD64(stats, rcv_other_error),
1066 old->rcv_other_error);
1067
1068 UPDATE_STATS_GB(stst->iface.rcv_discards,
1069 IOMEM_GET_FIELD64(stats, rcv_drops),
1070 old->rcv_drops);
1071
> 1072 if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
1073 adapter->rcv_drops +=
1074 (IOMEM_GET_FIELD64(stats, rcv_drops) -
1075 old->rcv_drops);
1076 memcpy_fromio(old, stats, sizeof(*stats));
1077 break;
1078 }
1079 case SLIC_UPR_RLSR:
1080 slic_link_upr_complete(adapter, isr);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
kbuild test robot
build botRe: [PATCH 2/2] staging: slicoss: slicoss.c: fix different address space sparse warnings
In reply to Peng Sunurl: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805 config: i386-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.1.1-9) 6.1.1…
Hi Peng,
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on next-20160913]
[cannot apply to v4.8-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information]
url: https://github.com/0day-ci/linux/commits/Peng-Sun/staging-slicoss-fix-sparse-warnings/20160913-190805
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 All warnings (new ones prefixed by >>):
In file included from drivers/staging/slicoss/slicoss.c:97:0:
drivers/staging/slicoss/slicoss.c: In function 'slic_upr_request_complete':
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
>> drivers/staging/slicoss/slicoss.c:1020:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_tcp_segs),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1024:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_tcp_bytes),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1028:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_tcp_segs),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1032:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_tcp_bytes),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1036:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_bytes),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1040:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_unicasts),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1044:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_bytes),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1048:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_unicasts),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1052:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_collisions),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1056:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats,
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1061:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, xmit_other_error),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1065:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_other_error),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slic.h:597:19: note: in definition of macro 'UPDATE_STATS_GB'
(largestat) += ((newstat) - (oldstat)); \
^~~~~~~
drivers/staging/slicoss/slicoss.c:1069:5: note: in expansion of macro 'IOMEM_GET_FIELD64'
IOMEM_GET_FIELD64(stats, rcv_drops),
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slicoss.c:1072:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
if (IOMEM_GET_FIELD64(stats, rcv_drops) > old->rcv_drops)
^~~~~~~~~~~~~~~~~
>> drivers/staging/slicoss/slic.h:575:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
u64 val = ((u64)ioread8(_base + 7)) << 56; \
^
drivers/staging/slicoss/slicoss.c:1074:7: note: in expansion of macro 'IOMEM_GET_FIELD64'
(IOMEM_GET_FIELD64(stats, rcv_drops) -
^~~~~~~~~~~~~~~~~vim +/IOMEM_GET_FIELD64 +1020 drivers/staging/slicoss/slicoss.c
1004 switch (upr->upr_request) {
1005 case SLIC_UPR_STATS: {
1006 struct slic_shmemory *sm = &adapter->shmem;
1007 struct slic_shmem_data __iomem *sm_data = sm->shmem_data;
1008 struct slic_stats __iomem *stats =
1009 IOMEM_GET_FIELDADDR(sm_data, stats);
1010 struct slic_stats *old = &adapter->inicstats_prev;
1011 struct slicnet_stats *stst = &adapter->slic_stats;
1012
1013 if (isr & ISR_UPCERR) {
1014 dev_err(&adapter->netdev->dev,
1015 "SLIC_UPR_STATS command failed isr[%x]\n", isr);
1016 break;
1017 }
1018
1019 UPDATE_STATS_GB(stst->tcp.xmit_tcp_segs,
> 1020 IOMEM_GET_FIELD64(stats, xmit_tcp_segs),
1021 old->xmit_tcp_segs);
1022
1023 UPDATE_STATS_GB(stst->tcp.xmit_tcp_bytes,
1024 IOMEM_GET_FIELD64(stats, xmit_tcp_bytes),
1025 old->xmit_tcp_bytes);
1026
1027 UPDATE_STATS_GB(stst->tcp.rcv_tcp_segs,
1028 IOMEM_GET_FIELD64(stats, rcv_tcp_segs),
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation