tree: https://github.com/ceph/ceph-client.git tls_logger head: 9d7726eb13dd4dbf6bba377991e8c20e18f26dae commit: 3fc959eb069b4707f932cd4556c2df2ea91e6a20 [20/39] fixups config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20250320/202503200418.ZxDBCjuJ-lkp@xxxxxxxxx/config) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250320/202503200418.ZxDBCjuJ-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202503200418.ZxDBCjuJ-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> net/ceph/ceph_san_logger.c:119: warning: Function parameter or struct member 'func' not described in 'ceph_san_log' vim +119 net/ceph/ceph_san_logger.c 209e15e6548ab5f Alex Markuze 2025-03-16 109 209e15e6548ab5f Alex Markuze 2025-03-16 110 /** 209e15e6548ab5f Alex Markuze 2025-03-16 111 * ceph_san_log - Log a message 209e15e6548ab5f Alex Markuze 2025-03-16 112 * @file: Source file name 209e15e6548ab5f Alex Markuze 2025-03-16 113 * @line: Line number 209e15e6548ab5f Alex Markuze 2025-03-16 114 * @fmt: Format string 209e15e6548ab5f Alex Markuze 2025-03-16 115 * 209e15e6548ab5f Alex Markuze 2025-03-16 116 * Logs a message to the current TLS context's log buffer 209e15e6548ab5f Alex Markuze 2025-03-16 117 */ 3fc959eb069b470 Alex Markuze 2025-03-18 118 void ceph_san_log(const char *file, const char *func, unsigned int line, const char *fmt, ...) 209e15e6548ab5f Alex Markuze 2025-03-16 @119 { 209e15e6548ab5f Alex Markuze 2025-03-16 120 /* Format the message into local buffer first */ 209e15e6548ab5f Alex Markuze 2025-03-16 121 char buf[256]; 209e15e6548ab5f Alex Markuze 2025-03-16 122 struct ceph_san_tls_ctx *ctx; 209e15e6548ab5f Alex Markuze 2025-03-16 123 struct ceph_san_log_entry *entry; 209e15e6548ab5f Alex Markuze 2025-03-16 124 va_list args; b756c73bb29c0ac Alex Markuze 2025-03-16 125 u64 alloc; ca02ecf6a70fb40 Alex Markuze 2025-03-17 126 int len, needed_size; 209e15e6548ab5f Alex Markuze 2025-03-16 127 209e15e6548ab5f Alex Markuze 2025-03-16 128 ctx = ceph_san_get_tls_ctx(); 7ef17a741382bcb Alex Markuze 2025-03-17 129 if (!ctx) { 7ef17a741382bcb Alex Markuze 2025-03-17 130 pr_err("Failed to get TLS context\n"); 209e15e6548ab5f Alex Markuze 2025-03-16 131 return; 7ef17a741382bcb Alex Markuze 2025-03-17 132 } 209e15e6548ab5f Alex Markuze 2025-03-16 133 209e15e6548ab5f Alex Markuze 2025-03-16 134 va_start(args, fmt); 209e15e6548ab5f Alex Markuze 2025-03-16 135 len = vsnprintf(buf, sizeof(buf), fmt, args); 209e15e6548ab5f Alex Markuze 2025-03-16 136 va_end(args); 209e15e6548ab5f Alex Markuze 2025-03-16 137 ca02ecf6a70fb40 Alex Markuze 2025-03-17 138 needed_size = sizeof(*entry) + len + 1; f268ba79f69f9e5 Alex Markuze 2025-03-17 139 /* Allocate entry from pagefrag - We need a spinlock here to protect access iterators */ f268ba79f69f9e5 Alex Markuze 2025-03-17 140 spin_lock(&ctx->pf.lock); ca02ecf6a70fb40 Alex Markuze 2025-03-17 141 alloc = cephsan_pagefrag_alloc(&ctx->pf, needed_size); b756c73bb29c0ac Alex Markuze 2025-03-16 142 while (!alloc) { b756c73bb29c0ac Alex Markuze 2025-03-16 143 entry = cephsan_pagefrag_get_ptr_from_tail(&ctx->pf); e49e5f0dc7ce606 Alex Markuze 2025-03-16 144 BUG_ON(entry->debug_poison != CEPH_SAN_LOG_ENTRY_POISON); e043972dfcde1e5 Alex Markuze 2025-03-16 145 BUG_ON(entry->len == 0); b756c73bb29c0ac Alex Markuze 2025-03-16 146 cephsan_pagefrag_free(&ctx->pf, entry->len); ca02ecf6a70fb40 Alex Markuze 2025-03-17 147 alloc = cephsan_pagefrag_alloc(&ctx->pf, needed_size); ca02ecf6a70fb40 Alex Markuze 2025-03-17 148 //In case we hit the wrap around, we may get a partial allocation that should be marked as used ca02ecf6a70fb40 Alex Markuze 2025-03-17 149 if (alloc && cephsan_pagefrag_get_alloc_size(alloc) < needed_size) { ca02ecf6a70fb40 Alex Markuze 2025-03-17 150 entry = cephsan_pagefrag_get_ptr(&ctx->pf, alloc); ca02ecf6a70fb40 Alex Markuze 2025-03-17 151 memset(entry->buffer, 0, sizeof(entry->buffer)); ca02ecf6a70fb40 Alex Markuze 2025-03-17 152 entry->len = cephsan_pagefrag_get_alloc_size(alloc); ca02ecf6a70fb40 Alex Markuze 2025-03-17 153 alloc = 0; ca02ecf6a70fb40 Alex Markuze 2025-03-17 154 } b756c73bb29c0ac Alex Markuze 2025-03-16 155 } 209e15e6548ab5f Alex Markuze 2025-03-16 156 entry = cephsan_pagefrag_get_ptr(&ctx->pf, alloc); 209e15e6548ab5f Alex Markuze 2025-03-16 157 209e15e6548ab5f Alex Markuze 2025-03-16 158 /* Fill in entry details */ e49e5f0dc7ce606 Alex Markuze 2025-03-16 159 entry->debug_poison = CEPH_SAN_LOG_ENTRY_POISON; 209e15e6548ab5f Alex Markuze 2025-03-16 160 entry->ts = jiffies; 209e15e6548ab5f Alex Markuze 2025-03-16 161 entry->line = line; 209e15e6548ab5f Alex Markuze 2025-03-16 162 entry->file = file; 3fc959eb069b470 Alex Markuze 2025-03-18 163 entry->func = func; 3fc959eb069b470 Alex Markuze 2025-03-18 164 entry->buffer = (char *)(entry + 1); ca02ecf6a70fb40 Alex Markuze 2025-03-17 165 entry->len = cephsan_pagefrag_get_alloc_size(alloc); f268ba79f69f9e5 Alex Markuze 2025-03-17 166 spin_unlock(&ctx->pf.lock); f268ba79f69f9e5 Alex Markuze 2025-03-17 167 f268ba79f69f9e5 Alex Markuze 2025-03-17 168 /* Copy to entry buffer */ f268ba79f69f9e5 Alex Markuze 2025-03-17 169 memcpy(entry->buffer, buf, len + 1); f268ba79f69f9e5 Alex Markuze 2025-03-17 170 entry->buffer[len] = '\0'; 209e15e6548ab5f Alex Markuze 2025-03-16 171 } 209e15e6548ab5f Alex Markuze 2025-03-16 172 EXPORT_SYMBOL(ceph_san_log); 209e15e6548ab5f Alex Markuze 2025-03-16 173 :::::: The code at line 119 was first introduced by commit :::::: 209e15e6548ab5ff8ab19f7a64868f38f5e6831a cephsan logger: WIP :::::: TO: Alex Markuze <amarkuze@xxxxxxxxxx> :::::: CC: Alex Markuze <amarkuze@xxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki