From 4f9b680bf7d56a0023c4ec0e87207c77de7d276a Mon Sep 17 00:00:00 2001 From: Kris Alder Date: Tue, 17 Oct 2023 11:43:11 -0700 Subject: syz-ci: add kernel_src_suffix field to config This is used to add a suffix to the kernel_src config field. This is used in Android where kernel source is under .../kernel/aosp/. --- syz-ci/jobs.go | 3 +++ syz-ci/manager.go | 4 ++++ syz-ci/syz-ci.go | 3 +++ 3 files changed, 10 insertions(+) diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go index b2d996cf4..d8092ad0e 100644 --- a/syz-ci/jobs.go +++ b/syz-ci/jobs.go @@ -366,6 +366,9 @@ func (jp *JobProcessor) process(job *Job) *dashapi.JobDoneReq { *mgrcfg = *mgr.managercfg mgrcfg.Workdir = filepath.Join(dir, "workdir") mgrcfg.KernelSrc = filepath.Join(dir, "kernel") + if mgr.mgrcfg.KernelSrcSuffix != "" { + mgrcfg.KernelSrc = filepath.Join(dir, "kernel", mgr.mgrcfg.KernelSrcSuffix) + } mgrcfg.Syzkaller = filepath.Join(dir, "gopath", "src", "github.com", "google", "syzkaller") os.RemoveAll(mgrcfg.Workdir) defer os.RemoveAll(mgrcfg.Workdir) diff --git a/syz-ci/manager.go b/syz-ci/manager.go index 306081ad6..b1746184a 100644 --- a/syz-ci/manager.go +++ b/syz-ci/manager.go @@ -143,6 +143,10 @@ func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}, debug: debug, } + if mgrcfg.KernelSrcSuffix != "" { + mgr.kernelDir = path.Join(kernelDir, mgrcfg.KernelSrcSuffix) + } + os.RemoveAll(mgr.currentDir) return mgr, nil } diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go index ad4a45523..7beb6ad88 100644 --- a/syz-ci/syz-ci.go +++ b/syz-ci/syz-ci.go @@ -178,6 +178,9 @@ type ManagerConfig struct { Ccache string `json:"ccache"` Userspace string `json:"userspace"` KernelConfig string `json:"kernel_config"` + // KernelSrcSuffiz adds a suffix to the kernel_src manager config. This is needed for cases where + // the kernel source root as reported in the coverage UI is a subdirectory of the VCS root. + KernelSrcSuffix string `json:"kernel_src_suffix"` // Build-type-specific parameters. // Parameters for concrete types are in Config type in pkg/build/TYPE.go, e.g. pkg/build/android.go. Build json.RawMessage `json:"build"` -- cgit mrf-deployment