The application process at any project within Outreachy program requires you to download the project and play a bit with the code before submitting the application.
So I did !
For Linux Kernel I cloned the source code of the staging tree and started checking the code. Once downloaded, I looked over files in directory /drivers/staging. It contains a series of drivers that are still under development or do not yet comply with the standard so they are not available for use yet. This is the exact reason there is work to be done on them.
If you do not have experience working with Git there is also a tutorial available which explains step by step the setup and commands you will need to create patches.
The process of finding irregularities in the source code is automated, using scripts found in staging tree at path /scripts. Scripts like checkpatch and kernel-doc are excellent to start with because they point out mostly coding style and comment style errors. I suggest starting with very simple changes just to get used to it. Careful ! This tools also have the bad habit of reporting false positives so pay attention and make only correct changes.
After a few trivial patches I got further to understanding Coccinelle. This is a pretty awesome tool that permits automated finding and / or correcting problems in source code. It has its own language used to define patterns of code to be found [and eventually replaced] in C sources. I found extremely useful for understanding Coccinelle this presentation and this set of examples.
Finally, I made more advanced changes finding irregularities by static analysis. I simplified return flow for a function and also caught some unhandled error code values.
Here you can find the full list of accepted patches I had during the application process.
Good luck ! 🙂