Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'docs-5.12' of git://git.lwn.net/linux

Pull documentation updates from Jonathan Corbet:
"It has been a relatively quiet cycle in docsland.

- As promised, the minimum Sphinx version to build the docs is now
1.7, and we have dropped support for Python 2 entirely. That
allowed the removal of a bunch of compatibility code.

- A set of treewide warning fixups from Mauro that I applied after it
became clear nobody else was going to deal with them.

- The automarkup mechanism can now create cross-references from
relative paths to RST files.

- More translations, typo fixes, and warning fixes"

* tag 'docs-5.12' of git://git.lwn.net/linux: (75 commits)
docs: kernel-hacking: be more civil
docs: Remove the Microsoft rhetoric
Documentation/admin-guide: kernel-parameters: Update nohlt section
doc/admin-guide: fix spelling mistake: "perfomance" -> "performance"
docs: Document cross-referencing using relative path
docs: Enable usage of relative paths to docs on automarkup
docs: thermal: fix spelling mistakes
Documentation: admin-guide: Update kvm/xen config option
docs: Make syscalls' helpers naming consistent
coding-style.rst: Avoid comma statements
Documentation: /proc/loadavg: add 3 more field descriptions
Documentation/submitting-patches: Add blurb about backtraces in commit messages
Docs: drop Python 2 support
Move our minimum Sphinx version to 1.7
Documentation: input: define ABS_PRESSURE/ABS_MT_PRESSURE resolution as grams
scripts/kernel-doc: add internal hyperlink to DOC: sections
Update Documentation/admin-guide/sysctl/fs.rst
docs: Update DTB format references
docs: zh_CN: add iio index.rst translation
docs/zh_CN: add iio ep93xx_adc.rst translation
...

+809 -500
+47 -47
Documentation/RCU/RTFP.txt
··· 683 683 ,month="October" 684 684 ,year="2001" 685 685 ,note="Available: 686 - \url{http://lkml.org/lkml/2001/10/13/105} 686 + \url{https://lore.kernel.org/r/Pine.LNX.4.33.0110131015410.8707-100000@penguin.transmeta.com} 687 687 [Viewed August 21, 2004]" 688 688 ,annotation={ 689 689 } ··· 826 826 ,month="October" 827 827 ,year="2002" 828 828 ,note="Available: 829 - \url{https://lkml.org/lkml/2002/10/24/262} 829 + \url{https://lore.kernel.org/r/3DB86B05.447E7410@us.ibm.com} 830 830 [Viewed February 15, 2014]" 831 831 ,annotation={ 832 832 Mingming Cao's patch to introduce RCU to SysV IPC. ··· 839 839 ,month="March" 840 840 ,year="2003" 841 841 ,note="Available: 842 - \url{http://lkml.org/lkml/2003/3/9/205} 842 + \url{https://lore.kernel.org/r/Pine.LNX.4.44.0303091831560.2129-100000@home.transmeta.com} 843 843 [Viewed March 13, 2006]" 844 844 ,annotation={ 845 845 Linus suggests replacing brlock with RCU and/or seqlocks: ··· 1036 1036 ,annotation={ 1037 1037 RCU runs reasonably on a 512-CPU SGI using Manfred Spraul's patches, 1038 1038 which may be found at: 1039 - https://lkml.org/lkml/2004/5/20/49 (split vars into cachelines) 1040 - https://lkml.org/lkml/2004/5/22/114 (cpu_quiet() patch) 1041 - https://lkml.org/lkml/2004/5/25/24 (0/5) 1042 - https://lkml.org/lkml/2004/5/25/23 (1/5) 1043 - https://lkml.org/lkml/2004/5/25/265 (works for Jack) 1044 - https://lkml.org/lkml/2004/5/25/20 (2/5) 1045 - https://lkml.org/lkml/2004/5/25/22 (3/5) 1046 - https://lkml.org/lkml/2004/5/25/19 (4/5) 1047 - https://lkml.org/lkml/2004/5/25/21 (5/5) 1039 + https://lore.kernel.org/r/40AC9823.6020709@colorfullife.com (split vars into cachelines) 1040 + https://lore.kernel.org/r/Pine.LNX.4.44.0405222141260.11106-100000@dbl.q-ag.de (cpu_quiet() patch) 1041 + https://lore.kernel.org/r/200405250535.i4P5ZJo8017583@dbl.q-ag.de (0/5) 1042 + https://lore.kernel.org/r/200405250535.i4P5ZKAQ017591@dbl.q-ag.de (1/5) 1043 + https://lore.kernel.org/r/20040525203215.GB5127@sgi.com (works for Jack) 1044 + https://lore.kernel.org/r/200405250535.i4P5ZLiR017599@dbl.q-ag.de (2/5) 1045 + https://lore.kernel.org/r/200405250535.i4P5ZMFt017607@dbl.q-ag.de (3/5) 1046 + https://lore.kernel.org/r/200405250535.i4P5ZN6g017615@dbl.q-ag.de (4/5) 1047 + https://lore.kernel.org/r/200405250535.i4P5ZO7I017623@dbl.q-ag.de (5/5) 1048 1048 } 1049 1049 } 1050 1050 ··· 1106 1106 ,month="August" 1107 1107 ,year="2004" 1108 1108 ,note="Available: 1109 - \url{http://lkml.org/lkml/2004/8/6/237} 1109 + \url{https://lore.kernel.org/r/20040807192424.GF3936@in.ibm.com} 1110 1110 [Viewed June 8, 2010]" 1111 1111 ,annotation={ 1112 1112 Introduce rcu_dereference(). ··· 1119 1119 ,month="August" 1120 1120 ,year="2004" 1121 1121 ,note="Available: 1122 - \url{http://lkml.org/lkml/2004/8/30/87} 1122 + \url{https://lore.kernel.org/r/1093873222.984.12.camel@new.localdomain} 1123 1123 [Viewed February 17, 2005]" 1124 1124 ,annotation={ 1125 1125 Uses active code in rcu_read_lock() and rcu_read_unlock() to ··· 1186 1186 ,month="October" 1187 1187 ,year="2004" 1188 1188 ,note="Available: 1189 - \url{http://lkml.org/lkml/2004/10/23/241} 1189 + \url{https://lore.kernel.org/r/20041023202723.GA1930@us.ibm.com} 1190 1190 [Viewed June 8, 2010]" 1191 1191 ,annotation={ 1192 1192 Introduce rcu_assign_pointer(). ··· 1203 1203 ,annotation={ 1204 1204 James Morris posts Kaigai Kohei's patch to LKML. 1205 1205 [Viewed December 10, 2004] 1206 - Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52 1206 + Kaigai's patch is at https://lore.kernel.org/r/200409271057.i8RAvcA1007873@mailsv.bs1.fc.nec.co.jp 1207 1207 } 1208 1208 } 1209 1209 ··· 1241 1241 ,year="2005" 1242 1242 ,day="17" 1243 1243 ,note="Available: 1244 - \url{http://lkml.org/lkml/2005/3/17/199} 1244 + \url{https://lore.kernel.org/r/20050318002026.GA2693@us.ibm.com} 1245 1245 [Viewed September 5, 2005]" 1246 1246 ,annotation={ 1247 1247 First posting showing how RCU can be safely adapted for ··· 1256 1256 ,year="2005" 1257 1257 ,day="18" 1258 1258 ,note="Available: 1259 - \url{http://lkml.org/lkml/2005/3/18/122} 1259 + \url{https://lore.kernel.org/r/Pine.OSF.4.05.10503181336310.2466-100000@da410.phys.au.dk} 1260 1260 [Viewed March 30, 2006]" 1261 1261 ,annotation={ 1262 1262 Esben Neilsen suggests read-side suppression of grace-period ··· 1302 1302 ,month="May" 1303 1303 ,year="2005" 1304 1304 ,note="Available: 1305 - \url{http://lkml.org/lkml/2005/5/9/185} 1305 + \url{https://lore.kernel.org/r/20050510012444.GA3011@us.ibm.com} 1306 1306 [Viewed May 13, 2005]" 1307 1307 ,annotation={ 1308 1308 First publication of working lock-based deferred free patches ··· 1385 1385 ,day="1" 1386 1386 ,year="2005" 1387 1387 ,note="Available: 1388 - \url{http://lkml.org/lkml/2005/8/1/155} 1388 + \url{https://lore.kernel.org/r/20050801171137.GA1754@us.ibm.com} 1389 1389 [Viewed March 14, 2006]" 1390 1390 ,annotation={ 1391 1391 First operating counter-based realtime RCU patch posted to LKML. ··· 1399 1399 ,day="8" 1400 1400 ,year="2005" 1401 1401 ,note="Available: 1402 - \url{http://lkml.org/lkml/2005/8/8/108} 1402 + \url{https://lore.kernel.org/r/20050808144216.GA1307@us.ibm.com} 1403 1403 [Viewed March 14, 2006]" 1404 1404 ,annotation={ 1405 1405 First operating counter-based realtime RCU patch posted to LKML, ··· 1415 1415 ,day="1" 1416 1416 ,year="2005" 1417 1417 ,note="Available: 1418 - \url{http://lkml.org/lkml/2005/10/1/70} 1418 + \url{https://lore.kernel.org/r/20051001182056.GA1613@us.ibm.com} 1419 1419 [Viewed March 14, 2006]" 1420 1420 ,annotation={ 1421 1421 First rcutorture patch. ··· 1429 1429 ,day="6" 1430 1430 ,year="2006" 1431 1431 ,note="Available: 1432 - \url{https://lkml.org/lkml/2006/1/7/22} 1432 + \url{https://lore.kernel.org/r/20060106.231054.43576567.davem@davemloft.net} 1433 1433 [Viewed February 29, 2012]" 1434 1434 ,annotation={ 1435 1435 David Miller's view on hashed arrays of locks: used to really ··· 1464 1464 ,day="20" 1465 1465 ,year="2006" 1466 1466 ,note="Available: 1467 - \url{http://lkml.org/lkml/2006/6/20/238} 1467 + \url{https://lore.kernel.org/r/20060408134707.22479.33814.sendpatchset@linux.site} 1468 1468 [Viewed March 25, 2008]" 1469 1469 ,annotation={ 1470 1470 RCU-protected radix tree. ··· 1554 1554 ,day="28" 1555 1555 ,year="2006" 1556 1556 ,note="Available: 1557 - \url{http://lkml.org/lkml/2006/9/28/160} 1557 + \url{https://lore.kernel.org/r/20060928142616.GA20185@infradead.org} 1558 1558 [Viewed March 27, 2008]" 1559 1559 } 1560 1560 ··· 1593 1593 ,year="2006" 1594 1594 ,day=26 1595 1595 ,note="Available: 1596 - \url{http://lkml.org/lkml/2006/10/26/73} 1596 + \url{https://lore.kernel.org/r/20061026105731.GE11803@in.ibm.com} 1597 1597 [Viewed January 26, 2009]" 1598 1598 ,annotation={ 1599 1599 RCU-based reader-writer lock that allows readers to proceed with ··· 1612 1612 ,year="2006" 1613 1613 ,day=17 1614 1614 ,note="Available: 1615 - \url{http://lkml.org/lkml/2006/11/17/56} 1615 + \url{https://lore.kernel.org/r/20061117092925.GT7164@kernel.dk} 1616 1616 [Viewed May 28, 2007]" 1617 1617 ,annotation={ 1618 1618 SRCU's grace periods are too slow for Jens, even after a 1619 1619 factor-of-three speedup. 1620 - Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359. 1620 + Sped-up version of SRCU at https://lore.kernel.org/r/20061118002845.GF2632@us.ibm.com. 1621 1621 } 1622 1622 } 1623 1623 ··· 1629 1629 ,year="2006" 1630 1630 ,day=19 1631 1631 ,note="Available: 1632 - \url{http://lkml.org/lkml/2006/11/19/69} 1632 + \url{https://lore.kernel.org/r/20061119190027.GA3676@oleg} 1633 1633 [Viewed May 28, 2007]" 1634 1634 ,annotation={ 1635 1635 First cut of QRCU. Expanded/corrected versions followed. ··· 1644 1644 ,year="2006" 1645 1645 ,day=30 1646 1646 ,note="Available: 1647 - \url{http://lkml.org/lkml/2006/11/29/330} 1647 + \url{https://lore.kernel.org/r/20061130015714.GC1350@oleg} 1648 1648 [Viewed November 26, 2008]" 1649 1649 ,annotation={ 1650 1650 Expanded/corrected version of QRCU. ··· 1709 1709 ,year="2007" 1710 1710 ,day=3 1711 1711 ,note="Available: 1712 - \url{http://lkml.org/lkml/2007/1/3/112} 1712 + \url{https://lore.kernel.org/r/20070103152738.GA16063@localdomain} 1713 1713 [Viewed May 28, 2007]" 1714 1714 ,annotation={ 1715 1715 Patch for list_splice_rcu(). ··· 1737 1737 ,year="2007" 1738 1738 ,day=28 1739 1739 ,note="Available: 1740 - \url{http://lkml.org/lkml/2007/1/28/34} 1740 + \url{https://lore.kernel.org/r/20070128120509.719287000@programming.kicks-ass.net} 1741 1741 [Viewed March 27, 2008]" 1742 1742 ,annotation={ 1743 1743 RCU-like implementation for frequent updaters and rare readers(!). ··· 1767 1767 ,year="2007" 1768 1768 ,day=24 1769 1769 ,note="Available: 1770 - \url{http://lkml.org/lkml/2007/2/25/18} 1770 + \url{https://lore.kernel.org/r/20070225062349.GA17468@linux.vnet.ibm.com} 1771 1771 [Viewed March 27, 2008]" 1772 1772 ,annotation={ 1773 1773 Patch for QRCU supplying lock-free fast path. ··· 1846 1846 ,annotation={ 1847 1847 LWN article describing Promela and spin, and also using Oleg 1848 1848 Nesterov's QRCU as an example (with Paul McKenney's fastpath). 1849 - Merged patch at: http://lkml.org/lkml/2007/2/25/18 1849 + Merged patch at: https://lore.kernel.org/r/20070225062349.GA17468@linux.vnet.ibm.com 1850 1850 } 1851 1851 } 1852 1852 ··· 1885 1885 ,day="10" 1886 1886 ,year="2007" 1887 1887 ,note="Available: 1888 - \url{http://lkml.org/lkml/2007/9/10/213} 1888 + \url{https://lore.kernel.org/r/20070910183004.GA3299@linux.vnet.ibm.com} 1889 1889 [Viewed October 25, 2007]" 1890 1890 ,annotation={ 1891 1891 Final patch for preemptable RCU to -rt. (Later patches were ··· 1933 1933 ,day="20" 1934 1934 ,year="2007" 1935 1935 ,note="Available: 1936 - \url{http://lkml.org/lkml/2007/12/20/244} 1936 + \url{https://lore.kernel.org/r/20071220142540.GB22523@Krystal} 1937 1937 [Viewed March 27, 2008]" 1938 1938 ,annotation={ 1939 1939 Request for call_rcu_sched() and rcu_barrier_sched(). ··· 2013 2013 ,day="29" 2014 2014 ,year="2008" 2015 2015 ,note="Available: 2016 - \url{http://lkml.org/lkml/2008/1/29/208} 2016 + \url{https://lore.kernel.org/r/Pine.LNX.4.58.0801291113350.20371@gandalf.stny.rr.com} 2017 2017 [Viewed March 27, 2008]" 2018 2018 ,annotation={ 2019 2019 Patch that prevents preemptible RCU from unnecessarily waking ··· 2028 2028 ,day="1" 2029 2029 ,year="2008" 2030 2030 ,note="Available: 2031 - \url{http://lkml.org/lkml/2008/2/2/255} 2031 + \url{https://lore.kernel.org/r/20080202214124.GA28612@linux.vnet.ibm.com} 2032 2032 [Viewed October 18, 2008]" 2033 2033 ,annotation={ 2034 2034 Explanation of compilers violating dependency ordering. ··· 2088 2088 ,day="3" 2089 2089 ,year="2008" 2090 2090 ,note="Available: 2091 - \url{http://lkml.org/lkml/2008/6/2/539} 2091 + \url{https://lore.kernel.org/r/4844BE83.5010401@cn.fujitsu.com} 2092 2092 [Viewed December 10, 2008]" 2093 2093 ,annotation={ 2094 2094 Updated RCU classic algorithm. Introduced multi-tailed list ··· 2122 2122 ,day="21" 2123 2123 ,year="2008" 2124 2124 ,note="Available: 2125 - \url{http://lkml.org/lkml/2008/8/21/336} 2125 + \url{https://lore.kernel.org/r/48AD8969.7060900@colorfullife.com} 2126 2126 [Viewed December 8, 2008]" 2127 2127 ,annotation={ 2128 2128 State-based RCU. One key thing that this patch does is to ··· 2137 2137 ,day="6" 2138 2138 ,year="2008" 2139 2139 ,note="Available: 2140 - \url{http://lkml.org/lkml/2008/9/6/86} 2140 + \url{https://lore.kernel.org/r/48C2B1D2.5070801@colorfullife.com} 2141 2141 [Viewed December 8, 2008]" 2142 2142 ,annotation={ 2143 2143 Manfred notes a fix required to my attempt to separate irq ··· 2183 2183 ,day="14" 2184 2184 ,year="2009" 2185 2185 ,note="Available: 2186 - \url{http://lkml.org/lkml/2009/1/14/449} 2186 + \url{https://lore.kernel.org/r/20090114202044.GJ6734@linux.vnet.ibm.com} 2187 2187 [Viewed January 15, 2009]" 2188 2188 ,annotation={ 2189 2189 Small-footprint implementation of RCU for uniprocessor ··· 2218 2218 git://lttng.org/userspace-rcu.git 2219 2219 http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git 2220 2220 http://lttng.org/urcu 2221 - http://lkml.org/lkml/2009/2/5/572 2221 + https://lore.kernel.org/r/20090206030543.GB8560@Krystal 2222 2222 } 2223 2223 } 2224 2224 ··· 2258 2258 ,day="25" 2259 2259 ,year="2009" 2260 2260 ,note="Available: 2261 - \url{http://lkml.org/lkml/2009/6/25/306} 2261 + \url{https://lore.kernel.org/r/20090625160706.GA9467@linux.vnet.ibm.com} 2262 2262 [Viewed August 16, 2009]" 2263 2263 ,annotation={ 2264 2264 First posting of expedited RCU to be accepted into -tip. ··· 2272 2272 ,day="23" 2273 2273 ,year="2009" 2274 2274 ,note="Available: 2275 - \url{http://lkml.org/lkml/2009/7/23/294} 2275 + \url{https://lore.kernel.org/r/20090724001429.GA17374@linux.vnet.ibm.com} 2276 2276 [Viewed August 15, 2009]" 2277 2277 ,annotation={ 2278 2278 First posting of simple and fast preemptable RCU. ··· 2350 2350 ,month="December" 2351 2351 ,year="2009" 2352 2352 ,note="Available: 2353 - \url{http://lkml.org/lkml/2009/10/18/129} 2353 + \url{https://lore.kernel.org/r/20091018232918.GA7385@Krystal} 2354 2354 [Viewed December 29, 2009]" 2355 2355 ,annotation={ 2356 2356 Mathieu proposed defer_rcu() with fixed-size per-thread pool ··· 2518 2518 ,month="January" 2519 2519 ,year="2011" 2520 2520 ,note="Available: 2521 - \url{https://lkml.org/lkml/2011/1/18/322} 2521 + \url{https://lore.kernel.org/r/AANLkTimajU0x1v6y3rH2+jr-bZ=tNLs1S_agXdGGAa3S@mail.gmail.com} 2522 2522 [Viewed March 4, 2011]" 2523 2523 ,annotation={ 2524 2524 "The RCU-based name lookup is at the other end of the spectrum - the
+2 -2
Documentation/accounting/cgroupstats.rst
··· 3 3 ================== 4 4 5 5 Control Groupstats is inspired by the discussion at 6 - http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as 7 - suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263. 6 + https://lore.kernel.org/r/461CF883.2030308@sw.ru and implements per cgroup statistics as 7 + suggested by Andrew Morton in https://lore.kernel.org/r/20070411114927.1277d7c9.akpm@linux-foundation.org. 8 8 9 9 Per cgroup statistics infrastructure re-uses code from the taskstats 10 10 interface. A new set of cgroup operations are registered with commands
+4 -3
Documentation/admin-guide/README.rst
··· 226 226 all module options to built in (=y) options. You can 227 227 also preserve modules by LMC_KEEP. 228 228 229 - "make kvmconfig" Enable additional options for kvm guest kernel support. 229 + "make kvm_guest.config" Enable additional options for kvm guest kernel 230 + support. 230 231 231 - "make xenconfig" Enable additional options for xen dom0 guest kernel 232 - support. 232 + "make xen.config" Enable additional options for xen dom0 guest kernel 233 + support. 233 234 234 235 "make tinyconfig" Configure the tiniest possible kernel. 235 236
+7 -7
Documentation/admin-guide/cgroup-v1/memory.rst
··· 963 963 2. Singh, Balbir. Memory Controller (RSS Control), 964 964 http://lwn.net/Articles/222762/ 965 965 3. Emelianov, Pavel. Resource controllers based on process cgroups 966 - http://lkml.org/lkml/2007/3/6/198 966 + https://lore.kernel.org/r/45ED7DEC.7010403@sw.ru 967 967 4. Emelianov, Pavel. RSS controller based on process cgroups (v2) 968 - http://lkml.org/lkml/2007/4/9/78 968 + https://lore.kernel.org/r/461A3010.90403@sw.ru 969 969 5. Emelianov, Pavel. RSS controller based on process cgroups (v3) 970 - http://lkml.org/lkml/2007/5/30/244 970 + https://lore.kernel.org/r/465D9739.8070209@openvz.org 971 971 6. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/ 972 972 7. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control 973 973 subsystem (v3), http://lwn.net/Articles/235534/ 974 974 8. Singh, Balbir. RSS controller v2 test results (lmbench), 975 - http://lkml.org/lkml/2007/5/17/232 975 + https://lore.kernel.org/r/464C95D4.7070806@linux.vnet.ibm.com 976 976 9. Singh, Balbir. RSS controller v2 AIM9 results 977 - http://lkml.org/lkml/2007/5/18/1 977 + https://lore.kernel.org/r/464D267A.50107@linux.vnet.ibm.com 978 978 10. Singh, Balbir. Memory controller v6 test results, 979 - http://lkml.org/lkml/2007/8/19/36 979 + https://lore.kernel.org/r/20070819094658.654.84837.sendpatchset@balbir-laptop 980 980 11. Singh, Balbir. Memory controller introduction (v6), 981 - http://lkml.org/lkml/2007/8/17/69 981 + https://lore.kernel.org/r/20070817084228.26003.12568.sendpatchset@balbir-laptop 982 982 12. Corbet, Jonathan, Controlling memory use in cgroups, 983 983 http://lwn.net/Articles/243795/
+34 -30
Documentation/admin-guide/cgroup-v2.rst
··· 1 + .. _cgroup-v2: 2 + 1 3 ================ 2 4 Control Group v2 3 5 ================ ··· 174 172 cgroup v2 currently supports the following mount options. 175 173 176 174 nsdelegate 177 - 178 175 Consider cgroup namespaces as delegation boundaries. This 179 176 option is system wide and can only be set on mount or modified 180 177 through remount from the init namespace. The mount option is ··· 181 180 Delegation section for details. 182 181 183 182 memory_localevents 184 - 185 183 Only populate memory.events with data for the current cgroup, 186 184 and not any subtrees. This is legacy behaviour, the default 187 185 behaviour without this option is to include subtree counts. ··· 189 189 option is ignored on non-init namespace mounts. 190 190 191 191 memory_recursiveprot 192 - 193 192 Recursively apply memory.min and memory.low protection to 194 193 entire subtrees, without requiring explicit downward 195 194 propagation into leaf cgroups. This allows protecting entire ··· 785 786 All cgroup core files are prefixed with "cgroup." 786 787 787 788 cgroup.type 788 - 789 789 A read-write single value file which exists on non-root 790 790 cgroups. 791 791 ··· 951 953 952 954 Controllers 953 955 =========== 956 + 957 + .. _cgroup-v2-cpu: 954 958 955 959 CPU 956 960 --- ··· 1259 1259 can show up in the middle. Don't rely on items remaining in a 1260 1260 fixed position; use the keys to look up specific values! 1261 1261 1262 - If the entry has no per-node counter(or not show in the 1263 - mempry.numa_stat). We use 'npn'(non-per-node) as the tag 1264 - to indicate that it will not show in the mempry.numa_stat. 1262 + If the entry has no per-node counter (or not show in the 1263 + memory.numa_stat). We use 'npn' (non-per-node) as the tag 1264 + to indicate that it will not show in the memory.numa_stat. 1265 1265 1266 1266 anon 1267 1267 Amount of memory used in anonymous mappings such as ··· 1277 1277 pagetables 1278 1278 Amount of memory allocated for page tables. 1279 1279 1280 - percpu(npn) 1280 + percpu (npn) 1281 1281 Amount of memory used for storing per-cpu kernel 1282 1282 data structures. 1283 1283 1284 - sock(npn) 1284 + sock (npn) 1285 1285 Amount of memory used in network transmission buffers 1286 1286 1287 1287 shmem ··· 1329 1329 Part of "slab" that cannot be reclaimed on memory 1330 1330 pressure. 1331 1331 1332 - slab(npn) 1332 + slab (npn) 1333 1333 Amount of memory used for storing in-kernel data 1334 1334 structures. 1335 1335 ··· 1357 1357 workingset_nodereclaim 1358 1358 Number of times a shadow node has been reclaimed 1359 1359 1360 - pgfault(npn) 1360 + pgfault (npn) 1361 1361 Total number of page faults incurred 1362 1362 1363 - pgmajfault(npn) 1363 + pgmajfault (npn) 1364 1364 Number of major page faults incurred 1365 1365 1366 - pgrefill(npn) 1366 + pgrefill (npn) 1367 1367 Amount of scanned pages (in an active LRU list) 1368 1368 1369 - pgscan(npn) 1369 + pgscan (npn) 1370 1370 Amount of scanned pages (in an inactive LRU list) 1371 1371 1372 - pgsteal(npn) 1372 + pgsteal (npn) 1373 1373 Amount of reclaimed pages 1374 1374 1375 - pgactivate(npn) 1375 + pgactivate (npn) 1376 1376 Amount of pages moved to the active LRU list 1377 1377 1378 - pgdeactivate(npn) 1378 + pgdeactivate (npn) 1379 1379 Amount of pages moved to the inactive LRU list 1380 1380 1381 - pglazyfree(npn) 1381 + pglazyfree (npn) 1382 1382 Amount of pages postponed to be freed under memory pressure 1383 1383 1384 - pglazyfreed(npn) 1384 + pglazyfreed (npn) 1385 1385 Amount of reclaimed lazyfree pages 1386 1386 1387 - thp_fault_alloc(npn) 1387 + thp_fault_alloc (npn) 1388 1388 Number of transparent hugepages which were allocated to satisfy 1389 1389 a page fault. This counter is not present when CONFIG_TRANSPARENT_HUGEPAGE 1390 1390 is not set. 1391 1391 1392 - thp_collapse_alloc(npn) 1392 + thp_collapse_alloc (npn) 1393 1393 Number of transparent hugepages which were allocated to allow 1394 1394 collapsing an existing range of pages. This counter is not 1395 1395 present when CONFIG_TRANSPARENT_HUGEPAGE is not set. ··· 1558 1558 8:0 rbytes=90430464 wbytes=299008000 rios=8950 wios=1252 dbytes=50331648 dios=3021 1559 1559 1560 1560 io.cost.qos 1561 - A read-write nested-keyed file with exists only on the root 1561 + A read-write nested-keyed file which exists only on the root 1562 1562 cgroup. 1563 1563 1564 1564 This file configures the Quality of Service of the IO cost ··· 1613 1613 automatic mode can be restored by setting "ctrl" to "auto". 1614 1614 1615 1615 io.cost.model 1616 - A read-write nested-keyed file with exists only on the root 1616 + A read-write nested-keyed file which exists only on the root 1617 1617 cgroup. 1618 1618 1619 1619 This file configures the cost model of the IO cost model based ··· 2000 2000 cpuset-enabled cgroups. This flag is owned by the parent cgroup 2001 2001 and is not delegatable. 2002 2002 2003 - It accepts only the following input values when written to. 2003 + It accepts only the following input values when written to. 2004 2004 2005 - "root" - a partition root 2006 - "member" - a non-root member of a partition 2005 + ======== ================================ 2006 + "root" a partition root 2007 + "member" a non-root member of a partition 2008 + ======== ================================ 2007 2009 2008 2010 When set to be a partition root, the current cgroup is the 2009 2011 root of a new partition or scheduling domain that comprises ··· 2046 2044 root to change. On read, the "cpuset.sched.partition" file 2047 2045 can show the following values. 2048 2046 2049 - "member" Non-root member of a partition 2050 - "root" Partition root 2051 - "root invalid" Invalid partition root 2047 + ============== ============================== 2048 + "member" Non-root member of a partition 2049 + "root" Partition root 2050 + "root invalid" Invalid partition root 2051 + ============== ============================== 2052 2052 2053 2053 It is a partition root if the first 2 partition root conditions 2054 2054 above are true and at least one CPU from "cpuset.cpus" is ··· 2223 2219 complete path of the cgroup of a process. In a container setup where 2224 2220 a set of cgroups and namespaces are intended to isolate processes the 2225 2221 "/proc/$PID/cgroup" file may leak potential system level information 2226 - to the isolated processes. For Example:: 2222 + to the isolated processes. For example:: 2227 2223 2228 2224 # cat /proc/self/cgroup 2229 2225 0::/batchjobs/container_id1
+1 -1
Documentation/admin-guide/cpu-load.rst
··· 107 107 References 108 108 ---------- 109 109 110 - - http://lkml.org/lkml/2007/2/12/6 110 + - https://lore.kernel.org/r/loom.20070212T063225-663@post.gmane.org 111 111 - Documentation/filesystems/proc.rst (1.8) 112 112 113 113
+1 -1
Documentation/admin-guide/kernel-parameters.rst
··· 60 60 sized groups and for each group use some amount from the beginning of that 61 61 group: 62 62 63 - <cpu number>-cpu number>:<used size>/<group size> 63 + <cpu number>-<cpu number>:<used size>/<group size> 64 64 65 65 For example one can add to the command line following parameter: 66 66
+12 -7
Documentation/admin-guide/kernel-parameters.txt
··· 606 606 kernel/dma/contiguous.c 607 607 608 608 cma_pernuma=nn[MG] 609 - [ARM64,KNL] 609 + [ARM64,KNL,CMA] 610 610 Sets the size of kernel per-numa memory area for 611 611 contiguous memory allocations. A value of 0 disables 612 612 per-numa CMA altogether. And If this option is not ··· 1525 1525 hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET 1526 1526 registers. Default set by CONFIG_HPET_MMAP_DEFAULT. 1527 1527 1528 - hugetlb_cma= [HW] The size of a cma area used for allocation 1528 + hugetlb_cma= [HW,CMA] The size of a CMA area used for allocation 1529 1529 of gigantic hugepages. 1530 1530 Format: nn[KMGTPE] 1531 1531 1532 - Reserve a cma area of given size and allocate gigantic 1533 - hugepages using the cma allocator. If enabled, the 1532 + Reserve a CMA area of given size and allocate gigantic 1533 + hugepages using the CMA allocator. If enabled, the 1534 1534 boot-time allocation of gigantic hugepages is skipped. 1535 1535 1536 1536 hugepages= [HW] Number of HugeTLB pages to allocate at boot. ··· 3273 3273 parameter, xsave area per process might occupy more 3274 3274 memory on xsaves enabled systems. 3275 3275 3276 - nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or 3277 - wfi(ARM) instruction doesn't work correctly and not to 3278 - use it. This is also useful when using JTAG debugger. 3276 + nohlt [ARM,ARM64,MICROBLAZE,SH] Forces the kernel to busy wait 3277 + in do_idle() and not use the arch_cpu_idle() 3278 + implementation; requires CONFIG_GENERIC_IDLE_POLL_SETUP 3279 + to be effective. This is useful on platforms where the 3280 + sleep(SH) or wfi(ARM,ARM64) instructions do not work 3281 + correctly or when doing power measurements to evalute 3282 + the impact of the sleep instructions. This is also 3283 + useful when using JTAG debugger. 3279 3284 3280 3285 no_file_caps Tells the kernel not to honor file capabilities. The 3281 3286 only way then for a file to be executed with privilege
+1 -1
Documentation/admin-guide/kernel-per-CPU-kthreads.rst
··· 273 273 However, there is an RFC patch from Christoph Lameter 274 274 (based on an earlier one from Gilad Ben-Yossef) that 275 275 reduces or even eliminates vmstat overhead for some 276 - workloads at https://lkml.org/lkml/2013/9/4/379. 276 + workloads at https://lore.kernel.org/r/00000140e9dfd6bd-40db3d4f-c1be-434f-8132-7820f81bb586-000000@email.amazonses.com. 277 277 e. If running on high-end powerpc servers, build with 278 278 CONFIG_PPC_RTAS_DAEMON=n. This prevents the RTAS 279 279 daemon from running on each CPU every second or so.
+1 -1
Documentation/admin-guide/perf-security.rst
··· 72 72 checks in the kernel. CAP_PERFMON implements the principle of least 73 73 privilege [13]_ (POSIX 1003.1e: 2.2.2.39) for performance monitoring and 74 74 observability operations in the kernel and provides a secure approach to 75 - perfomance monitoring and observability in the system. 75 + performance monitoring and observability in the system. 76 76 77 77 For backward compatibility reasons the access to perf_events monitoring and 78 78 observability operations is also open for CAP_SYS_ADMIN privileged
+2 -2
Documentation/admin-guide/sysctl/fs.rst
··· 380 380 allowed for each user. 381 381 Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes 382 382 on a 64bit one. 383 - The current default value for max_user_watches is the 1/32 of the available 384 - low memory, divided for the "watch" cost in bytes. 383 + The current default value for max_user_watches is the 1/25 (4%) of the 384 + available low memory, divided for the "watch" cost in bytes.
+1 -1
Documentation/arm/booting.rst
··· 128 128 129 129 The boot loader must load a device tree image (dtb) into system ram 130 130 at a 64bit aligned address and initialize it with the boot data. The 131 - dtb format is documented in Documentation/devicetree/booting-without-of.rst. 131 + dtb format is documented at https://www.devicetree.org/specifications/. 132 132 The kernel will look for the dtb magic value of 0xd00dfeed at the dtb 133 133 physical address to determine if a dtb has been passed instead of a 134 134 tagged list.
+1 -1
Documentation/arm/index.rst
··· 33 33 34 34 ixp4xx 35 35 36 - marvel 36 + marvell 37 37 microchip 38 38 39 39 netwinder
+5 -2
Documentation/arm/marvel.rst Documentation/arm/marvell.rst
··· 127 127 - 88F6828 Armada 388 128 128 129 129 - Product infos: http://www.marvell.com/embedded-processors/armada-38x/ 130 - - Functional Spec: https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/ 130 + - Functional Spec: http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-38x-functional-specifications-2015-11.pdf 131 131 132 132 Core: 133 133 ARM Cortex-A9 ··· 183 183 http://www.marvell.com/embedded-processors/armada-3700/ 184 184 185 185 Product Brief: 186 - http://www.marvell.com/embedded-processors/assets/PB-88F3700-FNL.pdf 186 + http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-37xx-product-brief-2016-01.pdf 187 + 188 + Hardware Spec: 189 + http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-37xx-hardware-specifications-2019-09.pdf 187 190 188 191 Device tree files: 189 192 arch/arm64/boot/dts/marvell/armada-37*
+3 -72
Documentation/conf.py
··· 31 31 # -- General configuration ------------------------------------------------ 32 32 33 33 # If your documentation needs a minimal Sphinx version, state it here. 34 - needs_sphinx = '1.3' 34 + needs_sphinx = '1.7' 35 35 36 36 # Add any Sphinx extension module names here, as strings. They can be 37 37 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ··· 112 112 113 113 else: 114 114 extensions.append('cdomain') 115 - if major == 1 and minor < 7: 116 - sys.stderr.write('WARNING: Sphinx 1.7 or greater will be required as of ' 117 - 'the 5.12 release\n') 118 115 119 116 # Ensure that autosectionlabel will produce unique names 120 117 autosectionlabel_prefix_document = True 121 118 autosectionlabel_maxdepth = 2 122 119 123 - # The name of the math extension changed on Sphinx 1.4 124 - if (major == 1 and minor > 3) or (major > 1): 125 - extensions.append("sphinx.ext.imgmath") 126 - else: 127 - extensions.append("sphinx.ext.pngmath") 120 + extensions.append("sphinx.ext.imgmath") 128 121 129 122 # Add any paths that contain templates here, relative to this directory. 130 123 templates_path = ['_templates'] ··· 368 375 ''' 369 376 370 377 # Fix reference escape troubles with Sphinx 1.4.x 371 - if major == 1 and minor > 3: 378 + if major == 1: 372 379 latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n' 373 - 374 - if major == 1 and minor <= 4: 375 - latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}' 376 - elif major == 1 and (minor > 5 or (minor == 5 and patch >= 3)): 377 - latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=1in' 378 - latex_elements['preamble'] += '\\fvset{fontsize=auto}\n' 379 - 380 - # Customize notice background colors on Sphinx < 1.6: 381 - if major == 1 and minor < 6: 382 - latex_elements['preamble'] += ''' 383 - \\usepackage{ifthen} 384 - 385 - % Put notes in color and let them be inside a table 386 - \\definecolor{NoteColor}{RGB}{204,255,255} 387 - \\definecolor{WarningColor}{RGB}{255,204,204} 388 - \\definecolor{AttentionColor}{RGB}{255,255,204} 389 - \\definecolor{ImportantColor}{RGB}{192,255,204} 390 - \\definecolor{OtherColor}{RGB}{204,204,204} 391 - \\newlength{\\mynoticelength} 392 - \\makeatletter\\newenvironment{coloredbox}[1]{% 393 - \\setlength{\\fboxrule}{1pt} 394 - \\setlength{\\fboxsep}{7pt} 395 - \\setlength{\\mynoticelength}{\\linewidth} 396 - \\addtolength{\\mynoticelength}{-2\\fboxsep} 397 - \\addtolength{\\mynoticelength}{-2\\fboxrule} 398 - \\begin{lrbox}{\\@tempboxa}\\begin{minipage}{\\mynoticelength}}{\\end{minipage}\\end{lrbox}% 399 - \\ifthenelse% 400 - {\\equal{\\py@noticetype}{note}}% 401 - {\\colorbox{NoteColor}{\\usebox{\\@tempboxa}}}% 402 - {% 403 - \\ifthenelse% 404 - {\\equal{\\py@noticetype}{warning}}% 405 - {\\colorbox{WarningColor}{\\usebox{\\@tempboxa}}}% 406 - {% 407 - \\ifthenelse% 408 - {\\equal{\\py@noticetype}{attention}}% 409 - {\\colorbox{AttentionColor}{\\usebox{\\@tempboxa}}}% 410 - {% 411 - \\ifthenelse% 412 - {\\equal{\\py@noticetype}{important}}% 413 - {\\colorbox{ImportantColor}{\\usebox{\\@tempboxa}}}% 414 - {\\colorbox{OtherColor}{\\usebox{\\@tempboxa}}}% 415 - }% 416 - }% 417 - }% 418 - }\\makeatother 419 - 420 - \\makeatletter 421 - \\renewenvironment{notice}[2]{% 422 - \\def\\py@noticetype{#1} 423 - \\begin{coloredbox}{#1} 424 - \\bf\\it 425 - \\par\\strong{#2} 426 - \\csname py@noticestart@#1\\endcsname 427 - } 428 - { 429 - \\csname py@noticeend@\\py@noticetype\\endcsname 430 - \\end{coloredbox} 431 - } 432 - \\makeatother 433 - 434 - ''' 435 380 436 381 # With Sphinx 1.6, it is possible to change the Bg color directly 437 382 # by using:
+1 -1
Documentation/devicetree/usage-model.rst
··· 12 12 the device tree data format can be found on the device tree usage page 13 13 at devicetree.org\ [1]_. 14 14 15 - .. [1] https://elinux.org/Device_Tree_Usage 15 + .. [1] https://www.devicetree.org/specifications/ 16 16 17 17 The "Open Firmware Device Tree", or simply Device Tree (DT), is a data 18 18 structure and language for describing hardware. More specifically, it
+17 -7
Documentation/doc-guide/sphinx.rst
··· 340 340 Cross-referencing 341 341 ----------------- 342 342 343 - Cross-referencing from one documentation page to another can be done by passing 344 - the path to the file starting from the Documentation folder. 345 - For example, to cross-reference to this page (the .rst extension is optional):: 343 + Cross-referencing from one documentation page to another can be done simply by 344 + writing the path to the document file, no special syntax required. The path can 345 + be either absolute or relative. For absolute paths, start it with 346 + "Documentation/". For example, to cross-reference to this page, all the 347 + following are valid options, depending on the current document's directory (note 348 + that the ``.rst`` extension is required):: 346 349 347 - See Documentation/doc-guide/sphinx.rst. 350 + See Documentation/doc-guide/sphinx.rst. This always works. 351 + Take a look at sphinx.rst, which is at this same directory. 352 + Read ../sphinx.rst, which is one directory above. 348 353 349 - If you want to use a relative path, you need to use Sphinx's ``doc`` directive. 350 - For example, referencing this page from the same directory would be done as:: 354 + If you want the link to have a different rendered text other than the document's 355 + title, you need to use Sphinx's ``doc`` role. For example:: 351 356 352 - See :doc:`sphinx`. 357 + See :doc:`my custom link text for document sphinx <sphinx>`. 358 + 359 + For most use cases, the former is preferred, as it is cleaner and more suited 360 + for people reading the source files. If you come across a ``:doc:`` usage that 361 + isn't adding any value, please feel free to convert it to just the document 362 + path. 353 363 354 364 For information on cross-referencing to kernel-doc functions or types, see 355 365 Documentation/doc-guide/kernel-doc.rst.
+2 -2
Documentation/driver-api/gpio/driver.rst
··· 640 640 level and edge IRQs 641 641 642 642 * [1] http://www.spinics.net/lists/linux-omap/msg120425.html 643 - * [2] https://lkml.org/lkml/2015/9/25/494 644 - * [3] https://lkml.org/lkml/2015/9/25/495 643 + * [2] https://lore.kernel.org/r/1443209283-20781-2-git-send-email-grygorii.strashko@ti.com 644 + * [3] https://lore.kernel.org/r/1443209283-20781-3-git-send-email-grygorii.strashko@ti.com 645 645 646 646 647 647 Requesting self-owned GPIO pins
+12
Documentation/driver-api/men-chameleon-bus.rst
··· 18 18 4.1 The driver structure 19 19 4.2 Probing and attaching 20 20 4.3 Initializing the driver 21 + 4.4 Using DMA 21 22 22 23 23 24 Introduction ··· 174 173 The module_mcb_driver() macro can be used to reduce the above code:: 175 174 176 175 module_mcb_driver(foo_driver); 176 + 177 + Using DMA 178 + --------- 179 + 180 + To make use of the kernel's DMA-API's function, you will need to use the 181 + carrier device's 'struct device'. Fortunately 'struct mcb_device' embeds a 182 + pointer (->dma_dev) to the carrier's device for DMA purposes:: 183 + 184 + ret = dma_set_mask_and_coherent(&mdev->dma_dev, DMA_BIT_MASK(dma_bits)); 185 + if (rc) 186 + /* Handle errors */
+3 -3
Documentation/driver-api/thermal/sysfs-api.rst
··· 54 54 trips: 55 55 the total number of trip points this thermal zone supports. 56 56 mask: 57 - Bit string: If 'n'th bit is set, then trip point 'n' is writeable. 57 + Bit string: If 'n'th bit is set, then trip point 'n' is writable. 58 58 devdata: 59 59 device private data 60 60 ops: ··· 406 406 |---stats/reset: Writing any value resets the statistics 407 407 |---stats/time_in_state_ms: Time (msec) spent in various cooling states 408 408 |---stats/total_trans: Total number of times cooling state is changed 409 - |---stats/trans_table: Cooing state transition table 409 + |---stats/trans_table: Cooling state transition table 410 410 411 411 412 412 Then next two dynamic attributes are created/removed in pairs. They represent ··· 766 766 the system. 767 767 768 768 If set to 0 emergency poweroff will not be supported. So a carefully 769 - profiled non-zero positive value is a must for emergerncy poweroff to be 769 + profiled non-zero positive value is a must for emergency poweroff to be 770 770 triggered.
+4 -4
Documentation/filesystems/afs.rst
··· 109 109 AFS has a concept of mountpoints. In AFS terms, these are specially formatted 110 110 symbolic links (of the same form as the "device name" passed to mount). kAFS 111 111 presents these to the user as directories that have a follow-link capability 112 - (ie: symbolic link semantics). If anyone attempts to access them, they will 112 + (i.e.: symbolic link semantics). If anyone attempts to access them, they will 113 113 automatically cause the target volume to be mounted (if possible) on that site. 114 114 115 115 Automatically mounted filesystems will be automatically unmounted approximately ··· 144 144 Proc Filesystem 145 145 =============== 146 146 147 - The AFS modules creates a "/proc/fs/afs/" directory and populates it: 147 + The AFS module creates a "/proc/fs/afs/" directory and populates it: 148 148 149 149 (*) A "cells" file that lists cells currently known to the afs module and 150 150 their usage counts:: ··· 201 201 ./klog 202 202 203 203 Assuming it's successful, this adds a key of type RxRPC, named for the service 204 - and cell, eg: "afs@<cellname>". This can be viewed with the keyctl program or 204 + and cell, e.g.: "afs@<cellname>". This can be viewed with the keyctl program or 205 205 by cat'ing /proc/keys:: 206 206 207 207 [root@andromeda ~]# keyctl show ··· 211 211 111416553 --als--v 0 0 \_ rxrpc: afs@CAMBRIDGE.REDHAT.COM 212 212 213 213 Currently the username, realm, password and proposed ticket lifetime are 214 - compiled in to the program. 214 + compiled into the program. 215 215 216 216 It is not required to acquire a key before using AFS facilities, but if one is 217 217 not acquired then all operations will be governed by the anonymous user parts
+3 -14
Documentation/filesystems/dax.txt
··· 83 83 directories. This has runtime constraints and limitations that are 84 84 described in 6) below. 85 85 86 - 6. When changing the S_DAX policy via toggling the persistent FS_XFLAG_DAX flag, 87 - the change in behaviour for existing regular files may not occur 88 - immediately. If the change must take effect immediately, the administrator 89 - needs to: 90 - 91 - a) stop the application so there are no active references to the data set 92 - the policy change will affect 93 - 94 - b) evict the data set from kernel caches so it will be re-instantiated when 95 - the application is restarted. This can be achieved by: 96 - 97 - i. drop-caches 98 - ii. a filesystem unmount and mount cycle 99 - iii. a system reboot 86 + 6. When changing the S_DAX policy via toggling the persistent FS_XFLAG_DAX 87 + flag, the change to existing regular files won't take effect until the 88 + files are closed by all processes. 100 89 101 90 102 91 Details
+1
Documentation/filesystems/index.rst
··· 83 83 erofs 84 84 ext2 85 85 ext3 86 + ext4/index 86 87 f2fs 87 88 gfs2 88 89 gfs2-uevents
+4 -1
Documentation/filesystems/proc.rst
··· 687 687 kcore Kernel core image (can be ELF or A.OUT(deprecated in 2.4)) 688 688 kmsg Kernel messages 689 689 ksyms Kernel symbol table 690 - loadavg Load average of last 1, 5 & 15 minutes 690 + loadavg Load average of last 1, 5 & 15 minutes; 691 + number of processes currently runnable (running or on ready queue); 692 + total number of processes in system; 693 + last pid created. 691 694 locks Kernel locks 692 695 meminfo Memory info 693 696 misc Miscellaneous
+1 -1
Documentation/filesystems/vfs.rst
··· 112 112 113 113 .. code-block:: c 114 114 115 - struct file_system_operations { 115 + struct file_system_type { 116 116 const char *name; 117 117 int fs_flags; 118 118 struct dentry *(*mount) (struct file_system_type *, int,
+1 -1
Documentation/gpu/todo.rst
··· 688 688 https://patchwork.freedesktop.org/patch/306579/ 689 689 690 690 - [RFC PATCH v2 00/13] Kernel based bootsplash 691 - https://lkml.org/lkml/2017/12/13/764 691 + https://lore.kernel.org/r/20171213194755.3409-1-mstaudt@suse.de 692 692 693 693 Contact: Sam Ravnborg 694 694
+1 -1
Documentation/iio/ep93xx_adc.rst
··· 13 13 ==================== 14 14 15 15 Numbering scheme for channels 0..4 is defined in EP9301 and EP9302 datasheets. 16 - EP9307, EP9312 and EP9312 have 3 channels more (total 8), but the numbering is 16 + EP9307, EP9312 and EP9315 have 3 channels more (total 8), but the numbering is 17 17 not defined. So the last three are numbered randomly, let's say. 18 18 19 19 Assuming ep93xx_adc is IIO device0, you'd find the following entries under
-11
Documentation/index.rst
··· 171 171 x86/index 172 172 xtensa/index 173 173 174 - Filesystem Documentation 175 - ------------------------ 176 - 177 - The documentation in this section are provided by specific filesystem 178 - subprojects. 179 - 180 - .. toctree:: 181 - :maxdepth: 2 182 - 183 - filesystems/ext4/index 184 - 185 174 Other documentation 186 175 ------------------- 187 176
+15
Documentation/input/event-codes.rst
··· 236 236 - Used to describe multitouch input events. Please see 237 237 multi-touch-protocol.txt for details. 238 238 239 + * ABS_PRESSURE/ABS_MT_PRESSURE: 240 + 241 + - For touch devices, many devices converted contact size into pressure. 242 + A finger flattens with pressure, causing a larger contact area and thus 243 + pressure and contact size are directly related. This is not the case 244 + for other devices, for example digitizers and touchpads with a true 245 + pressure sensor ("pressure pads"). 246 + 247 + A device should set the resolution of the axis to indicate whether the 248 + pressure is in measurable units. If the resolution is zero, the 249 + pressure data is in arbitrary units. If the resolution is nonzero, the 250 + pressure data is in units/gram. For example, a value of 10 with a 251 + resolution of 1 represents 10 gram, a value of 10 with a resolution on 252 + 1000 represents 10 microgram. 253 + 239 254 EV_SW 240 255 ----- 241 256
+4
Documentation/input/multi-touch-protocol.rst
··· 260 260 of TOUCH and WIDTH for pressure-based devices or any device with a spatial 261 261 signal intensity distribution. 262 262 263 + If the resolution is zero, the pressure data is in arbitrary units. 264 + If the resolution is nonzero, the pressure data is in units/gram. See 265 + :ref:`input-event-codes` for details. 266 + 263 267 ABS_MT_DISTANCE 264 268 The distance, in surface units, between the contact and the surface. Zero 265 269 distance means the contact is touching the surface. A positive number means
+2 -2
Documentation/kernel-hacking/hacking.rst
··· 346 346 Before inventing your own cache of often-used objects consider using a 347 347 slab cache in ``include/linux/slab.h`` 348 348 349 - :c:func:`current()` 350 - ------------------- 349 + :c:macro:`current` 350 + ------------------ 351 351 352 352 Defined in ``include/asm/current.h`` 353 353
+1 -1
Documentation/kernel-hacking/locking.rst
··· 958 958 the read lock, grabs a write lock and inserts the object has a race 959 959 condition. 960 960 961 - If you don't see why, please stay the fuck away from my code. 961 + If you don't see why, please stay away from my code. 962 962 963 963 Racing Timers: A Kernel Pastime 964 964 -------------------------------
+1 -1
Documentation/power/freezing-of-tasks.rst
··· 134 134 safeguards against race conditions that might occur in such a case. 135 135 136 136 Although Linus Torvalds doesn't like the freezing of tasks, he said this in one 137 - of the discussions on LKML (http://lkml.org/lkml/2007/4/27/608): 137 + of the discussions on LKML (https://lore.kernel.org/r/alpine.LFD.0.98.0704271801020.9964@woody.linux-foundation.org): 138 138 139 139 "RJW:> Why we freeze tasks at all or why we freeze kernel threads? 140 140
+10 -10
Documentation/process/adding-syscalls.rst
··· 501 501 useful to be used within the kernel, needs to be shared between an old and a 502 502 new syscall, or needs to be shared between a syscall and its compatibility 503 503 variant, it should be implemented by means of a "helper" function (such as 504 - ``kern_xyzzy()``). This kernel function may then be called within the 504 + ``ksys_xyzzy()``). This kernel function may then be called within the 505 505 syscall stub (``sys_xyzzy()``), the compatibility syscall stub 506 506 (``compat_sys_xyzzy()``), and/or other kernel code. 507 507 ··· 548 548 https://lwn.net/Articles/486306/ 549 549 - Recommendation from Andrew Morton that all related information for a new 550 550 system call should come in the same email thread: 551 - https://lkml.org/lkml/2014/7/24/641 551 + https://lore.kernel.org/r/20140724144747.3041b208832bbdf9fbce5d96@linux-foundation.org 552 552 - Recommendation from Michael Kerrisk that a new system call should come with 553 - a man page: https://lkml.org/lkml/2014/6/13/309 553 + a man page: https://lore.kernel.org/r/CAKgNAkgMA39AfoSoA5Pe1r9N+ZzfYQNvNPvcRN7tOvRb8+v06Q@mail.gmail.com 554 554 - Suggestion from Thomas Gleixner that x86 wire-up should be in a separate 555 - commit: https://lkml.org/lkml/2014/11/19/254 555 + commit: https://lore.kernel.org/r/alpine.DEB.2.11.1411191249560.3909@nanos 556 556 - Suggestion from Greg Kroah-Hartman that it's good for new system calls to 557 - come with a man-page & selftest: https://lkml.org/lkml/2014/3/19/710 557 + come with a man-page & selftest: https://lore.kernel.org/r/20140320025530.GA25469@kroah.com 558 558 - Discussion from Michael Kerrisk of new system call vs. :manpage:`prctl(2)` extension: 559 - https://lkml.org/lkml/2014/6/3/411 559 + https://lore.kernel.org/r/CAHO5Pa3F2MjfTtfNxa8LbnkeeU8=YJ+9tDqxZpw7Gz59E-4AUg@mail.gmail.com 560 560 - Suggestion from Ingo Molnar that system calls that involve multiple 561 561 arguments should encapsulate those arguments in a struct, which includes a 562 - size field for future extensibility: https://lkml.org/lkml/2015/7/30/117 562 + size field for future extensibility: https://lore.kernel.org/r/20150730083831.GA22182@gmail.com 563 563 - Numbering oddities arising from (re-)use of O_* numbering space flags: 564 564 565 565 - commit 75069f2b5bfb ("vfs: renumber FMODE_NONOTIFY and add to uniqueness ··· 569 569 - commit bb458c644a59 ("Safer ABI for O_TMPFILE") 570 570 571 571 - Discussion from Matthew Wilcox about restrictions on 64-bit arguments: 572 - https://lkml.org/lkml/2008/12/12/187 572 + https://lore.kernel.org/r/20081212152929.GM26095@parisc-linux.org 573 573 - Recommendation from Greg Kroah-Hartman that unknown flags should be 574 - policed: https://lkml.org/lkml/2014/7/17/577 574 + policed: https://lore.kernel.org/r/20140717193330.GB4703@kroah.com 575 575 - Recommendation from Linus Torvalds that x32 system calls should prefer 576 576 compatibility with 64-bit versions rather than 32-bit versions: 577 - https://lkml.org/lkml/2011/8/31/244 577 + https://lore.kernel.org/r/CA+55aFxfmwfB7jbbrXxa=K7VBYPfAvmu3XOkGrLbB1UFjX1+Ew@mail.gmail.com
+18 -2
Documentation/process/coding-style.rst
··· 69 69 if (condition) do_this; 70 70 do_something_everytime; 71 71 72 + Don't use commas to avoid using braces: 73 + 74 + .. code-block:: c 75 + 76 + if (condition) 77 + do_this(), do_that(); 78 + 79 + Always uses braces for multiple statements: 80 + 81 + .. code-block:: c 82 + 83 + if (condition) { 84 + do_this(); 85 + do_that(); 86 + } 87 + 72 88 Don't put multiple assignments on a single line either. Kernel coding style 73 89 is super simple. Avoid tricky expressions. 90 + 74 91 75 92 Outside of comments, documentation and except in Kconfig, spaces are never 76 93 used for indentation, and the above example is deliberately broken. ··· 323 306 324 307 Encoding the type of a function into the name (so-called Hungarian 325 308 notation) is asinine - the compiler knows the types anyway and can check 326 - those, and it only confuses the programmer. No wonder Microsoft makes buggy 327 - programs. 309 + those, and it only confuses the programmer. 328 310 329 311 LOCAL variable names should be short, and to the point. If you have 330 312 some random integer loop counter, it should probably be called ``i``.
+10 -10
Documentation/process/howto.rst
··· 342 342 Bug Reporting 343 343 ------------- 344 344 345 - https://bugzilla.kernel.org is where the Linux kernel developers track kernel 346 - bugs. Users are encouraged to report all bugs that they find in this 347 - tool. For details on how to use the kernel bugzilla, please see: 348 - 349 - https://bugzilla.kernel.org/page.cgi?id=faq.html 350 - 351 345 The file 'Documentation/admin-guide/reporting-issues.rst' in the main kernel 352 - source directory has a good template for how to report a possible kernel bug, 353 - and details what kind of information is needed by the kernel developers to help 354 - track down the problem. 346 + source directory describes how to report a possible kernel bug, and details 347 + what kind of information is needed by the kernel developers to help track 348 + down the problem. 355 349 356 350 357 351 Managing bug reports ··· 358 364 Fixing bugs is one of the best ways to get merits among other developers, 359 365 because not many people like wasting time fixing other people's bugs. 360 366 361 - To work in the already reported bug reports, go to https://bugzilla.kernel.org. 367 + To work on already reported bug reports, find a subsystem you are interested in. 368 + Check the MAINTAINERS file where bugs for that subsystem get reported to; often 369 + it will be a mailing list, rarely a bugtracker. Search the archives of said 370 + place for recent reports and help where you see fit. You may also want to check 371 + https://bugzilla.kernel.org for bug reports; only a handful of kernel subsystems 372 + use it actively for reporting or tracking, nevertheless bugs for the whole 373 + kernel get filed there. 362 374 363 375 364 376 Mailing lists
+6 -8
Documentation/process/submit-checklist.rst
··· 89 89 Patches that change userspace interfaces should be CCed to 90 90 linux-api@vger.kernel.org. 91 91 92 - 19) Check that it all passes ``make headers_check``. 93 - 94 - 20) Has been checked with injection of at least slab and page-allocation 92 + 19) Has been checked with injection of at least slab and page-allocation 95 93 failures. See ``Documentation/fault-injection/``. 96 94 97 95 If the new code is substantial, addition of subsystem-specific fault 98 96 injection might be appropriate. 99 97 100 - 21) Newly-added code has been compiled with ``gcc -W`` (use 98 + 20) Newly-added code has been compiled with ``gcc -W`` (use 101 99 ``make EXTRA_CFLAGS=-W``). This will generate lots of noise, but is good 102 100 for finding bugs like "warning: comparison between signed and unsigned". 103 101 104 - 22) Tested after it has been merged into the -mm patchset to make sure 102 + 21) Tested after it has been merged into the -mm patchset to make sure 105 103 that it still works with all of the other queued patches and various 106 104 changes in the VM, VFS, and other subsystems. 107 105 108 - 23) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a 106 + 22) All memory barriers {e.g., ``barrier()``, ``rmb()``, ``wmb()``} need a 109 107 comment in the source code that explains the logic of what they are doing 110 108 and why. 111 109 112 - 24) If any ioctl's are added by the patch, then also update 110 + 23) If any ioctl's are added by the patch, then also update 113 111 ``Documentation/userspace-api/ioctl/ioctl-number.rst``. 114 112 115 - 25) If your modified source code depends on or uses any of the kernel 113 + 24) If your modified source code depends on or uses any of the kernel 116 114 APIs or features that are related to the following ``Kconfig`` symbols, 117 115 then test multiple builds with the related ``Kconfig`` symbols disabled 118 116 and/or ``=m`` (if that option is available) [not all of these at the
+27 -2
Documentation/process/submitting-patches.rst
··· 556 556 method for indicating a bug fixed by the patch. See :ref:`describe_changes` 557 557 for more details. 558 558 559 + Note: Attaching a Fixes: tag does not subvert the stable kernel rules 560 + process nor the requirement to Cc: stable@vger.kernel.org on all stable 561 + patch candidates. For more information, please read 562 + :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` 563 + 559 564 .. _the_canonical_patch_format: 560 565 561 566 The canonical patch format ··· 684 679 See more details on the proper patch format in the following 685 680 references. 686 681 682 + Backtraces in commit mesages 683 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 684 + 685 + Backtraces help document the call chain leading to a problem. However, 686 + not all backtraces are helpful. For example, early boot call chains are 687 + unique and obvious. Copying the full dmesg output verbatim, however, 688 + adds distracting information like timestamps, module lists, register and 689 + stack dumps. 690 + 691 + Therefore, the most useful backtraces should distill the relevant 692 + information from the dump, which makes it easier to focus on the real 693 + issue. Here is an example of a well-trimmed backtrace:: 694 + 695 + unchecked MSR access error: WRMSR to 0xd51 (tried to write 0x0000000000000064) 696 + at rIP: 0xffffffffae059994 (native_write_msr+0x4/0x20) 697 + Call Trace: 698 + mba_wrmsr 699 + update_domains 700 + rdtgroup_mkdir 701 + 687 702 .. _explicit_in_reply_to: 688 703 689 704 Explicit In-Reply-To headers ··· 794 769 <http://www.kroah.com/log/linux/maintainer-06.html> 795 770 796 771 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! 797 - <https://lkml.org/lkml/2005/7/11/336> 772 + <https://lore.kernel.org/r/20050711.125305.08322243.davem@davemloft.net> 798 773 799 774 Kernel Documentation/process/coding-style.rst: 800 775 :ref:`Documentation/process/coding-style.rst <codingstyle>` 801 776 802 777 Linus Torvalds's mail on the canonical patch format: 803 - <http://lkml.org/lkml/2005/4/7/183> 778 + <https://lore.kernel.org/r/Pine.LNX.4.58.0504071023190.28951@ppc970.osdl.org> 804 779 805 780 Andi Kleen, "On submitting kernel patches" 806 781 Some strategies to get difficult or controversial changes in.
+12 -5
Documentation/scheduler/sched-bwc.rst
··· 2 2 CFS Bandwidth Control 3 3 ===================== 4 4 5 - [ This document only discusses CPU bandwidth control for SCHED_NORMAL. 6 - The SCHED_RT case is covered in Documentation/scheduler/sched-rt-group.rst ] 5 + .. note:: 6 + This document only discusses CPU bandwidth control for SCHED_NORMAL. 7 + The SCHED_RT case is covered in Documentation/scheduler/sched-rt-group.rst 7 8 8 9 CFS bandwidth control is a CONFIG_FAIR_GROUP_SCHED extension which allows the 9 10 specification of the maximum CPU bandwidth available to a group or hierarchy. ··· 26 25 ---------- 27 26 Quota and period are managed within the cpu subsystem via cgroupfs. 28 27 29 - cpu.cfs_quota_us: the total available run-time within a period (in microseconds) 30 - cpu.cfs_period_us: the length of a period (in microseconds) 31 - cpu.stat: exports throttling statistics [explained further below] 28 + .. note:: 29 + The cgroupfs files described in this section are only applicable 30 + to cgroup v1. For cgroup v2, see 31 + :ref:`Documentation/admin-guide/cgroupv2.rst <cgroup-v2-cpu>`. 32 + 33 + - cpu.cfs_quota_us: the total available run-time within a period (in 34 + microseconds) 35 + - cpu.cfs_period_us: the length of a period (in microseconds) 36 + - cpu.stat: exports throttling statistics [explained further below] 32 37 33 38 The default values are:: 34 39
+1 -1
Documentation/scheduler/sched-deadline.rst
··· 707 707 and how to prevent non-root users "cheat" the system? 708 708 709 709 As already discussed, we are planning also to merge this work with the EDF 710 - throttling patches [https://lkml.org/lkml/2010/2/23/239] but we still are in 710 + throttling patches [https://lore.kernel.org/r/cover.1266931410.git.fabio@helm.retis] but we still are in 711 711 the preliminary phases of the merge and we really seek feedback that would 712 712 help us decide on the direction it should take. 713 713
+3 -3
Documentation/scheduler/sched-design-CFS.rst
··· 34 34 p->se.vruntime (nanosec-unit) value. This way, it's possible to accurately 35 35 timestamp and measure the "expected CPU time" a task should have gotten. 36 36 37 - [ small detail: on "ideal" hardware, at any time all tasks would have the same 38 - p->se.vruntime value --- i.e., tasks would execute simultaneously and no task 39 - would ever get "out of balance" from the "ideal" share of CPU time. ] 37 + Small detail: on "ideal" hardware, at any time all tasks would have the same 38 + p->se.vruntime value --- i.e., tasks would execute simultaneously and no task 39 + would ever get "out of balance" from the "ideal" share of CPU time. 40 40 41 41 CFS's task picking logic is based on this p->se.vruntime value and it is thus 42 42 very simple: it always tries to run the task with the smallest p->se.vruntime
+1 -1
Documentation/security/lsm-development.rst
··· 2 2 Linux Security Module Development 3 3 ================================= 4 4 5 - Based on https://lkml.org/lkml/2007/10/26/215, 5 + Based on https://lore.kernel.org/r/20071026073721.618b4778@laptopd505.fenrus.org, 6 6 a new LSM is accepted into the kernel when its intent (a description of 7 7 what it tries to protect against and in what cases one would expect to 8 8 use it) has been appropriately documented in ``Documentation/admin-guide/LSM/``.
+5 -2
Documentation/sphinx/automarkup.py
··· 51 51 # Detects a reference to a documentation page of the form Documentation/... with 52 52 # an optional extension 53 53 # 54 - RE_doc = re.compile(r'\bDocumentation(/[\w\-_/]+)(\.\w+)*') 54 + RE_doc = re.compile(r'(\bDocumentation/)?((\.\./)*[\w\-/]+)\.(rst|txt)') 55 55 56 56 RE_namespace = re.compile(r'^\s*..\s*c:namespace::\s*(\S+)\s*$') 57 57 ··· 234 234 # 235 235 # Go through the dance of getting an xref out of the std domain 236 236 # 237 - target = match.group(1) 237 + absolute = match.group(1) 238 + target = match.group(2) 239 + if absolute: 240 + target = "/" + target 238 241 xref = None 239 242 pxref = addnodes.pending_xref('', refdomain = 'std', reftype = 'doc', 240 243 reftarget = target, modname = None,
+1 -7
Documentation/sphinx/cdomain.py
··· 236 236 237 237 indextext = self.get_index_text(name) 238 238 if indextext: 239 - if major == 1 and minor < 4: 240 - # indexnode's tuple changed in 1.4 241 - # https://github.com/sphinx-doc/sphinx/commit/e6a5a3a92e938fcd75866b4227db9e0524d58f7c 242 - self.indexnode['entries'].append( 243 - ('single', indextext, targetname, '')) 244 - else: 245 - self.indexnode['entries'].append( 239 + self.indexnode['entries'].append( 246 240 ('single', indextext, targetname, '', None)) 247 241 248 242 class CDomain(Base_CDomain):
+3 -24
Documentation/sphinx/kernel_abi.py
··· 45 45 from docutils.statemachine import ViewList 46 46 from docutils.parsers.rst import directives, Directive 47 47 from docutils.utils.error_reporting import ErrorString 48 - 49 - # 50 - # AutodocReporter is only good up to Sphinx 1.7 51 - # 52 - import sphinx 53 - 54 - Use_SSI = sphinx.__version__[:3] >= '1.7' 55 - if Use_SSI: 56 - from sphinx.util.docutils import switch_source_input 57 - else: 58 - from sphinx.ext.autodoc import AutodocReporter 48 + from sphinx.util.docutils import switch_source_input 59 49 60 50 __version__ = '1.0' 61 51 ··· 169 179 return node.children 170 180 171 181 def do_parse(self, content, node): 172 - if Use_SSI: 173 - with switch_source_input(self.state, content): 174 - self.state.nested_parse(content, 0, node, match_titles=1) 175 - else: 176 - buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter 177 - 178 - self.state.memo.title_styles = [] 179 - self.state.memo.section_level = 0 180 - self.state.memo.reporter = AutodocReporter(content, self.state.memo.reporter) 181 - try: 182 - self.state.nested_parse(content, 0, node, match_titles=1) 183 - finally: 184 - self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf 182 + with switch_source_input(self.state, content): 183 + self.state.nested_parse(content, 0, node, match_titles=1)
+3 -22
Documentation/sphinx/kernel_feat.py
··· 42 42 from docutils.statemachine import ViewList 43 43 from docutils.parsers.rst import directives, Directive 44 44 from docutils.utils.error_reporting import ErrorString 45 - 46 - # 47 - # AutodocReporter is only good up to Sphinx 1.7 48 - # 49 - import sphinx 50 - 51 - Use_SSI = sphinx.__version__[:3] >= '1.7' 52 - if Use_SSI: 53 - from sphinx.util.docutils import switch_source_input 54 - else: 55 - from sphinx.ext.autodoc import AutodocReporter 45 + from sphinx.util.docutils import switch_source_input 56 46 57 47 __version__ = '1.0' 58 48 ··· 144 154 145 155 buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter 146 156 147 - if Use_SSI: 148 - with switch_source_input(self.state, content): 149 - self.state.nested_parse(content, 0, node, match_titles=1) 150 - else: 151 - self.state.memo.title_styles = [] 152 - self.state.memo.section_level = 0 153 - self.state.memo.reporter = AutodocReporter(content, self.state.memo.reporter) 154 - try: 155 - self.state.nested_parse(content, 0, node, match_titles=1) 156 - finally: 157 - self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf 157 + with switch_source_input(self.state, content): 158 + self.state.nested_parse(content, 0, node, match_titles=1) 158 159 159 160 return node.children
+3 -23
Documentation/sphinx/kerneldoc.py
··· 37 37 from docutils import nodes, statemachine 38 38 from docutils.statemachine import ViewList 39 39 from docutils.parsers.rst import directives, Directive 40 - 41 - # 42 - # AutodocReporter is only good up to Sphinx 1.7 43 - # 44 40 import sphinx 45 - 46 - Use_SSI = sphinx.__version__[:3] >= '1.7' 47 - if Use_SSI: 48 - from sphinx.util.docutils import switch_source_input 49 - else: 50 - from sphinx.ext.autodoc import AutodocReporter 51 - 41 + from sphinx.util.docutils import switch_source_input 52 42 import kernellog 53 43 54 44 __version__ = '1.0' ··· 153 163 return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] 154 164 155 165 def do_parse(self, result, node): 156 - if Use_SSI: 157 - with switch_source_input(self.state, result): 158 - self.state.nested_parse(result, 0, node, match_titles=1) 159 - else: 160 - save = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter 161 - self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter) 162 - self.state.memo.title_styles, self.state.memo.section_level = [], 0 163 - try: 164 - self.state.nested_parse(result, 0, node, match_titles=1) 165 - finally: 166 - self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = save 167 - 166 + with switch_source_input(self.state, result): 167 + self.state.nested_parse(result, 0, node, match_titles=1) 168 168 169 169 def setup(app): 170 170 app.add_config_value('kerneldoc_bin', None, 'env')
+8 -18
Documentation/sphinx/kernellog.py
··· 4 4 # only goes back to 1.6. So here's a wrapper layer to keep around for 5 5 # as long as we support 1.4. 6 6 # 7 + # We don't support 1.4 anymore, but we'll keep the wrappers around until 8 + # we change all the code to not use them anymore :) 9 + # 7 10 import sphinx 11 + from sphinx.util import logging 8 12 9 - if sphinx.__version__[:3] >= '1.6': 10 - UseLogging = True 11 - from sphinx.util import logging 12 - logger = logging.getLogger('kerneldoc') 13 - else: 14 - UseLogging = False 13 + logger = logging.getLogger('kerneldoc') 15 14 16 15 def warn(app, message): 17 - if UseLogging: 18 - logger.warning(message) 19 - else: 20 - app.warn(message) 16 + logger.warning(message) 21 17 22 18 def verbose(app, message): 23 - if UseLogging: 24 - logger.verbose(message) 25 - else: 26 - app.verbose(message) 19 + logger.verbose(message) 27 20 28 21 def info(app, message): 29 - if UseLogging: 30 - logger.info(message) 31 - else: 32 - app.info(message) 22 + logger.info(message)
+1 -13
Documentation/sphinx/kfigure.py
··· 49 49 from os import path 50 50 import subprocess 51 51 from hashlib import sha1 52 - import sys 53 - 54 52 from docutils import nodes 55 53 from docutils.statemachine import ViewList 56 54 from docutils.parsers.rst import directives 57 55 from docutils.parsers.rst.directives import images 58 56 import sphinx 59 - 60 57 from sphinx.util.nodes import clean_astext 61 - from six import iteritems 62 - 63 58 import kernellog 64 - 65 - PY3 = sys.version_info[0] == 3 66 - 67 - if PY3: 68 - _unicode = str 69 - else: 70 - _unicode = unicode 71 59 72 60 # Get Sphinx version 73 61 major, minor, patch = sphinx.version_info[:3] ··· 528 540 docname = app.env.docname 529 541 labels = std.data["labels"] 530 542 531 - for name, explicit in iteritems(doctree.nametypes): 543 + for name, explicit in doctree.nametypes.items(): 532 544 if not explicit: 533 545 continue 534 546 labelid = doctree.nameids[name]
-2
Documentation/sphinx/maintainers_include.py
··· 61 61 field_content = "" 62 62 63 63 for line in open(path): 64 - if sys.version_info.major == 2: 65 - line = unicode(line, 'utf-8') 66 64 # Have we reached the end of the preformatted Descriptions text? 67 65 if descriptions and line.startswith('Maintainers'): 68 66 descriptions = False
-1
Documentation/sphinx/requirements.txt
··· 1 1 docutils 2 2 Sphinx==2.4.4 3 3 sphinx_rtd_theme 4 - six
-10
Documentation/sphinx/rstFlatTable.py
··· 42 42 # imports 43 43 # ============================================================================== 44 44 45 - import sys 46 - 47 45 from docutils import nodes 48 46 from docutils.parsers.rst import directives, roles 49 47 from docutils.parsers.rst.directives.tables import Table ··· 52 54 # ============================================================================== 53 55 54 56 __version__ = '1.0' 55 - 56 - PY3 = sys.version_info[0] == 3 57 - PY2 = sys.version_info[0] == 2 58 - 59 - if PY3: 60 - # pylint: disable=C0103, W0622 61 - unicode = str 62 - basestring = str 63 57 64 58 # ============================================================================== 65 59 def setup(app):
+1 -1
Documentation/timers/timers-howto.rst
··· 75 75 76 76 - Why not msleep for (1ms - 20ms)? 77 77 Explained originally here: 78 - http://lkml.org/lkml/2007/8/3/250 78 + https://lore.kernel.org/r/15327.1186166232@lwn.net 79 79 80 80 msleep(1~20) may not do what the caller intends, and 81 81 will often sleep longer (~20 ms actual sleep for any
+9 -9
Documentation/translations/it_IT/process/adding-syscalls.rst
··· 611 611 https://lwn.net/Articles/486306/ 612 612 - Raccomandazioni da Andrew Morton circa il fatto che tutte le informazioni 613 613 su una nuova chiamata di sistema dovrebbero essere contenute nello stesso 614 - filone di discussione di email: https://lkml.org/lkml/2014/7/24/641 614 + filone di discussione di email: https://lore.kernel.org/r/20140724144747.3041b208832bbdf9fbce5d96@linux-foundation.org 615 615 - Raccomandazioni da Michael Kerrisk circa il fatto che le nuove chiamate di 616 - sistema dovrebbero avere una pagina man: https://lkml.org/lkml/2014/6/13/309 616 + sistema dovrebbero avere una pagina man: https://lore.kernel.org/r/CAKgNAkgMA39AfoSoA5Pe1r9N+ZzfYQNvNPvcRN7tOvRb8+v06Q@mail.gmail.com 617 617 - Consigli da Thomas Gleixner sul fatto che il collegamento all'architettura 618 618 x86 dovrebbe avvenire in un *commit* differente: 619 - https://lkml.org/lkml/2014/11/19/254 619 + https://lore.kernel.org/r/alpine.DEB.2.11.1411191249560.3909@nanos 620 620 - Consigli da Greg Kroah-Hartman circa la bontà d'avere una pagina man e un 621 621 programma di auto-verifica per le nuove chiamate di sistema: 622 - https://lkml.org/lkml/2014/3/19/710 622 + https://lore.kernel.org/r/20140320025530.GA25469@kroah.com 623 623 - Discussione di Michael Kerrisk sulle nuove chiamate di sistema contro 624 - le estensioni :manpage:`prctl(2)`: https://lkml.org/lkml/2014/6/3/411 624 + le estensioni :manpage:`prctl(2)`: https://lore.kernel.org/r/CAHO5Pa3F2MjfTtfNxa8LbnkeeU8=YJ+9tDqxZpw7Gz59E-4AUg@mail.gmail.com 625 625 - Consigli da Ingo Molnar che le chiamate di sistema con più argomenti 626 626 dovrebbero incapsularli in una struttura che includa un argomento 627 627 *size* per garantire l'estensibilità futura: 628 - https://lkml.org/lkml/2015/7/30/117 628 + https://lore.kernel.org/r/20150730083831.GA22182@gmail.com 629 629 - Un certo numero di casi strani emersi dall'uso (riuso) dei flag O_*: 630 630 631 631 - commit 75069f2b5bfb ("vfs: renumber FMODE_NONOTIFY and add to uniqueness ··· 635 635 - commit bb458c644a59 ("Safer ABI for O_TMPFILE") 636 636 637 637 - Discussion from Matthew Wilcox about restrictions on 64-bit arguments: 638 - https://lkml.org/lkml/2008/12/12/187 638 + https://lore.kernel.org/r/20081212152929.GM26095@parisc-linux.org 639 639 - Raccomandazioni da Greg Kroah-Hartman sul fatto che i flag sconosciuti dovrebbero 640 - essere controllati: https://lkml.org/lkml/2014/7/17/577 640 + essere controllati: https://lore.kernel.org/r/20140717193330.GB4703@kroah.com 641 641 - Raccomandazioni da Linus Torvalds che le chiamate di sistema x32 dovrebbero 642 642 favorire la compatibilità con le versioni a 64-bit piuttosto che quelle a 32-bit: 643 - https://lkml.org/lkml/2011/8/31/244 643 + https://lore.kernel.org/r/CA+55aFxfmwfB7jbbrXxa=K7VBYPfAvmu3XOkGrLbB1UFjX1+Ew@mail.gmail.com
+2 -2
Documentation/translations/it_IT/process/submitting-patches.rst
··· 731 731 <http://www.kroah.com/log/linux/maintainer-06.html> 732 732 733 733 No!!!! Basta gigantesche bombe patch alle persone sulla lista linux-kernel@vger.kernel.org! 734 - <https://lkml.org/lkml/2005/7/11/336> 734 + <https://lore.kernel.org/r/20050711.125305.08322243.davem@davemloft.net> 735 735 736 736 Kernel Documentation/translations/it_IT/process/coding-style.rst: 737 737 :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>` 738 738 739 739 E-mail di Linus Torvalds sul formato canonico di una patch: 740 - <http://lkml.org/lkml/2005/4/7/183> 740 + <https://lore.kernel.org/r/Pine.LNX.4.58.0504071023190.28951@ppc970.osdl.org> 741 741 742 742 Andi Kleen, "Su come sottomettere patch del kernel" 743 743 Alcune strategie su come sottomettere modifiche toste o controverse.
+2 -2
Documentation/translations/ja_JP/SubmittingPatches
··· 702 702 <http://www.kroah.com/log/2006/01/11/> 703 703 704 704 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! 705 - <https://lkml.org/lkml/2005/7/11/336> 705 + <https://lore.kernel.org/r/20050711.125305.08322243.davem@davemloft.net> 706 706 707 707 Kernel Documentation/process/coding-style.rst: 708 708 <http://users.sosdg.org/~qiyong/lxr/source/Documentation/process/coding-style.rst> 709 709 710 710 Linus Torvalds's mail on the canonical patch format: 711 - <http://lkml.org/lkml/2005/4/7/183> 711 + <https://lore.kernel.org/r/Pine.LNX.4.58.0504071023190.28951@ppc970.osdl.org> 712 712 713 713 Andi Kleen, "On submitting kernel patches" 714 714 Some strategies to get difficult or controversial changes in.
+2 -2
Documentation/translations/ko_KR/howto.rst
··· 345 345 346 346 https://bugzilla.kernel.org/page.cgi?id=faq.html 347 347 348 - 메인 커널 소스 디렉토리에 있는 :ref:`admin-guide/reporting-bugs.rst <reportingbugs>` 348 + 메인 커널 소스 디렉토리에 있는 'Documentation/admin-guide/reporting-issues.rst' 349 349 파일은 커널 버그라고 생각되는 것을 보고하는 방법에 관한 좋은 템플릿이며 문제를 350 350 추적하기 위해서 커널 개발자들이 필요로 하는 정보가 무엇들인지를 상세히 설명하고 351 351 있다. ··· 583 583 584 584 "The Perfect Patch" 585 585 586 - http://www.ozlabs.org/~akpm/stuff/tpp.txt 586 + https://www.ozlabs.org/~akpm/stuff/tpp.txt 587 587 588 588 589 589 이 모든 것을 하는 것은 매우 어려운 일이다. 완벽히 소화하는 데는 적어도 몇년이
+15
Documentation/translations/ko_KR/index.rst
··· 10 10 :maxdepth: 1 11 11 12 12 howto 13 + 14 + 15 + 리눅스 커널 메모리 배리어 16 + ------------------------- 17 + 18 + .. raw:: latex 19 + 20 + \footnotesize 21 + 22 + .. include:: ./memory-barriers.txt 23 + :literal: 24 + 25 + .. raw:: latex 26 + 27 + \normalsize
+1 -1
Documentation/translations/zh_CN/admin-guide/cpu-load.rst
··· 95 95 参考 96 96 --- 97 97 98 - - http://lkml.org/lkml/2007/2/12/6 98 + - https://lore.kernel.org/r/loom.20070212T063225-663@post.gmane.org 99 99 - Documentation/filesystems/proc.rst (1.8) 100 100 101 101
+1 -1
Documentation/translations/zh_CN/arm/Booting
··· 124 124 125 125 bootloader 必须以 64bit 地址对齐的形式加载一个设备树映像(dtb)到系统 126 126 RAM 中,并用启动数据初始化它。dtb 格式在文档 127 - Documentation/devicetree/booting-without-of.rst 中。内核将会在 127 + https://www.devicetree.org/specifications/ 中。内核将会在 128 128 dtb 物理地址处查找 dtb 魔数值(0xd00dfeed),以确定 dtb 是否已经代替 129 129 标签列表被传递进来。 130 130
+46
Documentation/translations/zh_CN/iio/ep93xx_adc.rst
··· 1 + .. include:: ../disclaimer-zh_CN.rst 2 + 3 + :Original: :doc:`../../../iio/ep93xx_adc` 4 + :Translator: Yanteng Si <siyanteng@loongson.cn> 5 + 6 + .. _cn_iio_ep93xx_adc: 7 + 8 + 9 + ================================== 10 + 思睿逻辑 EP93xx 模拟数字转换器驱动 11 + ================================== 12 + 13 + 1. 概述 14 + ======= 15 + 16 + 该驱动同时适用于具有5通道模拟数字转换器的低端 (EP9301, Ep9302) 设备和10通道 17 + 触摸屏/模拟数字转换器的高端设备(EP9307, EP9312, EP9315)。 18 + 19 + 2. 通道编号 20 + =========== 21 + 22 + EP9301和EP9302数据表定义了通道0..4的编号方案。虽然EP9307, EP9312和EP9315多 23 + 了3个通道(一共8个),但是编号并没有定义。所以说最后三个通道是随机编号的。 24 + 25 + 如果ep93xx_adc是IIO设备0,您将在以下位置找到条目 26 + /sys/bus/iio/devices/iio:device0/: 27 + 28 + +-----------------+---------------+ 29 + | sysfs 入口 | ball/pin 名称 | 30 + +=================+===============+ 31 + | in_voltage0_raw | YM | 32 + +-----------------+---------------+ 33 + | in_voltage1_raw | SXP | 34 + +-----------------+---------------+ 35 + | in_voltage2_raw | SXM | 36 + +-----------------+---------------+ 37 + | in_voltage3_raw | SYP | 38 + +-----------------+---------------+ 39 + | in_voltage4_raw | SYM | 40 + +-----------------+---------------+ 41 + | in_voltage5_raw | XP | 42 + +-----------------+---------------+ 43 + | in_voltage6_raw | XM | 44 + +-----------------+---------------+ 45 + | in_voltage7_raw | YP | 46 + +-----------------+---------------+
+102
Documentation/translations/zh_CN/iio/iio_configfs.rst
··· 1 + .. include:: ../disclaimer-zh_CN.rst 2 + 3 + :Original: :doc:`../../../iio/iio_configfs` 4 + :Translator: Yanteng Si <siyanteng@loongson.cn> 5 + 6 + .. _cn_iio_configfs: 7 + 8 + 9 + ===================== 10 + 工业 IIO configfs支持 11 + ===================== 12 + 13 + 1. 概述 14 + ======= 15 + 16 + Configfs是一种内核对象的基于文件系统的管理系统,IIO使用一些可以通过 17 + configfs轻松配置的对象(例如:设备,触发器)。 18 + 19 + 关于configfs是如何运行的,请查阅Documentation/filesystems/configfs.rst 20 + 了解更多信息。 21 + 22 + 2. 用法 23 + ======= 24 + 为了使configfs支持IIO,我们需要在编译时选中config的CONFIG_IIO_CONFIGFS 25 + 选项。 26 + 27 + 然后,挂载configfs文件系统(通常在 /config directory目录下):: 28 + 29 + $ mkdir/config 30 + $ mount -t configfs none/config 31 + 32 + 此时,将创建所有默认IIO组,并可以在/ config / iio下对其进行访问。 下一章 33 + 将介绍可用的IIO配置对象。 34 + 35 + 3. 软件触发器 36 + ============= 37 + 38 + IIO默认configfs组之一是“触发器”组。 挂载configfs后可以自动访问它,并且可 39 + 以在/config/iio/triggers下找到。 40 + 41 + IIO软件触发器为创建多种触发器类型提供了支持。 通常在include/linux/iio 42 + /sw_trigger.h:中的接口下将新的触发器类型实现为单独的内核模块: 43 + :: 44 + 45 + /* 46 + * drivers/iio/trigger/iio-trig-sample.c 47 + * 一种新触发器类型的内核模块实例 48 + */ 49 + #include <linux/iio/sw_trigger.h> 50 + 51 + 52 + static struct iio_sw_trigger *iio_trig_sample_probe(const char *name) 53 + { 54 + /* 55 + * 这将分配并注册一个IIO触发器以及其他触发器类型特性的初始化。 56 + */ 57 + } 58 + 59 + static int iio_trig_sample_remove(struct iio_sw_trigger *swt) 60 + { 61 + /* 62 + * 这会废弃iio_trig_sample_probe中的操作 63 + */ 64 + } 65 + 66 + static const struct iio_sw_trigger_ops iio_trig_sample_ops = { 67 + .probe = iio_trig_sample_probe, 68 + .remove = iio_trig_sample_remove, 69 + }; 70 + 71 + static struct iio_sw_trigger_type iio_trig_sample = { 72 + .name = "trig-sample", 73 + .owner = THIS_MODULE, 74 + .ops = &iio_trig_sample_ops, 75 + }; 76 + 77 + module_iio_sw_trigger_driver(iio_trig_sample); 78 + 79 + 每种触发器类型在/config/iio/triggers下都有其自己的目录。 加载iio-trig-sample 80 + 模块将创建“ trig-sample”触发器类型目录/config/iio/triggers/trig-sample. 81 + 82 + 我们支持以下中断源(触发器类型) 83 + 84 + * hrtimer,使用高分辨率定时器作为中断源 85 + 86 + 3.1 Hrtimer触发器创建与销毁 87 + --------------------------- 88 + 89 + 加载iio-trig-hrtimer模块将注册hrtimer触发器类型,从而允许用户在 90 + /config/iio/triggers/hrtimer下创建hrtimer触发器。 91 + 92 + 例如:: 93 + 94 + $ mkdir /config/iio/triggers/hrtimer/instance1 95 + $ rmdir /config/iio/triggers/hrtimer/instance1 96 + 97 + 每个触发器可以具有一个或多个独特的触发器类型的属性。 98 + 99 + 3.2 "hrtimer" 触发器类型属性 100 + ---------------------------- 101 + 102 + "hrtimer”触发器类型没有来自/config dir的任何可配置属性。
+20
Documentation/translations/zh_CN/iio/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + .. include:: ../disclaimer-zh_CN.rst 4 + 5 + :Original: :doc:`../../../iio/index` 6 + :Translator: Yanteng Si <siyanteng@loongson.cn> 7 + 8 + .. _cn_iio_index: 9 + 10 + 11 + ======== 12 + 工业 I/O 13 + ======== 14 + 15 + .. toctree:: 16 + :maxdepth: 1 17 + 18 + iio_configfs 19 + 20 + ep93xx_adc
+31
Documentation/translations/zh_CN/mips/booting.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + .. include:: ../disclaimer-zh_CN.rst 4 + 5 + :Original: :doc:`../../../mips/booting` 6 + :Translator: Yanteng Si <siyanteng@loongson.cn> 7 + 8 + .. _cn_booting: 9 + 10 + BMIPS设备树引导 11 + ------------------------ 12 + 13 + 一些bootloaders只支持在内核镜像开始地址处的单一入口点。而其它 14 + bootloaders将跳转到ELF的开始地址处。两种方案都支持的;因为 15 + CONFIG_BOOT_RAW=y and CONFIG_NO_EXCEPT_FILL=y, 所以第一条指令 16 + 会立即跳转到kernel_entry()入口处执行。 17 + 18 + 与arch/arm情况(b)类似,dt感知的引导加载程序需要设置以下寄存器: 19 + 20 + a0 : 0 21 + 22 + a1 : 0xffffffff 23 + 24 + a2 : RAM中指向设备树块的物理指针(在chapterII中定义)。 25 + 设备树可以位于前512MB物理地址空间(0x00000000 - 26 + 0x1fffffff)的任何位置,以64位边界对齐。 27 + 28 + 传统bootloaders不会使用这样的约定,并且它们不传入DT块。 29 + 在这种情况下,Linux将通过选中CONFIG_DT_*查找DTB。 30 + 31 + 以上约定只在32位系统中定义,因为目前没有任何64位的BMIPS实现。
+10
Documentation/translations/zh_CN/mips/features.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + .. include:: ../disclaimer-zh_CN.rst 4 + 5 + :Original: :doc:`../../../mips/features` 6 + :Translator: Yanteng Si <siyanteng@loongson.cn> 7 + 8 + .. _cn_features: 9 + 10 + .. kernel-feat:: $srctree/Documentation/features mips
+26
Documentation/translations/zh_CN/mips/index.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + .. include:: ../disclaimer-zh_CN.rst 4 + 5 + :Original: :doc:`../../../mips/index` 6 + :Translator: Yanteng Si <siyanteng@loongson.cn> 7 + 8 + =========================== 9 + MIPS特性文档 10 + =========================== 11 + 12 + .. toctree:: 13 + :maxdepth: 2 14 + :numbered: 15 + 16 + booting 17 + ingenic-tcu 18 + 19 + features 20 + 21 + .. only:: subproject and html 22 + 23 + Indices 24 + ======= 25 + 26 + * :ref:`genindex`
+69
Documentation/translations/zh_CN/mips/ingenic-tcu.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + .. include:: ../disclaimer-zh_CN.rst 4 + 5 + :Original: :doc:`../../../mips/ingenic-tcu` 6 + :Translator: Yanteng Si <siyanteng@loongson.cn> 7 + 8 + .. _cn_ingenic-tcu: 9 + 10 + =============================================== 11 + 君正 JZ47xx SoC定时器/计数器硬件单元 12 + =============================================== 13 + 14 + 君正 JZ47xx SoC中的定时器/计数器单元(TCU)是一个多功能硬件块。它有多达 15 + 8个通道,可以用作计数器,计时器,或脉冲宽度调制器。 16 + 17 + - JZ4725B, JZ4750, JZ4755 只有6个TCU通道。其它SoC都有8个通道。 18 + 19 + - JZ4725B引入了一个独立的通道,称为操作系统计时器(OST)。这是一个32位可 20 + 编程定时器。在JZ4760B及以上型号上,它是64位的。 21 + 22 + - 每个TCU通道都有自己的时钟源,可以通过 TCSR 寄存器设置通道的父级时钟 23 + 源(pclk、ext、rtc)、开关以及分频。 24 + 25 + - 看门狗和OST硬件模块在它们的寄存器空间中也有相同形式的TCSR寄存器。 26 + - 用于关闭/开启的 TCU 寄存器也可以关闭/开启看门狗和 OST 时钟。 27 + 28 + - 每个TCU通道在两种模式的其中一种模式下运行: 29 + 30 + - 模式 TCU1:通道无法在睡眠模式下运行,但更易于操作。 31 + - 模式 TCU2:通道可以在睡眠模式下运行,但操作比 TCU1 通道复杂一些。 32 + 33 + - 每个 TCU 通道的模式取决于使用的SoC: 34 + 35 + - 在最老的SoC(高于JZ4740),八个通道都运行在TCU1模式。 36 + - 在 JZ4725B,通道5运行在TCU2,其它通道则运行在TCU1。 37 + - 在最新的SoC(JZ4750及之后),通道1-2运行在TCU2,其它通道则运行 38 + 在TCU1。 39 + 40 + - 每个通道都可以生成中断。有些通道共享一条中断线,而有些没有,其在SoC型 41 + 号之间的变更: 42 + 43 + - 在很老的SoC(JZ4740及更低),通道0和通道1有它们自己的中断线;通 44 + 道2-7共享最后一条中断线。 45 + - 在 JZ4725B,通道0有它自己的中断线;通道1-5共享一条中断线;OST 46 + 使用最后一条中断线。 47 + - 在比较新的SoC(JZ4750及以后),通道5有它自己的中断线;通 48 + 道0-4和(如果是8通道)6-7全部共享一条中断线;OST使用最后一条中 49 + 断线。 50 + 51 + 实现 52 + ==== 53 + 54 + TCU硬件的功能分布在多个驱动程序: 55 + 56 + ============== =================================== 57 + 时钟 drivers/clk/ingenic/tcu.c 58 + 中断 drivers/irqchip/irq-ingenic-tcu.c 59 + 定时器 drivers/clocksource/ingenic-timer.c 60 + OST drivers/clocksource/ingenic-ost.c 61 + 脉冲宽度调制器 drivers/pwm/pwm-jz4740.c 62 + 看门狗 drivers/watchdog/jz4740_wdt.c 63 + ============== =================================== 64 + 65 + 因为可以从相同的寄存器控制属于不同驱动程序和框架的TCU的各种功能,所以 66 + 所有这些驱动程序都通过相同的控制总线通用接口访问它们的寄存器。 67 + 68 + 有关TCU驱动程序的设备树绑定的更多信息,请参阅: 69 + Documentation/devicetree/bindings/timer/ingenic,tcu.yaml.
+2 -2
Documentation/translations/zh_CN/process/submitting-patches.rst
··· 668 668 <http://www.kroah.com/log/linux/maintainer-06.html> 669 669 670 670 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! 671 - <https://lkml.org/lkml/2005/7/11/336> 671 + <https://lore.kernel.org/r/20050711.125305.08322243.davem@davemloft.net> 672 672 673 673 Kernel Documentation/process/coding-style.rst: 674 674 :ref:`Documentation/translations/zh_CN/process/coding-style.rst <cn_codingstyle>` 675 675 676 676 Linus Torvalds's mail on the canonical patch format: 677 - <http://lkml.org/lkml/2005/4/7/183> 677 + <https://lore.kernel.org/r/Pine.LNX.4.58.0504071023190.28951@ppc970.osdl.org> 678 678 679 679 Andi Kleen, "On submitting kernel patches" 680 680 Some strategies to get difficult or controversial changes in.
+1 -1
Documentation/vm/split_page_table_lock.rst
··· 32 32 33 33 Split page table lock for PTE tables is enabled compile-time if 34 34 CONFIG_SPLIT_PTLOCK_CPUS (usually 4) is less or equal to NR_CPUS. 35 - If split lock is disabled, all tables guaded by mm->page_table_lock. 35 + If split lock is disabled, all tables are guarded by mm->page_table_lock. 36 36 37 37 Split page table lock for PMD tables is enabled, if it's enabled for PTE 38 38 tables and the architecture supports it (see below).
+1 -1
Documentation/x86/boot.rst
··· 851 851 struct setup_data { 852 852 __u64 next = 0 or <addr_of_next_setup_data_struct>; 853 853 __u32 type = SETUP_INDIRECT; 854 - __u32 len = sizeof(setup_data); 854 + __u32 len = sizeof(setup_indirect); 855 855 __u8 data[sizeof(setup_indirect)] = struct setup_indirect { 856 856 __u32 type = SETUP_INDIRECT | SETUP_E820_EXT; 857 857 __u32 reserved = 0;
+2 -2
arch/Kconfig
··· 124 124 accesses are required to be 64 bit aligned in this way even 125 125 though it is not a 64 bit architecture. 126 126 127 - See Documentation/unaligned-memory-access.txt for more 128 - information on the topic of unaligned memory accesses. 127 + See Documentation/core-api/unaligned-memory-access.rst for 128 + more information on the topic of unaligned memory accesses. 129 129 130 130 config HAVE_EFFICIENT_UNALIGNED_ACCESS 131 131 bool
+1 -1
drivers/parport/share.c
··· 243 243 } 244 244 245 245 /** 246 - * parport_register_driver - register a parallel port device driver 246 + * __parport_register_driver - register a parallel port device driver 247 247 * @drv: structure describing the driver 248 248 * @owner: owner module of drv 249 249 * @mod_name: module name string
+1 -1
drivers/rapidio/rio.c
··· 749 749 EXPORT_SYMBOL_GPL(rio_map_outb_region); 750 750 751 751 /** 752 - * rio_unmap_inb_region -- Unmap the inbound memory region 752 + * rio_unmap_outb_region -- Unmap the inbound memory region 753 753 * @mport: Master port 754 754 * @destid: destination id mapping points to 755 755 * @rstart: RIO base address window translates to
+32 -31
fs/dcache.c
··· 456 456 list_lru_isolate_move(lru, &dentry->d_lru, list); 457 457 } 458 458 459 - /** 460 - * d_drop - drop a dentry 461 - * @dentry: dentry to drop 462 - * 463 - * d_drop() unhashes the entry from the parent dentry hashes, so that it won't 464 - * be found through a VFS lookup any more. Note that this is different from 465 - * deleting the dentry - d_delete will try to mark the dentry negative if 466 - * possible, giving a successful _negative_ lookup, while d_drop will 467 - * just make the cache lookup fail. 468 - * 469 - * d_drop() is used mainly for stuff that wants to invalidate a dentry for some 470 - * reason (NFS timeouts or autofs deletes). 471 - * 472 - * __d_drop requires dentry->d_lock 473 - * ___d_drop doesn't mark dentry as "unhashed" 474 - * (dentry->d_hash.pprev will be LIST_POISON2, not NULL). 475 - */ 476 459 static void ___d_drop(struct dentry *dentry) 477 460 { 478 461 struct hlist_bl_head *b; ··· 484 501 } 485 502 EXPORT_SYMBOL(__d_drop); 486 503 504 + /** 505 + * d_drop - drop a dentry 506 + * @dentry: dentry to drop 507 + * 508 + * d_drop() unhashes the entry from the parent dentry hashes, so that it won't 509 + * be found through a VFS lookup any more. Note that this is different from 510 + * deleting the dentry - d_delete will try to mark the dentry negative if 511 + * possible, giving a successful _negative_ lookup, while d_drop will 512 + * just make the cache lookup fail. 513 + * 514 + * d_drop() is used mainly for stuff that wants to invalidate a dentry for some 515 + * reason (NFS timeouts or autofs deletes). 516 + * 517 + * __d_drop requires dentry->d_lock 518 + * 519 + * ___d_drop doesn't mark dentry as "unhashed" 520 + * (dentry->d_hash.pprev will be LIST_POISON2, not NULL). 521 + */ 487 522 void d_drop(struct dentry *dentry) 488 523 { 489 524 spin_lock(&dentry->d_lock); ··· 997 996 } 998 997 EXPORT_SYMBOL(d_find_any_alias); 999 998 1000 - /** 1001 - * d_find_alias - grab a hashed alias of inode 1002 - * @inode: inode in question 1003 - * 1004 - * If inode has a hashed alias, or is a directory and has any alias, 1005 - * acquire the reference to alias and return it. Otherwise return NULL. 1006 - * Notice that if inode is a directory there can be only one alias and 1007 - * it can be unhashed only if it has no children, or if it is the root 1008 - * of a filesystem, or if the directory was renamed and d_revalidate 1009 - * was the first vfs operation to notice. 1010 - * 1011 - * If the inode has an IS_ROOT, DCACHE_DISCONNECTED alias, then prefer 1012 - * any other hashed alias over that one. 1013 - */ 1014 999 static struct dentry *__d_find_alias(struct inode *inode) 1015 1000 { 1016 1001 struct dentry *alias; ··· 1016 1029 return NULL; 1017 1030 } 1018 1031 1032 + /** 1033 + * d_find_alias - grab a hashed alias of inode 1034 + * @inode: inode in question 1035 + * 1036 + * If inode has a hashed alias, or is a directory and has any alias, 1037 + * acquire the reference to alias and return it. Otherwise return NULL. 1038 + * Notice that if inode is a directory there can be only one alias and 1039 + * it can be unhashed only if it has no children, or if it is the root 1040 + * of a filesystem, or if the directory was renamed and d_revalidate 1041 + * was the first vfs operation to notice. 1042 + * 1043 + * If the inode has an IS_ROOT, DCACHE_DISCONNECTED alias, then prefer 1044 + * any other hashed alias over that one. 1045 + */ 1019 1046 struct dentry *d_find_alias(struct inode *inode) 1020 1047 { 1021 1048 struct dentry *de = NULL;
+2 -2
fs/inode.c
··· 1493 1493 EXPORT_SYMBOL(find_inode_rcu); 1494 1494 1495 1495 /** 1496 - * find_inode_by_rcu - Find an inode in the inode cache 1496 + * find_inode_by_ino_rcu - Find an inode in the inode cache 1497 1497 * @sb: Super block of file system to search 1498 1498 * @ino: The inode number to match 1499 1499 * ··· 1777 1777 } 1778 1778 1779 1779 /** 1780 - * touch_atime - update the access time 1780 + * atime_needs_update - update the access time 1781 1781 * @path: the &struct path to update 1782 1782 * @inode: inode to update 1783 1783 *
+1 -1
fs/pstore/zone.c
··· 23 23 #include "internal.h" 24 24 25 25 /** 26 - * struct psz_head - header of zone to flush to storage 26 + * struct psz_buffer - header of zone to flush to storage 27 27 * 28 28 * @sig: signature to indicate header (PSZ_SIG xor PSZONE-type value) 29 29 * @datalen: length of data in @data
+3 -2
fs/seq_file.c
··· 669 669 EXPORT_SYMBOL(seq_puts); 670 670 671 671 /** 672 - * A helper routine for putting decimal numbers without rich format of printf(). 672 + * seq_put_decimal_ull_width - A helper routine for putting decimal numbers 673 + * without rich format of printf(). 673 674 * only 'unsigned long long' is supported. 674 675 * @m: seq_file identifying the buffer to which data should be written 675 676 * @delimiter: a string which is printed before the number ··· 1045 1044 EXPORT_SYMBOL(seq_hlist_next_rcu); 1046 1045 1047 1046 /** 1048 - * seq_hlist_start_precpu - start an iteration of a percpu hlist array 1047 + * seq_hlist_start_percpu - start an iteration of a percpu hlist array 1049 1048 * @head: pointer to percpu array of struct hlist_heads 1050 1049 * @cpu: pointer to cpu "cursor" 1051 1050 * @pos: start position of sequence
+6 -6
fs/super.c
··· 1719 1719 } 1720 1720 EXPORT_SYMBOL(freeze_super); 1721 1721 1722 - /** 1723 - * thaw_super -- unlock filesystem 1724 - * @sb: the super to thaw 1725 - * 1726 - * Unlocks the filesystem and marks it writeable again after freeze_super(). 1727 - */ 1728 1722 static int thaw_super_locked(struct super_block *sb) 1729 1723 { 1730 1724 int error; ··· 1754 1760 return 0; 1755 1761 } 1756 1762 1763 + /** 1764 + * thaw_super -- unlock filesystem 1765 + * @sb: the super to thaw 1766 + * 1767 + * Unlocks the filesystem and marks it writeable again after freeze_super(). 1768 + */ 1757 1769 int thaw_super(struct super_block *sb) 1758 1770 { 1759 1771 down_write(&sb->s_umount);
+1 -1
include/linux/connector.h
··· 99 99 int cn_netlink_send_mult(struct cn_msg *msg, u16 len, u32 portid, u32 group, gfp_t gfp_mask); 100 100 101 101 /** 102 - * cn_netlink_send_mult - Sends message to the specified groups. 102 + * cn_netlink_send - Sends message to the specified groups. 103 103 * 104 104 * @msg: message header(with attached data). 105 105 * @portid: destination port.
+5 -5
include/linux/firmware/intel/stratix10-svc-client.h
··· 6 6 #ifndef __STRATIX10_SVC_CLIENT_H 7 7 #define __STRATIX10_SVC_CLIENT_H 8 8 9 - /** 9 + /* 10 10 * Service layer driver supports client names 11 11 * 12 12 * fpga: for FPGA configuration ··· 15 15 #define SVC_CLIENT_FPGA "fpga" 16 16 #define SVC_CLIENT_RSU "rsu" 17 17 18 - /** 18 + /* 19 19 * Status of the sent command, in bit number 20 20 * 21 21 * SVC_STATUS_OK: ··· 50 50 #define SVC_STATUS_ERROR 5 51 51 #define SVC_STATUS_NO_SUPPORT 6 52 52 53 - /** 53 + /* 54 54 * Flag bit for COMMAND_RECONFIG 55 55 * 56 56 * COMMAND_RECONFIG_FLAG_PARTIAL: ··· 58 58 */ 59 59 #define COMMAND_RECONFIG_FLAG_PARTIAL 1 60 60 61 - /** 61 + /* 62 62 * Timeout settings for service clients: 63 63 * timeout value used in Stratix10 FPGA manager driver. 64 64 * timeout value used in RSU driver ··· 218 218 int stratix10_svc_send(struct stratix10_svc_chan *chan, void *msg); 219 219 220 220 /** 221 - * intel_svc_done() - complete service request 221 + * stratix10_svc_done() - complete service request 222 222 * @chan: service channel assigned to the client 223 223 * 224 224 * This function is used by service client to inform service layer that
+2 -2
include/linux/memblock.h
··· 272 272 unsigned long *out_spfn, 273 273 unsigned long *out_epfn); 274 274 /** 275 - * for_each_free_mem_range_in_zone - iterate through zone specific free 275 + * for_each_free_mem_pfn_range_in_zone - iterate through zone specific free 276 276 * memblock areas 277 277 * @i: u64 used as loop variable 278 278 * @zone: zone in which all of the memory blocks reside ··· 292 292 __next_mem_pfn_range_in_zone(&i, zone, p_start, p_end)) 293 293 294 294 /** 295 - * for_each_free_mem_range_in_zone_from - iterate through zone specific 295 + * for_each_free_mem_pfn_range_in_zone_from - iterate through zone specific 296 296 * free memblock areas from a given point 297 297 * @i: u64 used as loop variable 298 298 * @zone: zone in which all of the memory blocks reside
+31
include/linux/parport.h
··· 297 297 * parport_register_driver must be a macro so that KBUILD_MODNAME can 298 298 * be expanded 299 299 */ 300 + 301 + /** 302 + * parport_register_driver - register a parallel port device driver 303 + * @driver: structure describing the driver 304 + * 305 + * This can be called by a parallel port device driver in order 306 + * to receive notifications about ports being found in the 307 + * system, as well as ports no longer available. 308 + * 309 + * If devmodel is true then the new device model is used 310 + * for registration. 311 + * 312 + * The @driver structure is allocated by the caller and must not be 313 + * deallocated until after calling parport_unregister_driver(). 314 + * 315 + * If using the non device model: 316 + * The driver's attach() function may block. The port that 317 + * attach() is given will be valid for the duration of the 318 + * callback, but if the driver wants to take a copy of the 319 + * pointer it must call parport_get_port() to do so. Calling 320 + * parport_register_device() on that port will do this for you. 321 + * 322 + * The driver's detach() function may block. The port that 323 + * detach() is given will be valid for the duration of the 324 + * callback, but if the driver wants to take a copy of the 325 + * pointer it must call parport_get_port() to do so. 326 + * 327 + * 328 + * Returns 0 on success. The non device model will always succeeds. 329 + * but the new device model can fail and will return the error code. 330 + **/ 300 331 #define parport_register_driver(driver) \ 301 332 __parport_register_driver(driver, THIS_MODULE, KBUILD_MODNAME) 302 333
+1 -1
include/linux/w1.h
··· 280 280 void w1_unregister_family(struct w1_family *family); 281 281 282 282 /** 283 - * module_w1_driver() - Helper macro for registering a 1-Wire families 283 + * module_w1_family() - Helper macro for registering a 1-Wire families 284 284 * @__w1_family: w1_family struct 285 285 * 286 286 * Helper macro for 1-Wire families which do not do anything special in module
+1 -1
lib/crc7.c
··· 51 51 EXPORT_SYMBOL(crc7_be_syndrome_table); 52 52 53 53 /** 54 - * crc7 - update the CRC7 for the data buffer 54 + * crc7_be - update the CRC7 for the data buffer 55 55 * @crc: previous CRC7 value 56 56 * @buffer: data pointer 57 57 * @len: number of bytes in the buffer
+8 -1
samples/kprobes/kprobe_example.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 /* 3 - * NOTE: This example is works on x86 and powerpc. 4 3 * Here's a sample kernel module showing the use of kprobes to dump a 5 4 * stack trace and selected registers when kernel_clone() is called. 6 5 * ··· 43 44 " pstate = 0x%lx\n", 44 45 p->symbol_name, p->addr, (long)regs->pc, (long)regs->pstate); 45 46 #endif 47 + #ifdef CONFIG_ARM 48 + pr_info("<%s> pre_handler: p->addr = 0x%p, pc = 0x%lx, cpsr = 0x%lx\n", 49 + p->symbol_name, p->addr, (long)regs->ARM_pc, (long)regs->ARM_cpsr); 50 + #endif 46 51 #ifdef CONFIG_S390 47 52 pr_info("<%s> pre_handler: p->addr, 0x%p, ip = 0x%lx, flags = 0x%lx\n", 48 53 p->symbol_name, p->addr, regs->psw.addr, regs->flags); ··· 75 72 #ifdef CONFIG_ARM64 76 73 pr_info("<%s> post_handler: p->addr = 0x%p, pstate = 0x%lx\n", 77 74 p->symbol_name, p->addr, (long)regs->pstate); 75 + #endif 76 + #ifdef CONFIG_ARM 77 + pr_info("<%s> post_handler: p->addr = 0x%p, cpsr = 0x%lx\n", 78 + p->symbol_name, p->addr, (long)regs->ARM_cpsr); 78 79 #endif 79 80 #ifdef CONFIG_S390 80 81 pr_info("<%s> pre_handler: p->addr, 0x%p, flags = 0x%lx\n",
+47 -16
scripts/kernel-doc
··· 382 382 # 'function', 'struct', 'union', 'enum', 'typedef' 383 383 my $decl_type; 384 384 385 + # Name of the kernel-doc identifier for non-DOC markups 386 + my $identifier; 387 + 385 388 my $doc_start = '^/\*\*\s*$'; # Allow whitespace at end of comment start. 386 389 my $doc_end = '\*/'; 387 390 my $doc_com = '\s*\*\s*'; ··· 836 833 next if (defined($nosymbol_table{$section})); 837 834 838 835 if ($output_selection != OUTPUT_INCLUDE) { 836 + print ".. _$section:\n\n"; 839 837 print "**$section**\n\n"; 840 838 } 841 839 print_lineno($section_start_lines{$section}); ··· 1207 1203 $declaration_name = $2; 1208 1204 my $members = $3; 1209 1205 1206 + if ($identifier ne $declaration_name) { 1207 + print STDERR "${file}:$.: warning: expecting prototype for $decl_type $identifier. Prototype was for $decl_type $declaration_name instead\n"; 1208 + return; 1209 + } 1210 + 1210 1211 # ignore members marked private: 1211 1212 $members =~ s/\/\*\s*private:.*?\/\*\s*public:.*?\*\///gosi; 1212 1213 $members =~ s/\/\*\s*private:.*//gosi; ··· 1400 1391 } 1401 1392 1402 1393 if ($members) { 1394 + if ($identifier ne $declaration_name) { 1395 + print STDERR "${file}:$.: warning: expecting prototype for enum $identifier. Prototype was for enum $declaration_name instead\n"; 1396 + return; 1397 + } 1398 + 1403 1399 my %_members; 1404 1400 1405 1401 $members =~ s/\s+$//; ··· 1465 1451 my $args = $3; 1466 1452 $return_type =~ s/^\s+//; 1467 1453 1454 + if ($identifier ne $declaration_name) { 1455 + print STDERR "${file}:$.: warning: expecting prototype for typedef $identifier. Prototype was for typedef $declaration_name instead\n"; 1456 + return; 1457 + } 1458 + 1468 1459 create_parameterlist($args, ',', $file, $declaration_name); 1469 1460 1470 1461 output_declaration($declaration_name, ··· 1495 1476 1496 1477 if ($x =~ /typedef.*\s+(\w+)\s*;/) { 1497 1478 $declaration_name = $1; 1479 + 1480 + if ($identifier ne $declaration_name) { 1481 + print STDERR "${file}:$.: warning: expecting prototype for typedef $identifier. Prototype was for typedef $declaration_name instead\n"; 1482 + return; 1483 + } 1498 1484 1499 1485 output_declaration($declaration_name, 1500 1486 'typedef', ··· 1820 1796 return; 1821 1797 } 1822 1798 1799 + if ($identifier ne $declaration_name) { 1800 + print STDERR "${file}:$.: warning: expecting prototype for $identifier(). Prototype was for $declaration_name() instead\n"; 1801 + return; 1802 + } 1803 + 1823 1804 my $prms = join " ", @parameterlist; 1824 1805 check_sections($file, $declaration_name, "function", $sectcheck, $prms); 1825 1806 ··· 1907 1878 "$prototype\n"; 1908 1879 } else { 1909 1880 $prototype = "static inline void trace_$tracepointname($tracepointargs)"; 1881 + $identifier = "trace_$identifier"; 1910 1882 } 1911 1883 } 1912 1884 ··· 2071 2041 # 2072 2042 sub process_name($$) { 2073 2043 my $file = shift; 2074 - my $identifier; 2075 2044 my $descr; 2076 2045 2077 2046 if (/$doc_block/o) { ··· 2083 2054 } else { 2084 2055 $section = $1; 2085 2056 } 2086 - } 2087 - elsif (/$doc_decl/o) { 2057 + } elsif (/$doc_decl/o) { 2088 2058 $identifier = $1; 2089 - if (/\s*([\w\s]+?)(\(\))?\s*-/) { 2059 + if (/\s*([\w\s]+?)(\(\))?\s*([-:].*)?$/) { 2090 2060 $identifier = $1; 2091 2061 } 2062 + if ($identifier =~ m/^(struct|union|enum|typedef)\b\s*(\S*)/) { 2063 + $decl_type = $1; 2064 + $identifier = $2; 2065 + } else { 2066 + $decl_type = 'function'; 2067 + $identifier =~ s/^define\s+//; 2068 + } 2069 + $identifier =~ s/\s+$//; 2092 2070 2093 2071 $state = STATE_BODY; 2094 2072 # if there's no @param blocks need to set up default section ··· 2103 2067 $contents = ""; 2104 2068 $section = $section_default; 2105 2069 $new_start_line = $. + 1; 2106 - if (/-(.*)/) { 2070 + if (/[-:](.*)/) { 2107 2071 # strip leading/trailing/multiple spaces 2108 2072 $descr= $1; 2109 2073 $descr =~ s/^\s*//; ··· 2121 2085 ++$warnings; 2122 2086 } 2123 2087 2124 - if ($identifier =~ m/^struct\b/) { 2125 - $decl_type = 'struct'; 2126 - } elsif ($identifier =~ m/^union\b/) { 2127 - $decl_type = 'union'; 2128 - } elsif ($identifier =~ m/^enum\b/) { 2129 - $decl_type = 'enum'; 2130 - } elsif ($identifier =~ m/^typedef\b/) { 2131 - $decl_type = 'typedef'; 2132 - } else { 2133 - $decl_type = 'function'; 2088 + if ($identifier eq "") { 2089 + print STDERR "${file}:$.: warning: wrong kernel-doc identifier on line:\n"; 2090 + print STDERR $_; 2091 + ++$warnings; 2092 + $state = STATE_NORMAL; 2134 2093 } 2135 2094 2136 2095 if ($verbose) { 2137 - print STDERR "${file}:$.: info: Scanning doc for $identifier\n"; 2096 + print STDERR "${file}:$.: info: Scanning doc for $decl_type $identifier\n"; 2138 2097 } 2139 2098 } else { 2140 2099 print STDERR "${file}:$.: warning: Cannot understand $_ on line $.",
+2 -2
scripts/sphinx-pre-install
··· 728 728 $need_virtualenv = 1; 729 729 } 730 730 if ($1 < 3) { 731 - # Complain if it finds python2 (or worse) 732 - printf "Warning: python$1 support is deprecated. Use it with caution!\n"; 731 + # Fail if it finds python2 (or worse) 732 + die "Python 3 is required to build the kernel docs\n"; 733 733 } 734 734 } else { 735 735 die "Warning: couldn't identify $python_cmd version!";
+15 -11
tools/testing/selftests/kselftest_harness.h
··· 79 79 #endif 80 80 81 81 /** 82 - * TH_LOG(fmt, ...) 82 + * TH_LOG() 83 83 * 84 84 * @fmt: format string 85 85 * @...: optional arguments ··· 113 113 __FILE__, __LINE__, _metadata->name, ##__VA_ARGS__) 114 114 115 115 /** 116 - * SKIP(statement, fmt, ...) 116 + * SKIP() 117 117 * 118 118 * @statement: statement to run after reporting SKIP 119 119 * @fmt: format string 120 120 * @...: optional arguments 121 + * 122 + * .. code-block:: c 123 + * 124 + * SKIP(statement, fmt, ...); 121 125 * 122 126 * This forces a "pass" after reporting why something is being skipped 123 127 * and runs "statement", which is usually "return" or "goto skip". ··· 140 136 } while (0) 141 137 142 138 /** 143 - * TEST(test_name) - Defines the test function and creates the registration 139 + * TEST() - Defines the test function and creates the registration 144 140 * stub 145 141 * 146 142 * @test_name: test name ··· 159 155 #define TEST(test_name) __TEST_IMPL(test_name, -1) 160 156 161 157 /** 162 - * TEST_SIGNAL(test_name, signal) 158 + * TEST_SIGNAL() 163 159 * 164 160 * @test_name: test name 165 161 * @signal: signal number ··· 199 195 struct __test_metadata __attribute__((unused)) *_metadata) 200 196 201 197 /** 202 - * FIXTURE_DATA(datatype_name) - Wraps the struct name so we have one less 198 + * FIXTURE_DATA() - Wraps the struct name so we have one less 203 199 * argument to pass around 204 200 * 205 201 * @datatype_name: datatype name ··· 216 212 #define FIXTURE_DATA(datatype_name) struct _test_data_##datatype_name 217 213 218 214 /** 219 - * FIXTURE(fixture_name) - Called once per fixture to setup the data and 215 + * FIXTURE() - Called once per fixture to setup the data and 220 216 * register 221 217 * 222 218 * @fixture_name: fixture name ··· 243 239 FIXTURE_DATA(fixture_name) 244 240 245 241 /** 246 - * FIXTURE_SETUP(fixture_name) - Prepares the setup function for the fixture. 242 + * FIXTURE_SETUP() - Prepares the setup function for the fixture. 247 243 * *_metadata* is included so that EXPECT_* and ASSERT_* work correctly. 248 244 * 249 245 * @fixture_name: fixture name ··· 269 265 __attribute__((unused)) *variant) 270 266 271 267 /** 272 - * FIXTURE_TEARDOWN(fixture_name) 268 + * FIXTURE_TEARDOWN() 273 269 * *_metadata* is included so that EXPECT_* and ASSERT_* work correctly. 274 270 * 275 271 * @fixture_name: fixture name ··· 290 286 FIXTURE_DATA(fixture_name) __attribute__((unused)) *self) 291 287 292 288 /** 293 - * FIXTURE_VARIANT(fixture_name) - Optionally called once per fixture 289 + * FIXTURE_VARIANT() - Optionally called once per fixture 294 290 * to declare fixture variant 295 291 * 296 292 * @fixture_name: fixture name ··· 309 305 #define FIXTURE_VARIANT(fixture_name) struct _fixture_variant_##fixture_name 310 306 311 307 /** 312 - * FIXTURE_VARIANT_ADD(fixture_name, variant_name) - Called once per fixture 308 + * FIXTURE_VARIANT_ADD() - Called once per fixture 313 309 * variant to setup and register the data 314 310 * 315 311 * @fixture_name: fixture name ··· 343 339 _##fixture_name##_##variant_name##_variant = 344 340 345 341 /** 346 - * TEST_F(fixture_name, test_name) - Emits test registration and helpers for 342 + * TEST_F() - Emits test registration and helpers for 347 343 * fixture-based test cases 348 344 * 349 345 * @fixture_name: fixture name