aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/instance/instance.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-05-17 14:50:18 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-05-17 14:50:18 +0200
commit6595937c34ea6357fb93780c3b5548ffc238526d (patch)
tree288cbe0e09209d53549766976eab52dccbd72461 /pkg/instance/instance.go
parent9c84f7c395e74f3b5aafcad217e9bb8b574fb290 (diff)
tools/create-gce-image.sh: support both nbd and loop
Pass target OS/arch and VM type to kernel.CreateImage. Use nbd for gce and loop for qemu VM type.
Diffstat (limited to 'pkg/instance/instance.go')
-rw-r--r--pkg/instance/instance.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go
index eb9a06205..ae94c265f 100644
--- a/pkg/instance/instance.go
+++ b/pkg/instance/instance.go
@@ -79,14 +79,15 @@ func (env *Env) BuildSyzkaller(repo, commit string) error {
}
func (env *Env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile string, kernelConfig []byte) error {
- if err := kernel.Build(env.cfg.KernelSrc, compilerBin, kernelConfig); err != nil {
+ cfg := env.cfg
+ if err := kernel.Build(cfg.KernelSrc, compilerBin, kernelConfig); err != nil {
return fmt.Errorf("kernel build failed: %v", err)
}
- env.cfg.Vmlinux = filepath.Join(env.cfg.KernelSrc, "vmlinux")
- env.cfg.Image = filepath.Join(env.cfg.Workdir, "syz-image")
- env.cfg.SSHKey = filepath.Join(env.cfg.Workdir, "syz-key")
- if err := kernel.CreateImage(env.cfg.KernelSrc, userspaceDir,
- cmdlineFile, sysctlFile, env.cfg.Image, env.cfg.SSHKey); err != nil {
+ cfg.Vmlinux = filepath.Join(cfg.KernelSrc, "vmlinux")
+ cfg.Image = filepath.Join(cfg.Workdir, "syz-image")
+ cfg.SSHKey = filepath.Join(cfg.Workdir, "syz-key")
+ if err := kernel.CreateImage(cfg.TargetOS, cfg.TargetVMArch, cfg.Type,
+ cfg.KernelSrc, userspaceDir, cmdlineFile, sysctlFile, cfg.Image, cfg.SSHKey); err != nil {
return fmt.Errorf("image build failed: %v", err)
}
return nil