[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201804241131.HulFLg8q%fengguang.wu@intel.com>
Date: Tue, 24 Apr 2018 13:29:19 +0800
From: kbuild test robot <lkp@...el.com>
To: Edward Cree <ecree@...arflare.com>
Cc: kbuild-all@...org, linux-net-drivers@...arflare.com,
David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH net] sfc: ARFS filter IDs
Hi Edward,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net/master]
url: https://github.com/0day-ci/linux/commits/Edward-Cree/sfc-ARFS-filter-IDs/20180424-080737
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
drivers/net/ethernet/sfc/farch.c: In function 'efx_farch_filter_rfs_expire_one':
>> drivers/net/ethernet/sfc/farch.c:2938:7: warning: 'rule' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (rule)
^
coccinelle warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/sfc/efx.c:3032:1-20: alloc with no test, possible model on line 3041
drivers/net/ethernet/sfc/efx.c:3032:1-20: alloc with no test, possible model on line 3062
vim +/rule +2938 drivers/net/ethernet/sfc/farch.c
2902
2903 bool efx_farch_filter_rfs_expire_one(struct efx_nic *efx, u32 flow_id,
2904 unsigned int index)
2905 {
2906 struct efx_farch_filter_state *state = efx->filter_state;
2907 struct efx_farch_filter_table *table;
2908 bool ret = false, force = false;
2909 u16 arfs_id;
2910
2911 down_write(&state->lock);
2912 spin_lock_bh(&efx->rps_hash_lock);
2913 table = &state->table[EFX_FARCH_FILTER_TABLE_RX_IP];
2914 if (test_bit(index, table->used_bitmap) &&
2915 table->spec[index].priority == EFX_FILTER_PRI_HINT) {
2916 struct efx_filter_spec spec;
2917 struct efx_arfs_rule *rule;
2918
2919 efx_farch_filter_to_gen_spec(&spec, &table->spec[index]);
2920 if (!efx->rps_hash_table) {
2921 /* In the absence of the table, we always returned 0 to
2922 * ARFS, so use the same to query it.
2923 */
2924 arfs_id = 0;
2925 } else {
2926 rule = efx_rps_hash_find(efx, &spec);
2927 if (!rule) {
2928 /* ARFS table doesn't know of this filter, remove it */
2929 force = true;
2930 } else {
2931 arfs_id = rule->arfs_id;
2932 if (!efx_rps_check_rule(rule, index, &force))
2933 goto out_unlock;
2934 }
2935 }
2936 if (force || rps_may_expire_flow(efx->net_dev, spec.dmaq_id,
2937 flow_id, arfs_id)) {
> 2938 if (rule)
2939 rule->filter_id = EFX_ARFS_FILTER_ID_REMOVING;
2940 efx_rps_hash_del(efx, &spec);
2941 efx_farch_filter_table_clear_entry(efx, table, index);
2942 ret = true;
2943 }
2944 }
2945 out_unlock:
2946 spin_unlock_bh(&efx->rps_hash_lock);
2947 up_write(&state->lock);
2948 return ret;
2949 }
2950
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (62891 bytes)
Powered by blists - more mailing lists