tree:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
master
head:   981467033a37d916649647fa3afe1fe99bba1817
commit: 6c5657d085ae8c13a8565b98e6a23fe68f0bede4 [1709/1739] bnxt_en: Add 
support for ethtool get dump.
config: microblaze-allmodconfig (attached as .config)
compiler: microblaze-linux-gcc (GCC) 8.1.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 6c5657d085ae8c13a8565b98e6a23fe68f0bede4
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=microblaze 

All warnings (new ones prefixed by >>):

   In function 'bnxt_fill_coredump_record',
       inlined from 'bnxt_get_coredump' at 
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2980:3:
   drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2863:2: warning: 'strncpy' 
output truncated before terminating nul copying as many bytes from a string as 
its length [-Wstringop-truncation]
     strncpy(record->system_name, utsname()->nodename,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      strlen(utsname()->nodename));
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c: In function 
'bnxt_get_coredump':
>> drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2989:1: warning: the frame 
>> size of 1156 bytes is larger than 1024 bytes [-Wframe-larger-than=]
    }
    ^

vim +2989 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

  2896  
  2897  static int bnxt_get_coredump(struct bnxt *bp, void *buf, u32 *dump_len)
  2898  {
  2899          u32 ver_get_resp_len = sizeof(struct hwrm_ver_get_output);
  2900          struct coredump_segment_record *seg_record = NULL;
  2901          u32 offset = 0, seg_hdr_len, seg_record_len;
  2902          struct bnxt_coredump_segment_hdr seg_hdr;
  2903          struct bnxt_coredump_record coredump_rec;
  2904          struct bnxt_coredump coredump = {NULL};
  2905          time64_t start_time;
  2906          u16 start_utc;
  2907          int rc = 0, i;
  2908  
  2909          start_time = ktime_get_real_seconds();
  2910          start_utc = sys_tz.tz_minuteswest * 60;
  2911          seg_hdr_len = sizeof(seg_hdr);
  2912  
  2913          /* First segment should be hwrm_ver_get response */
  2914          *dump_len = seg_hdr_len + ver_get_resp_len;
  2915          if (buf) {
  2916                  bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, NULL, 
ver_get_resp_len,
  2917                                             0, 0, 0);
  2918                  memcpy(buf + offset, &seg_hdr, seg_hdr_len);
  2919                  offset += seg_hdr_len;
  2920                  memcpy(buf + offset, &bp->ver_resp, ver_get_resp_len);
  2921                  offset += ver_get_resp_len;
  2922          }
  2923  
  2924          rc = bnxt_hwrm_dbg_coredump_list(bp, &coredump);
  2925          if (rc) {
  2926                  netdev_err(bp->dev, "Failed to get coredump segment 
list\n");
  2927                  goto err;
  2928          }
  2929  
  2930          *dump_len += seg_hdr_len * coredump.total_segs;
  2931  
  2932          seg_record = (struct coredump_segment_record *)coredump.data;
  2933          seg_record_len = sizeof(*seg_record);
  2934  
  2935          for (i = 0; i < coredump.total_segs; i++) {
  2936                  u16 comp_id = le16_to_cpu(seg_record->component_id);
  2937                  u16 seg_id = le16_to_cpu(seg_record->segment_id);
  2938                  u32 duration = 0, seg_len = 0;
  2939                  unsigned long start, end;
  2940  
  2941                  start = jiffies;
  2942  
  2943                  rc = bnxt_hwrm_dbg_coredump_initiate(bp, comp_id, 
seg_id);
  2944                  if (rc) {
  2945                          netdev_err(bp->dev,
  2946                                     "Failed to initiate coredump for seg 
= %d\n",
  2947                                     seg_record->segment_id);
  2948                          goto next_seg;
  2949                  }
  2950  
  2951                  /* Write segment data into the buffer */
  2952                  rc = bnxt_hwrm_dbg_coredump_retrieve(bp, comp_id, 
seg_id,
  2953                                                       &seg_len, buf,
  2954                                                       offset + 
seg_hdr_len);
  2955                  if (rc)
  2956                          netdev_err(bp->dev,
  2957                                     "Failed to retrieve coredump for seg 
= %d\n",
  2958                                     seg_record->segment_id);
  2959  
  2960  next_seg:
  2961                  end = jiffies;
  2962                  duration = jiffies_to_msecs(end - start);
  2963                  bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, seg_record, 
seg_len,
  2964                                             rc, duration, 0);
  2965  
  2966                  if (buf) {
  2967                          /* Write segment header into the buffer */
  2968                          memcpy(buf + offset, &seg_hdr, seg_hdr_len);
  2969                          offset += seg_hdr_len + seg_len;
  2970                  }
  2971  
  2972                  *dump_len += seg_len;
  2973                  seg_record =
  2974                          (struct coredump_segment_record *)((u8 
*)seg_record +
  2975                                                             
seg_record_len);
  2976          }
  2977  
  2978  err:
  2979          if (buf) {
> 2980                  bnxt_fill_coredump_record(bp, &coredump_rec, start_time,
  2981                                            start_utc, 
coredump.total_segs + 1,
  2982                                            rc);
  2983                  memcpy(buf + offset, &coredump_rec, 
sizeof(coredump_rec));
  2984          }
  2985          kfree(coredump.data);
  2986          *dump_len += sizeof(coredump_rec);
  2987  
  2988          return rc;
> 2989  }
  2990  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to