User Tools

Site Tools


lkmp:lkmp_task_list

This is an old revision of the document!


Linux Kernel Mentorship Task List

Documentation conversion and updates

The following directories have several .txt file. Please pick 2 files and convert to ReST. There are a few exceptions that should be kept as plain text files.

  • a configuration file whose extension is .txt;
  • a dump of chapter extracted from an old arch-specific manual with seems to be provided by its manufacturer.

Preparing to build the documentation:

There's a script with checks if you have all needed dependencies to build the documentation. It is called automatically when you run make htmldocs. Alternatively, you can call the script directly with:

./scripts/sphinx-pre-install 

Building docs and looking for warns:

Once you have all the requirements, you can do the building with:

make htmldocs > doc_make.log 2>&1

And check the warnings with the following script.

#!/bin/bash
#
# SPDX-License-Identifier: GPL-2.0
#
# Copyright(c) Shuah Khan <skhan@linuxfoundation.org>
# License: GPLv2
#
# Generates wiki format table of task list from Document
# build log
# Usage: gen_doc_task_list.sh <doc_build_log_file>

# Print Table header
echo "| **Task** | **Description** | **Owner** | **Status** | **Commit ID** |"
for f in `egrep "warn|WARN|error|ERROR" $1 | \
        egrep ".c:|.h:|.rst:" | \
        awk -F: '{print $1}' | awk '!a[$0]++' | \
        sed -e "s/^.\///" | sed -e "s/^\/mnt\/data\/lkml\/linux_5.3\///"`
do
        echo "| $f | Fix warns | | | |"
done

Documentation build warn tasks (generated on Linux 5.3.0)

Before starting work on a task, please check the archive first to see if a patch is already in progress. Please avoid duplicated efforts. Liunx Kernel Mentees Archive. Send email to the list informing others that you are working on the task.

Task Description Owner Status Commit ID
lib/genalloc.c Fix warns
include/linux/i2c.h Fix warns
include/linux/regulator/machine.h Fix warns
include/linux/regulator/driver.h Fix warns
include/net/cfg80211.h Fix warns
include/linux/input/sparse-keymap.h Fix warns
mm/util.c Fix warns
mm/slab.c Fix warns
include/linux/spi/spi.h Fix warns
drivers/usb/typec/bus.c Fix warns
drivers/usb/typec/class.c Fix warns
include/net/mac80211.h Fix warns
include/linux/w1.h Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c Fix warns
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h Fix warns
fs/direct-io.c Fix warns
fs/libfs.c Fix warns
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c Fix warns
fs/posix_acl.c Fix warns
include/drm/drm_drv.h Fix warns
include/drm/drm_modeset_helper_vtables.h Fix warns
include/drm/drm_atomic_state_helper.h Fix warns
drivers/gpu/drm/mcde/mcde_drv.c Fix warns
include/linux/skbuff.h Fix warns
include/net/sock.h Fix warns
include/linux/netdevice.h Fix warns
include/linux/lsm_hooks.h Fix warns
include/linux/phylink.h Fix warns
drivers/net/phy/phylink.c Fix warns
Documentation/admin-guide/xfs.rst Fix warns
include/uapi/linux/firewire-cdev.h Fix warns
drivers/firewire/core-transaction.c Fix warns
drivers/ata/libata-core.c Fix warns
drivers/message/fusion/mptbase.c Fix warns
drivers/tty/serial/serial_core.c Fix warns
fs/seq_file.c Fix warns
fs/debugfs/inode.c Fix warns
fs/debugfs/file.c Fix warns
Documentation/index.rst Fix warns
Documentation/kbuild/makefiles.rst Fix warns
include/linux/xarray.h Fix warns
Documentation/crypto/crypto_engine.rst Fix warns
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c Fix warns
include/drm/drm_connector.h Fix warns
Documentation/trace/kprobetrace.rst Fix warns
net/core/dev.c Fix warns
Documentation/security/keys/core.rst Fix warns
Documentation/translations/it_IT/process/maintainer-pgp-guide.rst Fix warns
Documentation/translations/it_IT/process/programming-language.rst Fix warns
Documentation/virt/index.rst Fix warns
include/linux/slab.h Fix warns
Documentation/gpu/drm-internals.rst Fix warns

hrtimer_forward_now() return value is u64

Callers of hrtimer_forward_now() should save the return value in u64. A few callers don't. Fix them.

Name Description File Status
cx88_ir_work() missed is unsigned long drivers/media/pci/cx88/cx88-input.c Open
rtc_pie_update_irq() count is int drivers/rtc/interface.c Open
sched_cfs_period_timer() overrun is int kernel/sched/fair.c Open
sched_rt_period_timer() overrun is int kernel/sched/rt.c Open

Cleanup cppcheck errors

Shifting signed 32-bit value by 31 bits is undefined behaviour errors

These errors aren't real problems for us as compiler takes care of these. However, cleaning these up doesn't hurt, especially in public API headers. Some maintainers might like drivers fixed, on the other hand fixing public API headers first is a good idea. There are two ways to fix this:

  • Change #define FOO (1 « 31) to #define FOO BIT(31) or
  • Adding a “U” cast - changing (1 « 31) to (1U « 31)

cd git_repo_dir

cppcheck –force ./ > cppcheck.out 2>&1

You can run cppcheck on one or more files by passing a list of files: cppcheck –file-list=files

Grep for “Shifting signed 32-bit value by 31 bits is undefined behaviour” errors

You can refer to the one I generated on Linux 5.2-rc3 cppcheck 32-bit log

Linux 5.2-rc3 cppcheck full log

Defines in public headers - include/

File Define Status
uapi/linux/cramfs_fs.h CRAMFS_BLK_FLAG_UNCOMPRESSED Patch sent
uapi/linux/ethtool.h RXH_DISCARD Patch sent
uapi/linux/if_packet.h TP_STATUS_TS_RAW_HARDWARE Fixed
uapi/linux/kfd_ioctl.h KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE Patch sent
uapi/linux/media.h MEDIA_ID_FLAG_NEXT Fixed Patch Sent - use as reference
uapi/linux/nl80211.h NL80211_FEATURE_ND_RANDOM_MAC_ADDR Patch sent
uapi/linux/vfio.h VFIO_REGION_TYPE_PCI_VENDOR_TYPE Open
linux/videodev2.h v4l2_fourcc_be Fixed Patch sent - use as reference
uapi/drm/exynos_drm.h G2D_BUF_USERPTR Open
uapi/rdma/vmw_pvrdma-abi.h PVRDMA_UAR_QP_RECV Open
uapi/rdma/vmw_pvrdma-abi.h PVRDMA_UAR_CQ_POLL Open
linux/ata.h ATA_PRD_EOT Open
linux/cs5535.h CS5536_GPIOM7_PME_FLAG Open
linux/cs5535.h CS5536_GPIOM7_PME_EN Open
linux/ide.h IDE_DFLAG_NIEN_QUIRK Open
linux/ide.h IDE_HFLAG_NO_UNMASK_IRQS Open
linux/pxa2xx_ssp.h SSCR0_MOD Open
linux/pxa2xx_ssp.h SSCR1_TTELP Open
linux/rtsx_pci.h TRIG_DMA Open
linux/rtsx_pci.h HAIMR_TRANS_START Open
linux/rtsx_pci.h CMD_DONE_INT Open
linux/rtsx_pci.h CMD_DONE_INT_EN Open
linux/serial_core.h UPF_IOREMAP Open
media/dvb_frontend.h DVBFE_ALGO_RECOVERY Open
media/dvb_frontend.h DVBFE_ALGO_SEARCH_ERROR Open
net/dst.h DST_FEATURE_ECN_CA (1 « 31) Fixed
net/gue.h GUE_PFLAG_REMCSUM Fixed
rdma/ib_verbs.h IB_QP_CREATE_RESERVED_END Open
rdma/ib_verbs.h IB_SEND_RESERVED_END Open
video/atmel_lcdc.h ATMEL_LCDC_MEMOR Open
video/atmel_lcdc.h ATMEL_LCDC_MEMOR_LITTLE Open
video/pm3fb.h PM3PixelSize_INDIVIDUAL Open
video/pm3fb.h PM3Render2D_TextureEnable Open
video/radeon.h RB2D_DC_BUSY Open
video/radeon.h HORZ_AUTO_RATIO_INC Open

Uninitialized variable errors/warns

Grep for Uninitialized variable errors and send fixes in. Make sure the error is real and not a false. Check to see if it is used before initializing.

lkmp/lkmp_task_list.1569532923.txt.gz · Last modified: 2019/09/26 21:22 by ShuahKhanLF