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
.config.gz
Description: application/gzip