tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 
ath11k-bringup
head:   9bcbbf4cedb7a1f30cb547cf87dc480d7f8a5e87
commit: 9bcbbf4cedb7a1f30cb547cf87dc480d7f8a5e87 [93/93] ath11k: enable pktlog 
filter per peer

New smatch warnings:
drivers/net/wireless/ath/ath11k/debug.c:1143 ath11k_write_pktlog_filter() warn: 
inconsistent returns 'mutex:&ar->conf_mutex'.
  Locked on:   line 1115
  Unlocked on: line 1143

Old smatch warnings:
drivers/net/wireless/ath/ath11k/debug.c:700 ath11k_write_simulate_fw_crash() 
error: uninitialized symbol 'radioup'.

# 
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?id=9bcbbf4cedb7a1f30cb547cf87dc480d7f8a5e87
git remote add ath6kl 
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
git remote update ath6kl
git checkout 9bcbbf4cedb7a1f30cb547cf87dc480d7f8a5e87
vim +1143 drivers/net/wireless/ath/ath11k/debug.c

d25cb35c Sathishkumar Muruganandam 2019-02-13   988  
62a55be6 Anilkumar Kolli           2019-04-05   989  static ssize_t 
ath11k_write_pktlog_filter(struct file *file,
62a55be6 Anilkumar Kolli           2019-04-05   990                             
          const char __user *ubuf,
62a55be6 Anilkumar Kolli           2019-04-05   991                             
          size_t count, loff_t *ppos)
62a55be6 Anilkumar Kolli           2019-04-05   992  {
62a55be6 Anilkumar Kolli           2019-04-05   993     struct ath11k *ar = 
file->private_data;
b1860013 Anilkumar Kolli           2019-04-05   994     struct 
htt_rx_ring_tlv_filter tlv_filter = {0};
9bcbbf4c Anilkumar Kolli           2019-04-05   995     u32 rx_filter = 0, 
ring_id, filter, peer_valid;
9bcbbf4c Anilkumar Kolli           2019-04-05   996     u8 buf[128] = {0}, 
mac_addr[ETH_ALEN] = {0}, mode;
b1860013 Anilkumar Kolli           2019-04-05   997     char *token, *sptr;
9bcbbf4c Anilkumar Kolli           2019-04-05   998     int ret, i;
b1860013 Anilkumar Kolli           2019-04-05   999     ssize_t rc;
62a55be6 Anilkumar Kolli           2019-04-05  1000  
62a55be6 Anilkumar Kolli           2019-04-05  1001     
mutex_lock(&ar->conf_mutex);
62a55be6 Anilkumar Kolli           2019-04-05  1002     if (ar->state != 
ATH11K_STATE_ON) {
62a55be6 Anilkumar Kolli           2019-04-05  1003             ret = -ENETDOWN;
62a55be6 Anilkumar Kolli           2019-04-05  1004             goto out;
62a55be6 Anilkumar Kolli           2019-04-05  1005     }
62a55be6 Anilkumar Kolli           2019-04-05  1006  
b1860013 Anilkumar Kolli           2019-04-05  1007     rc = 
simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count);
b1860013 Anilkumar Kolli           2019-04-05  1008     if (rc < 0) {
b1860013 Anilkumar Kolli           2019-04-05  1009             ret = rc;
b1860013 Anilkumar Kolli           2019-04-05  1010             goto out;
b1860013 Anilkumar Kolli           2019-04-05  1011     }
b1860013 Anilkumar Kolli           2019-04-05  1012     buf[rc] = '\0';
b1860013 Anilkumar Kolli           2019-04-05  1013     sptr = buf;
b1860013 Anilkumar Kolli           2019-04-05  1014  
b1860013 Anilkumar Kolli           2019-04-05  1015     token = strsep(&sptr, " 
");
b1860013 Anilkumar Kolli           2019-04-05  1016     if (!token) {
b1860013 Anilkumar Kolli           2019-04-05  1017             ret = -EINVAL;
b1860013 Anilkumar Kolli           2019-04-05  1018             goto out;
b1860013 Anilkumar Kolli           2019-04-05  1019     }
b1860013 Anilkumar Kolli           2019-04-05  1020  
b1860013 Anilkumar Kolli           2019-04-05  1021     if (kstrtou32(token, 0, 
&filter)) {
b1860013 Anilkumar Kolli           2019-04-05  1022             ret = -EINVAL;
b1860013 Anilkumar Kolli           2019-04-05  1023             goto out;
b1860013 Anilkumar Kolli           2019-04-05  1024     }
b1860013 Anilkumar Kolli           2019-04-05  1025  
62a55be6 Anilkumar Kolli           2019-04-05  1026     if (filter == 
ar->debug.pktlog_filter) {
62a55be6 Anilkumar Kolli           2019-04-05  1027             ret = count;
62a55be6 Anilkumar Kolli           2019-04-05  1028             goto out;
62a55be6 Anilkumar Kolli           2019-04-05  1029     }
62a55be6 Anilkumar Kolli           2019-04-05  1030  
b1860013 Anilkumar Kolli           2019-04-05  1031     if (filter) {
b1860013 Anilkumar Kolli           2019-04-05  1032             ret = 
ath11k_wmi_pdev_pktlog_enable(ar, filter);
b1860013 Anilkumar Kolli           2019-04-05  1033             if (ret) {
62a55be6 Anilkumar Kolli           2019-04-05  1034                     
ath11k_warn(ar->ab,
62a55be6 Anilkumar Kolli           2019-04-05  1035                             
    "failed to enable pktlog filter %x: %d\n",
62a55be6 Anilkumar Kolli           2019-04-05  1036                             
    ar->debug.pktlog_filter, ret);
b1860013 Anilkumar Kolli           2019-04-05  1037                     goto 
out;
b1860013 Anilkumar Kolli           2019-04-05  1038             }
62a55be6 Anilkumar Kolli           2019-04-05  1039     } else {
62a55be6 Anilkumar Kolli           2019-04-05  1040             ret = 
ath11k_wmi_pdev_pktlog_disable(ar);
b1860013 Anilkumar Kolli           2019-04-05  1041             if (ret) {
62a55be6 Anilkumar Kolli           2019-04-05  1042                     
ath11k_warn(ar->ab, "failed to disable pktlog: %d\n", ret);
b1860013 Anilkumar Kolli           2019-04-05  1043                     goto 
out;
b1860013 Anilkumar Kolli           2019-04-05  1044             }
b1860013 Anilkumar Kolli           2019-04-05  1045     }
b1860013 Anilkumar Kolli           2019-04-05  1046  
b1860013 Anilkumar Kolli           2019-04-05  1047     token = strsep(&sptr, " 
");
b1860013 Anilkumar Kolli           2019-04-05  1048     if (!token) {
b1860013 Anilkumar Kolli           2019-04-05  1049             ret = -EINVAL;
b1860013 Anilkumar Kolli           2019-04-05  1050             goto out;
b1860013 Anilkumar Kolli           2019-04-05  1051     }
b1860013 Anilkumar Kolli           2019-04-05  1052  
b1860013 Anilkumar Kolli           2019-04-05  1053     if (kstrtou8(token, 0, 
&mode)) {
b1860013 Anilkumar Kolli           2019-04-05  1054             ret = -EINVAL;
b1860013 Anilkumar Kolli           2019-04-05  1055             goto out;
b1860013 Anilkumar Kolli           2019-04-05  1056     }
b1860013 Anilkumar Kolli           2019-04-05  1057  
b1860013 Anilkumar Kolli           2019-04-05  1058     if (mode == 
ATH11K_PKTLOG_MODE_FULL) {
b1860013 Anilkumar Kolli           2019-04-05  1059             rx_filter = 
HTT_RX_FILTER_TLV_FLAGS_PPDU_START |
b1860013 Anilkumar Kolli           2019-04-05  1060                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END |
b1860013 Anilkumar Kolli           2019-04-05  1061                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS |
b1860013 Anilkumar Kolli           2019-04-05  1062                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT |
b1860013 Anilkumar Kolli           2019-04-05  1063                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE |
b1860013 Anilkumar Kolli           2019-04-05  1064                         
HTT_RX_FILTER_TLV_FLAGS_MPDU_START |
b1860013 Anilkumar Kolli           2019-04-05  1065                         
HTT_RX_FILTER_TLV_FLAGS_MSDU_START |
b1860013 Anilkumar Kolli           2019-04-05  1066                         
HTT_RX_FILTER_TLV_FLAGS_MSDU_END |
b1860013 Anilkumar Kolli           2019-04-05  1067                         
HTT_RX_FILTER_TLV_FLAGS_MPDU_END |
b1860013 Anilkumar Kolli           2019-04-05  1068                         
HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER |
b1860013 Anilkumar Kolli           2019-04-05  1069                         
HTT_RX_FILTER_TLV_FLAGS_ATTENTION;
b1860013 Anilkumar Kolli           2019-04-05  1070     } else if (mode == 
ATH11K_PKTLOG_MODE_LITE) {
b1860013 Anilkumar Kolli           2019-04-05  1071             rx_filter = 
HTT_RX_FILTER_TLV_FLAGS_PPDU_START |
b1860013 Anilkumar Kolli           2019-04-05  1072                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END |
b1860013 Anilkumar Kolli           2019-04-05  1073                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS |
b1860013 Anilkumar Kolli           2019-04-05  1074                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT |
b1860013 Anilkumar Kolli           2019-04-05  1075                         
HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE |
b1860013 Anilkumar Kolli           2019-04-05  1076                         
HTT_RX_FILTER_TLV_FLAGS_MPDU_START;
b1860013 Anilkumar Kolli           2019-04-05  1077     }
b1860013 Anilkumar Kolli           2019-04-05  1078  
b1860013 Anilkumar Kolli           2019-04-05  1079     tlv_filter.rx_filter = 
rx_filter;
b1860013 Anilkumar Kolli           2019-04-05  1080     if (rx_filter) {
b1860013 Anilkumar Kolli           2019-04-05  1081             
tlv_filter.pkt_filter_flags0 = HTT_RX_FP_MGMT_FILTER_FLAGS0;
b1860013 Anilkumar Kolli           2019-04-05  1082             
tlv_filter.pkt_filter_flags1 = HTT_RX_FP_MGMT_FILTER_FLAGS1;
b1860013 Anilkumar Kolli           2019-04-05  1083             
tlv_filter.pkt_filter_flags2 = HTT_RX_FP_CTRL_FILTER_FLASG2;
b1860013 Anilkumar Kolli           2019-04-05  1084             
tlv_filter.pkt_filter_flags3 = HTT_RX_FP_CTRL_FILTER_FLASG3 |
b1860013 Anilkumar Kolli           2019-04-05  1085                             
               HTT_RX_FP_DATA_FILTER_FLASG3;
b1860013 Anilkumar Kolli           2019-04-05  1086     }
b1860013 Anilkumar Kolli           2019-04-05  1087  
b1860013 Anilkumar Kolli           2019-04-05  1088     ring_id = 
ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id;
b1860013 Anilkumar Kolli           2019-04-05  1089     ret = 
ath11k_dp_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id,
b1860013 Anilkumar Kolli           2019-04-05  1090                             
            HAL_RXDMA_MONITOR_STATUS,
b1860013 Anilkumar Kolli           2019-04-05  1091                             
            DP_RX_BUFFER_SIZE, &tlv_filter);
b1860013 Anilkumar Kolli           2019-04-05  1092  
b1860013 Anilkumar Kolli           2019-04-05  1093     if (ret) {
b1860013 Anilkumar Kolli           2019-04-05  1094             
ath11k_warn(ar->ab, "failed to set rx filter for moniter status ring\n");
b1860013 Anilkumar Kolli           2019-04-05  1095             goto out;
62a55be6 Anilkumar Kolli           2019-04-05  1096     }
62a55be6 Anilkumar Kolli           2019-04-05  1097  
9bcbbf4c Anilkumar Kolli           2019-04-05  1098     token = strsep(&sptr, " 
");
9bcbbf4c Anilkumar Kolli           2019-04-05  1099     if (!token) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1100             ret = -EINVAL;
9bcbbf4c Anilkumar Kolli           2019-04-05  1101             goto out;
9bcbbf4c Anilkumar Kolli           2019-04-05  1102     }
9bcbbf4c Anilkumar Kolli           2019-04-05  1103  
9bcbbf4c Anilkumar Kolli           2019-04-05  1104     if (kstrtou32(token, 0, 
&peer_valid)) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1105             ret = -EINVAL;
9bcbbf4c Anilkumar Kolli           2019-04-05  1106             goto out;
9bcbbf4c Anilkumar Kolli           2019-04-05  1107     }
9bcbbf4c Anilkumar Kolli           2019-04-05  1108  
9bcbbf4c Anilkumar Kolli           2019-04-05  1109     if (peer_valid) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1110             token = 
strsep(&sptr, " ");
9bcbbf4c Anilkumar Kolli           2019-04-05  1111             if (token) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1112                     for (i 
= 0; i < ETH_ALEN - 1; i++) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1113                             
token = strsep(&sptr, ":");
9bcbbf4c Anilkumar Kolli           2019-04-05  1114                             
if (!token)
9bcbbf4c Anilkumar Kolli           2019-04-05  1115                             
        return -EINVAL;
                                                                                
        ^^^^^^^^^^^^^^^
9bcbbf4c Anilkumar Kolli           2019-04-05  1116  
9bcbbf4c Anilkumar Kolli           2019-04-05  1117                             
if (kstrtou8(token, 16, &mac_addr[i]))
9bcbbf4c Anilkumar Kolli           2019-04-05  1118                             
        return -EINVAL;
                                                                                
        ^^^^^^^^^^^^^^^
It should be goto out.  Btw, "goto unlock;" is a better name because
it tells you what the goto does.  People don't spend enough time
thinking about label names so I always try to nag them and annoy them.
It is the punishment.

9bcbbf4c Anilkumar Kolli           2019-04-05  1119                     }
9bcbbf4c Anilkumar Kolli           2019-04-05  1120                     
memcpy(ar->debug.pktlog_peer_addr, mac_addr, ETH_ALEN);
9bcbbf4c Anilkumar Kolli           2019-04-05  1121             }
9bcbbf4c Anilkumar Kolli           2019-04-05  1122     }
9bcbbf4c Anilkumar Kolli           2019-04-05  1123  
9bcbbf4c Anilkumar Kolli           2019-04-05  1124     /* Send peer based 
pktlog enable/disable */
9bcbbf4c Anilkumar Kolli           2019-04-05  1125     ret = 
ath11k_wmi_pdev_peer_pktlog_filter(ar, mac_addr, peer_valid);
9bcbbf4c Anilkumar Kolli           2019-04-05  1126     if (ret) {
9bcbbf4c Anilkumar Kolli           2019-04-05  1127             
ath11k_warn(ar->ab, "failed to set peer pktlog filter %pM: %d\n",
9bcbbf4c Anilkumar Kolli           2019-04-05  1128                         
mac_addr, ret);
9bcbbf4c Anilkumar Kolli           2019-04-05  1129             goto out;
9bcbbf4c Anilkumar Kolli           2019-04-05  1130     }
9bcbbf4c Anilkumar Kolli           2019-04-05  1131  
9bcbbf4c Anilkumar Kolli           2019-04-05  1132     ath11k_dbg(ar->ab, 
ATH11K_DBG_WMI, "pktlog filter %d mode %s peer addr %pM\n",
9bcbbf4c Anilkumar Kolli           2019-04-05  1133                filter, 
((mode == ATH11K_PKTLOG_MODE_FULL)?"full":"lite"),
9bcbbf4c Anilkumar Kolli           2019-04-05  1134                
ar->debug.pktlog_peer_addr);
9bcbbf4c Anilkumar Kolli           2019-04-05  1135  
62a55be6 Anilkumar Kolli           2019-04-05  1136     ar->debug.pktlog_filter 
= filter;
b1860013 Anilkumar Kolli           2019-04-05  1137     ar->debug.pktlog_mode = 
mode;
9bcbbf4c Anilkumar Kolli           2019-04-05  1138     
ar->debug.pktlog_peer_valid = peer_valid;
62a55be6 Anilkumar Kolli           2019-04-05  1139     ret = count;
62a55be6 Anilkumar Kolli           2019-04-05  1140  
62a55be6 Anilkumar Kolli           2019-04-05  1141  out:
62a55be6 Anilkumar Kolli           2019-04-05  1142     
mutex_unlock(&ar->conf_mutex);
62a55be6 Anilkumar Kolli           2019-04-05 @1143     return ret;
62a55be6 Anilkumar Kolli           2019-04-05  1144  }
62a55be6 Anilkumar Kolli           2019-04-05  1145  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to