User Tools

Site Tools


lkmp:lkmp_task_list

This is an old revision of the document!


Linux Kernel Mentorship Task List

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 Open
uapi/linux/ethtool.h RXH_DISCARD Open
uapi/linux/if_packet.h TP_STATUS_TS_RAW_HARDWARE Open
uapi/linux/kfd_ioctl.h KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE Open
uapi/linux/media.h MEDIA_ID_FLAG_NEXT Patch Sent - use as reference
uapi/linux/nl80211.h NL80211_FEATURE_ND_RANDOM_MAC_ADDR Open
uapi/linux/vfio.h VFIO_REGION_TYPE_PCI_VENDOR_TYPE Open
linux/videodev2.h v4l2_fourcc_be 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) Open
net/gue.h GUE_PFLAG_REMCSUM Open
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.1560626594.txt.gz · Last modified: 2019/06/15 19:23 by ShuahKhanLF