The Linux codebase has over 3k TODO comments, many from over a decade ago
Out of curiosity, I grabbed a copy of the repository and did some basic searching.<p><pre><code>    $ egrep -icr "\bTODO\b" * | tr ':' '\t' > ../todos
    $ cat ../todos | awk '{sum+=$2;} END{print sum}'
    6372
    $ grep "^Docum" ../todos |  | awk '{sum+=$2;} END{print sum}'
    1172                                        

</code></pre>
So roughly 18% are in Documentation.  The biggest culprit is <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/features/debug/user-ret-profiler/arch-support.txt" rel="nofollow">https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...</a> , because user-ret-profiler appears to only support x86.  All other architectures are in as TODOs<p><pre><code>    $ cat ../todos | sort -n -k 2 | tail
    Documentation/features/debug/user-ret-profiler/arch-support.txt 24
    drivers/media/dvb-core/dvb_ringbuffer.c 26
    drivers/platform/chrome/cros_ec_spi.c   33
    drivers/media/dvb-frontends/drx39xyj/drxj.c     34
    drivers/media/pci/ttpci/av7110_av.c     34
    net/ieee802154/nl802154.c       35
    drivers/crypto/allwinner/sun4i-ss/sun4i-ss-cipher.c     40
    drivers/android/binder.c        48
    drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c       51
    drivers/net/wireless/broadcom/b43/phy_n.c       54
</code></pre>
The biggest single-file culprit for TODOs is in the broadcom b43 drivers, <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wireless/broadcom/b43/phy_n.c" rel="nofollow">https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...</a>.  From what I can clean from phy_n.c, it looks like it's because the linux kernel can't handle revision 19.  There's a lot like:<p><pre><code>     if (dev->phy.rev >= 19) {
      /* TODO */
            } ...
</code></pre>
or<p><pre><code>    static void b43_nphy_tx_cal_radio_setup_rev19(struct b43_wldev *dev)
    {
     /* TODO */
    }</code></pre>