CC: [email protected] CC: [email protected] TO: Michel Lespinasse <[email protected]> CC: Andrew Morton <[email protected]> CC: Linux Memory Management List <[email protected]> CC: Vlastimil Babka <[email protected]> CC: Davidlohr Bueso <[email protected]> CC: Daniel Jordan <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f5e6c330254ae691f6d7befe61c786eb5056007e commit: da1c55f1b272f4bd54671d459b39ea7b54944ef9 mmap locking API: rename mmap_sem to mmap_lock date: 7 months ago :::::: branch date: 22 hours ago :::::: commit date: 7 months ago config: mips-randconfig-m031-20210108 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: arch/mips/mm/fault.c:327 __do_page_fault() warn: inconsistent returns 'mm->mmap_lock'. vim +327 arch/mips/mm/fault.c ^1da177e4c3f415 Linus Torvalds 2005-04-16 89 ^1da177e4c3f415 Linus Torvalds 2005-04-16 90 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 91 * If we're in an interrupt or have no user ^1da177e4c3f415 Linus Torvalds 2005-04-16 92 * context, we must not take the fault.. ^1da177e4c3f415 Linus Torvalds 2005-04-16 93 */ 70ffdb9393a7264 David Hildenbrand 2015-05-11 94 if (faulthandler_disabled() || !mm) ^1da177e4c3f415 Linus Torvalds 2005-04-16 95 goto bad_area_nosemaphore; ^1da177e4c3f415 Linus Torvalds 2005-04-16 96 759496ba6407c69 Johannes Weiner 2013-09-12 97 if (user_mode(regs)) 759496ba6407c69 Johannes Weiner 2013-09-12 98 flags |= FAULT_FLAG_USER; 43ca4957a15a120 Kautuk Consul 2011-12-23 99 retry: 89154dd5313f774 Michel Lespinasse 2020-06-08 100 mmap_read_lock(mm); ^1da177e4c3f415 Linus Torvalds 2005-04-16 101 vma = find_vma(mm, address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 102 if (!vma) ^1da177e4c3f415 Linus Torvalds 2005-04-16 103 goto bad_area; ^1da177e4c3f415 Linus Torvalds 2005-04-16 104 if (vma->vm_start <= address) ^1da177e4c3f415 Linus Torvalds 2005-04-16 105 goto good_area; ^1da177e4c3f415 Linus Torvalds 2005-04-16 106 if (!(vma->vm_flags & VM_GROWSDOWN)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 107 goto bad_area; ^1da177e4c3f415 Linus Torvalds 2005-04-16 108 if (expand_stack(vma, address)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 109 goto bad_area; ^1da177e4c3f415 Linus Torvalds 2005-04-16 110 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 111 * Ok, we have a good vm_area for this memory access, so ^1da177e4c3f415 Linus Torvalds 2005-04-16 112 * we can handle it.. ^1da177e4c3f415 Linus Torvalds 2005-04-16 113 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 114 good_area: f43a54a0d9168de Eric W. Biederman 2018-04-15 115 si_code = SEGV_ACCERR; ^1da177e4c3f415 Linus Torvalds 2005-04-16 116 ^1da177e4c3f415 Linus Torvalds 2005-04-16 117 if (write) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 118 if (!(vma->vm_flags & VM_WRITE)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 119 goto bad_area; 759496ba6407c69 Johannes Weiner 2013-09-12 120 flags |= FAULT_FLAG_WRITE; 6dd9344cfc41bcc David Daney 2010-02-10 121 } else { 05857c64ecf8972 Steven J. Hill 2012-09-13 122 if (cpu_has_rixi) { 6dd9344cfc41bcc David Daney 2010-02-10 123 if (address == regs->cp0_epc && !(vma->vm_flags & VM_EXEC)) { 6dd9344cfc41bcc David Daney 2010-02-10 124 #if 0 6dd9344cfc41bcc David Daney 2010-02-10 125 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] XI violation\n", 6dd9344cfc41bcc David Daney 2010-02-10 126 raw_smp_processor_id(), 6dd9344cfc41bcc David Daney 2010-02-10 127 current->comm, current->pid, 6dd9344cfc41bcc David Daney 2010-02-10 128 field, address, write, 6dd9344cfc41bcc David Daney 2010-02-10 129 field, regs->cp0_epc); 6dd9344cfc41bcc David Daney 2010-02-10 130 #endif 6dd9344cfc41bcc David Daney 2010-02-10 131 goto bad_area; 6dd9344cfc41bcc David Daney 2010-02-10 132 } e070dab73523bcb Ralf Baechle 2015-07-23 133 if (!(vma->vm_flags & VM_READ) && e070dab73523bcb Ralf Baechle 2015-07-23 134 exception_epc(regs) != address) { 6dd9344cfc41bcc David Daney 2010-02-10 135 #if 0 6dd9344cfc41bcc David Daney 2010-02-10 136 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] RI violation\n", 6dd9344cfc41bcc David Daney 2010-02-10 137 raw_smp_processor_id(), 6dd9344cfc41bcc David Daney 2010-02-10 138 current->comm, current->pid, 6dd9344cfc41bcc David Daney 2010-02-10 139 field, address, write, 6dd9344cfc41bcc David Daney 2010-02-10 140 field, regs->cp0_epc); 6dd9344cfc41bcc David Daney 2010-02-10 141 #endif 6dd9344cfc41bcc David Daney 2010-02-10 142 goto bad_area; 6dd9344cfc41bcc David Daney 2010-02-10 143 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 144 } else { 5093c5872be3a04 Anshuman Khandual 2020-04-06 145 if (unlikely(!vma_is_accessible(vma))) ^1da177e4c3f415 Linus Torvalds 2005-04-16 146 goto bad_area; ^1da177e4c3f415 Linus Torvalds 2005-04-16 147 } 6dd9344cfc41bcc David Daney 2010-02-10 148 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 149 ^1da177e4c3f415 Linus Torvalds 2005-04-16 150 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 151 * If for any reason at all we couldn't handle the fault, ^1da177e4c3f415 Linus Torvalds 2005-04-16 152 * make sure we exit gracefully rather than endlessly redo ^1da177e4c3f415 Linus Torvalds 2005-04-16 153 * the fault. ^1da177e4c3f415 Linus Torvalds 2005-04-16 154 */ dcddffd41d3f1d3 Kirill A. Shutemov 2016-07-26 155 fault = handle_mm_fault(vma, address, flags); 43ca4957a15a120 Kautuk Consul 2011-12-23 156 4ef873226ceb9c7 Peter Xu 2020-04-01 157 if (fault_signal_pending(fault, regs)) 43ca4957a15a120 Kautuk Consul 2011-12-23 158 return; 43ca4957a15a120 Kautuk Consul 2011-12-23 159 a8b0ca17b80e92f Peter Zijlstra 2011-06-27 160 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); 83c54070ee1a2d0 Nick Piggin 2007-07-19 161 if (unlikely(fault & VM_FAULT_ERROR)) { 83c54070ee1a2d0 Nick Piggin 2007-07-19 162 if (fault & VM_FAULT_OOM) ^1da177e4c3f415 Linus Torvalds 2005-04-16 163 goto out_of_memory; 33692f27597fcab Linus Torvalds 2015-01-29 164 else if (fault & VM_FAULT_SIGSEGV) 33692f27597fcab Linus Torvalds 2015-01-29 165 goto bad_area; 83c54070ee1a2d0 Nick Piggin 2007-07-19 166 else if (fault & VM_FAULT_SIGBUS) 83c54070ee1a2d0 Nick Piggin 2007-07-19 167 goto do_sigbus; ^1da177e4c3f415 Linus Torvalds 2005-04-16 168 BUG(); ^1da177e4c3f415 Linus Torvalds 2005-04-16 169 } 43ca4957a15a120 Kautuk Consul 2011-12-23 170 if (flags & FAULT_FLAG_ALLOW_RETRY) { 7f788d2d5308581 Dengcheng Zhu 2010-10-12 171 if (fault & VM_FAULT_MAJOR) { 43ca4957a15a120 Kautuk Consul 2011-12-23 172 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, 43ca4957a15a120 Kautuk Consul 2011-12-23 173 regs, address); 83c54070ee1a2d0 Nick Piggin 2007-07-19 174 tsk->maj_flt++; 7f788d2d5308581 Dengcheng Zhu 2010-10-12 175 } else { 43ca4957a15a120 Kautuk Consul 2011-12-23 176 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, 43ca4957a15a120 Kautuk Consul 2011-12-23 177 regs, address); 83c54070ee1a2d0 Nick Piggin 2007-07-19 178 tsk->min_flt++; 7f788d2d5308581 Dengcheng Zhu 2010-10-12 179 } 43ca4957a15a120 Kautuk Consul 2011-12-23 180 if (fault & VM_FAULT_RETRY) { 45cac65b0fcd287 Shaohua Li 2012-10-08 181 flags |= FAULT_FLAG_TRIED; 43ca4957a15a120 Kautuk Consul 2011-12-23 182 43ca4957a15a120 Kautuk Consul 2011-12-23 183 /* 43ca4957a15a120 Kautuk Consul 2011-12-23 184 * No need to up_read(&mm->mmap_sem) as we would 43ca4957a15a120 Kautuk Consul 2011-12-23 185 * have already released it in __lock_page_or_retry 43ca4957a15a120 Kautuk Consul 2011-12-23 186 * in mm/filemap.c. 43ca4957a15a120 Kautuk Consul 2011-12-23 187 */ 43ca4957a15a120 Kautuk Consul 2011-12-23 188 43ca4957a15a120 Kautuk Consul 2011-12-23 189 goto retry; 43ca4957a15a120 Kautuk Consul 2011-12-23 190 } 43ca4957a15a120 Kautuk Consul 2011-12-23 191 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 192 89154dd5313f774 Michel Lespinasse 2020-06-08 193 mmap_read_unlock(mm); ^1da177e4c3f415 Linus Torvalds 2005-04-16 194 return; ^1da177e4c3f415 Linus Torvalds 2005-04-16 195 ^1da177e4c3f415 Linus Torvalds 2005-04-16 196 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 197 * Something tried to access memory that isn't in our memory map.. ^1da177e4c3f415 Linus Torvalds 2005-04-16 198 * Fix it, but check if it's kernel or user first.. ^1da177e4c3f415 Linus Torvalds 2005-04-16 199 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 200 bad_area: 89154dd5313f774 Michel Lespinasse 2020-06-08 201 mmap_read_unlock(mm); ^1da177e4c3f415 Linus Torvalds 2005-04-16 202 ^1da177e4c3f415 Linus Torvalds 2005-04-16 203 bad_area_nosemaphore: ^1da177e4c3f415 Linus Torvalds 2005-04-16 204 /* User mode accesses just cause a SIGSEGV */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 205 if (user_mode(regs)) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 206 tsk->thread.cp0_badvaddr = address; ^1da177e4c3f415 Linus Torvalds 2005-04-16 207 tsk->thread.error_code = write; d79d853df126553 Markos Chandras 2015-01-21 208 if (show_unhandled_signals && d79d853df126553 Markos Chandras 2015-01-21 209 unhandled_signal(tsk, SIGSEGV) && d79d853df126553 Markos Chandras 2015-01-21 210 __ratelimit(&ratelimit_state)) { 2a872a5dcec7052 Matt Redfearn 2016-11-09 211 pr_info("do_page_fault(): sending SIGSEGV to %s for invalid %s %0*lx\n", ^1da177e4c3f415 Linus Torvalds 2005-04-16 212 tsk->comm, ^1da177e4c3f415 Linus Torvalds 2005-04-16 213 write ? "write access to" : "read access from", d79d853df126553 Markos Chandras 2015-01-21 214 field, address); d79d853df126553 Markos Chandras 2015-01-21 215 pr_info("epc = %0*lx in", field, d79d853df126553 Markos Chandras 2015-01-21 216 (unsigned long) regs->cp0_epc); 2a872a5dcec7052 Matt Redfearn 2016-11-09 217 print_vma_addr(KERN_CONT " ", regs->cp0_epc); 2a872a5dcec7052 Matt Redfearn 2016-11-09 218 pr_cont("\n"); d79d853df126553 Markos Chandras 2015-01-21 219 pr_info("ra = %0*lx in", field, d79d853df126553 Markos Chandras 2015-01-21 220 (unsigned long) regs->regs[31]); 2a872a5dcec7052 Matt Redfearn 2016-11-09 221 print_vma_addr(KERN_CONT " ", regs->regs[31]); 2a872a5dcec7052 Matt Redfearn 2016-11-09 222 pr_cont("\n"); d79d853df126553 Markos Chandras 2015-01-21 223 } e3b28831c18c6c9 Ralf Baechle 2015-07-28 224 current->thread.trap_nr = (regs->cp0_cause >> 2) & 0x1f; 2e1661d2673667d Eric W. Biederman 2019-05-23 225 force_sig_fault(SIGSEGV, si_code, (void __user *)address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 226 return; ^1da177e4c3f415 Linus Torvalds 2005-04-16 227 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 228 ^1da177e4c3f415 Linus Torvalds 2005-04-16 229 no_context: ^1da177e4c3f415 Linus Torvalds 2005-04-16 230 /* Are we prepared to handle this kernel fault? */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 231 if (fixup_exception(regs)) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 232 current->thread.cp0_baduaddr = address; ^1da177e4c3f415 Linus Torvalds 2005-04-16 233 return; ^1da177e4c3f415 Linus Torvalds 2005-04-16 234 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 235 ^1da177e4c3f415 Linus Torvalds 2005-04-16 236 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 237 * Oops. The kernel tried to access some bad page. We'll have to ^1da177e4c3f415 Linus Torvalds 2005-04-16 238 * terminate things with extreme prejudice. ^1da177e4c3f415 Linus Torvalds 2005-04-16 239 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 240 bust_spinlocks(1); ^1da177e4c3f415 Linus Torvalds 2005-04-16 241 ^1da177e4c3f415 Linus Torvalds 2005-04-16 242 printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at " ^1da177e4c3f415 Linus Torvalds 2005-04-16 243 "virtual address %0*lx, epc == %0*lx, ra == %0*lx\n", d6f703602fee8f8 Ralf Baechle 2007-03-29 244 raw_smp_processor_id(), field, address, field, regs->cp0_epc, ^1da177e4c3f415 Linus Torvalds 2005-04-16 245 field, regs->regs[31]); ^1da177e4c3f415 Linus Torvalds 2005-04-16 246 die("Oops", regs); ^1da177e4c3f415 Linus Torvalds 2005-04-16 247 c7c1e3846bac1e4 Ralf Baechle 2009-01-12 248 out_of_memory: ^1da177e4c3f415 Linus Torvalds 2005-04-16 249 /* c7c1e3846bac1e4 Ralf Baechle 2009-01-12 250 * We ran out of memory, call the OOM killer, and return the userspace c7c1e3846bac1e4 Ralf Baechle 2009-01-12 251 * (which will retry the fault, or kill us if we got oom-killed). ^1da177e4c3f415 Linus Torvalds 2005-04-16 252 */ 89154dd5313f774 Michel Lespinasse 2020-06-08 253 mmap_read_unlock(mm); 871341023c771ad Johannes Weiner 2013-09-12 254 if (!user_mode(regs)) 871341023c771ad Johannes Weiner 2013-09-12 255 goto no_context; c7c1e3846bac1e4 Ralf Baechle 2009-01-12 256 pagefault_out_of_memory(); c7c1e3846bac1e4 Ralf Baechle 2009-01-12 257 return; ^1da177e4c3f415 Linus Torvalds 2005-04-16 258 ^1da177e4c3f415 Linus Torvalds 2005-04-16 259 do_sigbus: 89154dd5313f774 Michel Lespinasse 2020-06-08 260 mmap_read_unlock(mm); ^1da177e4c3f415 Linus Torvalds 2005-04-16 261 ^1da177e4c3f415 Linus Torvalds 2005-04-16 262 /* Kernel mode? Handle exceptions or die */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 263 if (!user_mode(regs)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 264 goto no_context; 72f941af88a543e Paul Burton 2017-03-30 265 ^1da177e4c3f415 Linus Torvalds 2005-04-16 266 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 267 * Send a sigbus, regardless of whether we were in kernel ^1da177e4c3f415 Linus Torvalds 2005-04-16 268 * or user mode. ^1da177e4c3f415 Linus Torvalds 2005-04-16 269 */ 41c594ab65fc895 Ralf Baechle 2006-04-05 270 #if 0 41c594ab65fc895 Ralf Baechle 2006-04-05 271 printk("do_page_fault() #3: sending SIGBUS to %s for " 41c594ab65fc895 Ralf Baechle 2006-04-05 272 "invalid %s\n%0*lx (epc == %0*lx, ra == %0*lx)\n", 41c594ab65fc895 Ralf Baechle 2006-04-05 273 tsk->comm, 41c594ab65fc895 Ralf Baechle 2006-04-05 274 write ? "write access to" : "read access from", 41c594ab65fc895 Ralf Baechle 2006-04-05 275 field, address, 41c594ab65fc895 Ralf Baechle 2006-04-05 276 field, (unsigned long) regs->cp0_epc, 41c594ab65fc895 Ralf Baechle 2006-04-05 277 field, (unsigned long) regs->regs[31]); 41c594ab65fc895 Ralf Baechle 2006-04-05 278 #endif e3b28831c18c6c9 Ralf Baechle 2015-07-28 279 current->thread.trap_nr = (regs->cp0_cause >> 2) & 0x1f; ^1da177e4c3f415 Linus Torvalds 2005-04-16 280 tsk->thread.cp0_badvaddr = address; 2e1661d2673667d Eric W. Biederman 2019-05-23 281 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 282 ^1da177e4c3f415 Linus Torvalds 2005-04-16 283 return; 2ca2ebfd952d033 David Daney 2009-09-02 284 #ifndef CONFIG_64BIT ^1da177e4c3f415 Linus Torvalds 2005-04-16 285 vmalloc_fault: ^1da177e4c3f415 Linus Torvalds 2005-04-16 286 { ^1da177e4c3f415 Linus Torvalds 2005-04-16 287 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 288 * Synchronize this task's top level page-table ^1da177e4c3f415 Linus Torvalds 2005-04-16 289 * with the 'reference' page table. ^1da177e4c3f415 Linus Torvalds 2005-04-16 290 * ^1da177e4c3f415 Linus Torvalds 2005-04-16 291 * Do _not_ use "tsk" here. We might be inside ^1da177e4c3f415 Linus Torvalds 2005-04-16 292 * an interrupt in the middle of a task switch.. ^1da177e4c3f415 Linus Torvalds 2005-04-16 293 */ 31168f033e3751d Mike Rapoport 2019-11-21 294 int offset = pgd_index(address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 295 pgd_t *pgd, *pgd_k; 2bee1b58484f036 Mike Rapoport 2019-11-21 296 p4d_t *p4d, *p4d_k; c6e8b587718c486 Ralf Baechle 2005-02-10 297 pud_t *pud, *pud_k; ^1da177e4c3f415 Linus Torvalds 2005-04-16 298 pmd_t *pmd, *pmd_k; ^1da177e4c3f415 Linus Torvalds 2005-04-16 299 pte_t *pte_k; ^1da177e4c3f415 Linus Torvalds 2005-04-16 300 d6f703602fee8f8 Ralf Baechle 2007-03-29 301 pgd = (pgd_t *) pgd_current[raw_smp_processor_id()] + offset; ^1da177e4c3f415 Linus Torvalds 2005-04-16 302 pgd_k = init_mm.pgd + offset; ^1da177e4c3f415 Linus Torvalds 2005-04-16 303 ^1da177e4c3f415 Linus Torvalds 2005-04-16 304 if (!pgd_present(*pgd_k)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 305 goto no_context; ^1da177e4c3f415 Linus Torvalds 2005-04-16 306 set_pgd(pgd, *pgd_k); ^1da177e4c3f415 Linus Torvalds 2005-04-16 307 2bee1b58484f036 Mike Rapoport 2019-11-21 308 p4d = p4d_offset(pgd, address); 2bee1b58484f036 Mike Rapoport 2019-11-21 309 p4d_k = p4d_offset(pgd_k, address); 2bee1b58484f036 Mike Rapoport 2019-11-21 310 if (!p4d_present(*p4d_k)) 2bee1b58484f036 Mike Rapoport 2019-11-21 311 goto no_context; 2bee1b58484f036 Mike Rapoport 2019-11-21 312 2bee1b58484f036 Mike Rapoport 2019-11-21 313 pud = pud_offset(p4d, address); 2bee1b58484f036 Mike Rapoport 2019-11-21 314 pud_k = pud_offset(p4d_k, address); c6e8b587718c486 Ralf Baechle 2005-02-10 315 if (!pud_present(*pud_k)) c6e8b587718c486 Ralf Baechle 2005-02-10 316 goto no_context; c6e8b587718c486 Ralf Baechle 2005-02-10 317 c6e8b587718c486 Ralf Baechle 2005-02-10 318 pmd = pmd_offset(pud, address); c6e8b587718c486 Ralf Baechle 2005-02-10 319 pmd_k = pmd_offset(pud_k, address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 320 if (!pmd_present(*pmd_k)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 321 goto no_context; ^1da177e4c3f415 Linus Torvalds 2005-04-16 322 set_pmd(pmd, *pmd_k); ^1da177e4c3f415 Linus Torvalds 2005-04-16 323 ^1da177e4c3f415 Linus Torvalds 2005-04-16 324 pte_k = pte_offset_kernel(pmd_k, address); ^1da177e4c3f415 Linus Torvalds 2005-04-16 325 if (!pte_present(*pte_k)) ^1da177e4c3f415 Linus Torvalds 2005-04-16 326 goto no_context; ^1da177e4c3f415 Linus Torvalds 2005-04-16 @327 return; ^1da177e4c3f415 Linus Torvalds 2005-04-16 328 } 2ca2ebfd952d033 David Daney 2009-09-02 329 #endif ^1da177e4c3f415 Linus Torvalds 2005-04-16 330 } c3fc5cd5c5a5f47 Ralf Baechle 2013-05-29 331 :::::: The code at line 327 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <[email protected]> :::::: CC: Linus Torvalds <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
