diff options
| -rw-r--r-- | syz-ci/jobs.go | 3 | ||||
| -rw-r--r-- | syz-ci/manager.go | 4 | ||||
| -rw-r--r-- | syz-ci/syz-ci.go | 3 |
3 files changed, 10 insertions, 0 deletions
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"` |
