{"id":509,"date":"2023-12-05T00:10:27","date_gmt":"2023-12-05T00:10:27","guid":{"rendered":"http:\/\/embeddedor.com\/blog\/?p=509"},"modified":"2026-04-14T15:56:51","modified_gmt":"2026-04-14T21:56:51","slug":"november-2023-linux-kernel-work","status":"publish","type":"post","link":"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/","title":{"rendered":"November 2023 &#8211; Linux Kernel work"},"content":{"rendered":"<p><a href=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-538 size-large\" src=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e-700x400.png\" alt=\"a71abeb3-f942-4200-b9de-0390f33f904e\" width=\"700\" height=\"400\" srcset=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e-700x400.png 700w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e-300x171.png 300w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e-768x439.png 768w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e-800x457.png 800w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/a71abeb3-f942-4200-b9de-0390f33f904e.png 1792w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#-Wstringop-overflow\" title=\"-Wstringop-overflow\">-Wstringop-overflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#Boot_crash_on_ARM64\" title=\"Boot crash on ARM64\">Boot crash on ARM64<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#-Wflex-array-member-not-at-end\" title=\"-Wflex-array-member-not-at-end\">-Wflex-array-member-not-at-end<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#-Warray-bounds\" title=\"-Warray-bounds\">-Warray-bounds<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#Patch_review_and_ACKs\" title=\"Patch review and ACKs.\">Patch review and ACKs.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#Google_Open_Source_Peer_Bonus_Award\" title=\"Google Open Source Peer Bonus Award\">Google Open Source Peer Bonus Award<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/embeddedor.com\/blog\/2023\/12\/05\/november-2023-linux-kernel-work\/#Acknowledgements\" title=\"Acknowledgements\">Acknowledgements<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"-Wstringop-overflow\"><\/span><strong>-Wstringop-overflow<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Late in October I sent a patch to globally enable the\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-Wstringop-overflow<\/code>compiler option, which finally <a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/next\/linux-next.git\/commit\/?id=89741e7e42f6ab203fe50d80887f6feded326160\">landed in linux-next<\/a> on November 28th. It&#8217;s expected to be merged into mainline during the next merge window, likely in the last couple of weeks of December, but <a href=\"https:\/\/lore.kernel.org\/lkml\/CAHk-=wjsbytYq780PM-Wby_2rPabxg-WT-CRPZZaVYsmLiacHw@mail.gmail.com\/\">&#8220;We&#8217;ll see&#8221;.<\/a> I plan to send a pull request for this to Linus when the time is right. \ud83d\ude42<\/p>\n<p>I&#8217;ll write more about the challenges of enabling this compiler option once it&#8217;s included in 6.8-rc1, early next year. In the meantime, it&#8217;s worth mentioning that several people, including Kees Cook, Arnd Bergmann, and myself, have sent patches to fix <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-Wstringop-overflow<\/code> warnings over the past few years.<\/p>\n<p>Below are the patches that address the last warnings, together with the couple of patches that enable the option in the kernel. The first of them enables the option globally for all versions of GCC. However,\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-Wstringop-overflow<\/code> is buggy in GCC-11. Therefore, I wrote a second patch adding this option under new configuration\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">CC_STRINGOP_OVERFLOW<\/code> in <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">init\/Kconfig<\/code>, which is enabled by default for all versions of GCC except GCC-11. To handle the GCC-11 case I added another configuration: <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">GCC11_NO_STRINGOP_OVERFLOW<\/code>, which will disable <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-Wstringop-overflow<\/code>by default for GCC-11 only.<\/p>\n<ul>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZVPQJIP26dIzRAr6@work\/\">hwmon: (aspeed-pwm-tacho) Fix -Wstringop-overflow warning in aspeed_create_fan_tach_channel()<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/msgid.link\/20231120235436.1569255-1-mpe@ellerman.id.au\">powerpc\/lib: Avoid array bounds warnings in vec ops<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/msgid.link\/20231123071705.397625-1-naveen@kernel.org\">powerpc\/lib: Validate size for vector operations<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/next\/linux-next.git\/commit\/?id=aaa03fdb56c781db4a4831dd5d6ec8817918c726\">crypto: p10-aes-gcm &#8211; Avoid -Wstringop-overflow warnings<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/next\/linux-next.git\/commit\/?id=89741e7e42f6ab203fe50d80887f6feded326160\">Makefile: Enable -Wstringop-overflow globally<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZWj1+jkweEDWbmAR@work\/\">init: Kconfig: Disable -Wstringop-overflow for GCC-11<\/a><\/div>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Boot_crash_on_ARM64\"><\/span><strong>Boot crash on ARM64<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Another relevant task I worked on recently was debugging and fixing a boot crash on ARM64, <a href=\"https:\/\/lore.kernel.org\/linux-hardening\/20231124102458.GB1503258@e124191.cambridge.arm.com\/\">reported by Joey Gouly<\/a>. This issue was interesting as it related to some long-term work in the Kernel Self-Protection Project (KSPP), particularly our efforts to <a href=\"https:\/\/lwn.net\/Articles\/908817\/\">transform &#8220;fake&#8221; flexible arrays into C99 flexible-array members<\/a>. In short, there was a zero-length fake flexible array at the end of a structure annotated with the\u00a0<code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">__randomize_layout<\/code> attribute, which needed to be transformed into a C99 flexible-array member.<\/p>\n<p>This becomes problematic due to how compilers previously treated such arrays before the introduction of <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-fstrict-flex-arrays=3<\/code>. The randstruct GCC plugin treated these arrays as actual flexible arrays, thus leaving their memory layout untouched when the kernel is built with <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">CONFIG_RANDSTRUCT<\/code>. However, after commit <a href=\"https:\/\/git.kernel.org\/linus\/1ee60356c2dc\">1ee60356c2dc (&#8216;gcc-plugins: randstruct: Only warn about true flexible arrays&#8217;)<\/a>, this behavior changed. Fake flexible arrays were no longer treated the same as proper C99 flexible-array members, leading to randomized memory layout for these arrays in structures annotated with <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">__randomize_layout<\/code>, which was the root cause of the boot crash.<\/p>\n<p>To address this, I sent two patches. The first patch is the actual bugfix, which includes the flexible-array transformation. The second patch is complementary to commit <a href=\"https:\/\/git.kernel.org\/linus\/1ee60356c2dc\">1ee60356c2dc<\/a>, updating a code comment to clarify that &#8220;we don&#8217;t randomize the layout of the last element of a struct if it&#8217;s a proper flexible array.&#8221;<\/p>\n<pre id=\"b\"><span class=\"head\"><a id=\"Z31include:net:neighbour.h\" href=\"https:\/\/lore.kernel.org\/all\/ZWJoRsJGnCPdJ3+2@work\/#iZ31include:net:neighbour.h\">diff<\/a> --git a\/include\/net\/neighbour.h b\/include\/net\/neighbour.h\nindex 07022bb0d44d..0d28172193fa 100644\n--- a\/include\/net\/neighbour.h\n+++ b\/include\/net\/neighbour.h\n<\/span><span class=\"hunk\">@@ -162,7 +162,7 @@ struct neighbour {\n<\/span> \tstruct rcu_head\t\trcu;\n \tstruct net_device\t*dev;\n \tnetdevice_tracker\tdev_tracker;\n<span class=\"del\">-\tu8\t\t\tprimary_key[0];\n<\/span><span class=\"add\">+\tu8\t\t\tprimary_key[];\n<\/span> } __randomize_layout;\n \n struct neigh_ops {<\/pre>\n<ul>\n<li><a href=\"https:\/\/lore.kernel.org\/r\/ZWJoRsJGnCPdJ3+2@work\">neighbour: Fix __randomize_layout crash in struct neighbour<\/a><\/li>\n<\/ul>\n<pre id=\"b\"><span class=\"head\"><a id=\"Z31scripts:gcc-plugins:randomize_layout_plugin.c\" href=\"https:\/\/lore.kernel.org\/all\/ZWJr2MWDjXLHE8ap@work\/#iZ31scripts:gcc-plugins:randomize_layout_plugin.c\">diff<\/a> --git a\/scripts\/gcc-plugins\/randomize_layout_plugin.c b\/scripts\/gcc-plugins\/randomize_layout_plugin.c\nindex 910bd21d08f4..746ff2d272f2 100644\n--- a\/scripts\/gcc-plugins\/randomize_layout_plugin.c\n+++ b\/scripts\/gcc-plugins\/randomize_layout_plugin.c\n<\/span><span class=\"hunk\">@@ -339,8 +339,7 @@ static int relayout_struct(tree type)\n<\/span> \n \t\/*\n \t * enforce that we don't randomize the layout of the last\n<span class=\"del\">-\t * element of a struct if it's a 0 or 1-length array\n-\t * or a proper flexible array\n<\/span><span class=\"add\">+\t * element of a struct if it's a proper flexible array\n<\/span> \t *\/\n \tif (is_flexible_array(newtree[num_fields - 1])) {\n \t\thas_flexarray = true;<\/pre>\n<ul>\n<li><a href=\"https:\/\/lore.kernel.org\/r\/ZWJr2MWDjXLHE8ap@work\">gcc-plugins: randstruct: Update code comment in relayout_struct()<\/a><\/li>\n<\/ul>\n<p>These two patches will be soon backported to a couple of <a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/stable\/linux.git\/\">-stable<\/a> trees.<\/p>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"-Wflex-array-member-not-at-end\"><\/span><strong>-Wflex-array-member-not-at-end<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>During my last <a href=\"https:\/\/kernel-recipes.org\/en\/2023\/schedule\/gaining-bounds-checking-on-trailing-arrays-in-the-upstream-linux-kernel\/\">presentation at Kernel Recipes<\/a> in September this year, I discussed a bit about <a href=\"https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Warning-Options.html#index-Wflex-array-member-not-at-end\">-Wflex-array-member-not-at-end<\/a>, which is a compiler option currently under development for <a href=\"https:\/\/gcc.gnu.org\/gcc-14\/changes.html\">GCC-14<\/a>.<\/p>\n<p>One of the highlights of the talk was a 6-year-old bug that I initially uncovered through grepping, and later, while reviewing some build logs from previous months, I realized that <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">-Wflex-array-member-not-at-end<\/code> had also detected this problem:<\/p>\n<ul>\n<li><a href=\"https:\/\/git.kernel.org\/linus\/eea03d18af9c44235865a4bc9bec4d780ef6cf21\">qed\/red_ll2: Fix undefined behavior bug in struct qed_ll2_info<\/a><\/li>\n<\/ul>\n<p>This bugfix was backported to <a href=\"https:\/\/lwn.net\/Articles\/947297\/\">6.5.7<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/947298\/\">6.1.57<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/947299\/\">5.15.135<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/947300\/\">5.10.198<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/947301\/\">5.4.258<\/a> and <a href=\"https:\/\/lwn.net\/Articles\/947302\/\">4.19.296<\/a> stable kernels.<\/p>\n<p>Encouraged by this discovery, I started hunting for more similar bugs. My efforts led to fixing a couple more:<\/p>\n\n\n<\/p>\n<ul class=\"wp-block-list\">\n\n<li><a href=\"https:\/\/git.kernel.org\/linus\/5ad1e217a2b23aa046b241183bd9452d259d70d0\">clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider<\/a><\/li>\n\n \n\n<li><a href=\"https:\/\/git.kernel.org\/linus\/d761bb01c85b22d5b44abe283eb89019693f6595\">clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data<\/a><\/li>\n\n<\/ul>\n<p>\n\n\n<p>On November 28th, these two bugfixes were successfully backported to multiple stable kernel trees. The first fix was applied to the <a href=\"https:\/\/lwn.net\/Articles\/953135\/\">6.6.3<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/953133\/\">6.5.13<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/953132\/\">6.1.64<\/a> stable kernels. The second fix was also applied to these, along with the <a href=\"https:\/\/lwn.net\/Articles\/953130\/\">5.15.140<\/a> stable kernel.<\/p>\n<p>I will have <a href=\"https:\/\/twitter.com\/embeddedgus\/status\/1659295624259334149?s=20\">a lot of fun<\/a> with <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">-Wflex-array-member-not-at-end<\/code> next year. &#x1f604;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"-Warray-bounds\"><\/span><strong>-Warray-bounds<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In addition to these tasks, I continued addressing <code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">-Warray-bounds<\/code>issues. Below are some of the patches I sent for this.<\/p>\n<ul>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZUloNt0HSulJgZNH@work\/\">bcachefs: Use DECLARE_FLEX_ARRAY() helper and fix multiple -Warray-bounds warnings<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZUldRv35EXKHAt3L@work\/\">bcachefs: Fix multiple -Warray-bounds warnings<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/ZVZlg3tPMPCRdteh@work\">xen: privcmd: Replace zero-length array with flex-array member and use __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZVZbX7C5suLMiBf+@work\/\">nouveau\/gsp: replace zero-length array with flex-array member and use __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/ZWYv%2FywR%2FqxUhVSU@work\/\">bcachefs: Replace zero-length arrays with flexible-array members<\/a><\/div>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Patch_review_and_ACKs\"><\/span><strong>Patch review and ACKs.<br \/><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I&#8217;ve also been involved in patch review and providing ACKs. Kees Cook, for instance, has been actively annotating flexible-array members with the<code class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">__counted_by<\/code>attribute, and I&#8217;ve been reviewing those patches.<\/p>\n<ul>\n<li><a href=\"https:\/\/lore.kernel.org\/r\/20230922175337.work.150-kees@kernel.org\">mfd: iqs62x: Annotate struct iqs62x_fw_blk with __counted_by<\/a><\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915200938.never.767-kees@kernel.org\">leds: aw200xx: Annotate struct aw200xx with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915200948.never.728-kees@kernel.org\">leds: cr0014114: Annotate struct cr0014114 with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915200955.never.871-kees@kernel.org\">leds: el15203000: Annotate struct el15203000 with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915201003.never.148-kees@kernel.org\">leds: gpio: Annotate struct gpio_leds_priv with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915201010.never.399-kees@kernel.org\">leds: lm3697: Annotate struct lm3697 with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915201059.never.086-kees@kernel.org\">leds: qcom-lpg: Annotate struct lpg_led with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915201020.never.433-kees@kernel.org\">leds: mt6360: Annotate struct mt6360_priv with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230915201051.never.429-kees@kernel.org\">leds: mt6370: Annotate struct mt6370_priv with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20230922175334.work.335-kees@kernel.org\">firewire: Annotate struct fw_node with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/20231003231718.work.679-kees@kernel.org\/\">net\/mlx5: Annotate struct mlx5_fc_bulk with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/linux-hardening\/20231003231730.work.166-kees@kernel.org\/\">net\/mlx5: Annotate struct mlx5_flow_handle with __counted_by<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20231122222007.3199885-1-arnd@kernel.org\">EDAC\/thunderx: Fix possible out-of-bounds string access<\/a><\/div>\n<\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20231003231838.work.510-kees@kernel.org\">i40e: Annotate struct i40e_qvlist_info with __counted_by<\/a><\/div>\n<\/li>\n<li><a href=\"https:\/\/lore.kernel.org\/r\/20231104204334.work.160-kees@kernel.org\">gcc-plugins: randstruct: Only warn about true flexible arrays<\/a><\/li>\n<li>\n<div class=\"commit-subject\"><a href=\"https:\/\/lore.kernel.org\/r\/20231130200207.work.679-kees@kernel.org\">hwmon: (pc87360) Bounds check data-&gt;innr usage<\/a><\/div>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Google_Open_Source_Peer_Bonus_Award\"><\/span><strong>Google Open Source Peer Bonus Award<br \/><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In other news from November, I want to share that I&#8217;m thrilled to be the recipient of <a href=\"https:\/\/opensource.google\/documentation\/reference\/growing\/peer-bonus\">this award from Google<\/a> for the first time. I feel really grateful and honored! &#x1f642;&#x1f64f;&#x1f3fd;<\/p>\n<p>This comes as a result of my contributions to the Linux kernel over the years.<\/p>\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"962\" height=\"1065\" class=\"wp-image-632\" src=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250.png\" alt=\"\" srcset=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250.png 962w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250-271x300.png 271w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250-700x775.png 700w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250-768x850.png 768w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2023\/12\/Screenshot_20231110-115250-800x886.png 800w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/figure>\n<\/p>\n<p>Honestly, I didn&#8217;t even know about the existence of this award until I received an email from someone at Google informing me about it. However, learning about it made me feel really great!<\/p>\n<p>My appreciation goes out to my teammates in the Kernel Self-Protection Project, especially to <a href=\"https:\/\/fosstodon.org\/@kees\">Kees Cook<\/a>, who has been an invaluable mentor to me over the years. Special thanks to <a href=\"https:\/\/fosstodon.org\/@gregkh@social.kernel.org\">Greg Kroah-Hartman<\/a> as well, who was instrumental in setting me on my journey as a Linux kernel developer.&#x1f468;&#x1f3fd;&#x200d;&#x1f4bb;&#x1f427;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Acknowledgements\"><\/span><strong>Acknowledgements<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Special thanks to <a href=\"https:\/\/www.linuxfoundation.org\/\">The Linux Foundation<\/a> and <a href=\"https:\/\/www.google.com\/\">Google<\/a> for supporting my Linux kernel work. &#x1f642;<\/p>","protected":false},"excerpt":{"rendered":"<p>-Wstringop-overflow Late in October I sent a patch to globally enable the\u00a0-Wstringop-overflowcompiler option, which finally landed in linux-next on November 28th. It&#8217;s expected to be merged into mainline during the next merge window, likely in the last couple of weeks of December, but &#8220;We&#8217;ll see&#8221;. I plan to send a pull request for this to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[31,13,9],"tags":[30],"class_list":["post-509","post","type-post","status-publish","format-standard","hentry","category-wfamnae","category-kernel-self-protection-project","category-linux-kernel-hardening","tag-planet-korg"],"_links":{"self":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/comments?post=509"}],"version-history":[{"count":84,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/509\/revisions"}],"predecessor-version":[{"id":911,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/509\/revisions\/911"}],"wp:attachment":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/media?parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/categories?post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/tags?post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}