aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Jiao <quic_jiangenj@quicinc.com>2024-06-11 10:53:25 +0800
committerAleksandr Nogikh <nogikh@google.com>2024-06-17 08:56:33 +0000
commit1f11cfd7279ff3046e6e7f871eeb195c48ccbfa9 (patch)
tree55aa542603741d637db9be636fa48210f6383c59
parentc1349e08b8ce2abf7e86375364268d8f696d077c (diff)
all: always use KernelModule ptr to unify usage
-rw-r--r--pkg/cover/backend/backend.go2
-rw-r--r--pkg/cover/backend/dwarf.go2
-rw-r--r--pkg/cover/backend/elf.go2
-rw-r--r--pkg/cover/backend/gvisor.go2
-rw-r--r--pkg/cover/backend/mach-o.go2
-rw-r--r--pkg/cover/backend/modules.go4
-rw-r--r--pkg/cover/canonicalizer.go10
-rw-r--r--pkg/cover/canonicalizer_test.go8
-rw-r--r--pkg/cover/report.go2
-rw-r--r--pkg/vminfo/linux.go6
-rw-r--r--pkg/vminfo/netbsd.go2
-rw-r--r--pkg/vminfo/openbsd.go2
-rw-r--r--pkg/vminfo/vminfo.go6
-rw-r--r--syz-manager/cover.go2
-rw-r--r--syz-manager/covfilter.go2
-rw-r--r--syz-manager/rpc.go2
-rw-r--r--tools/syz-cover/syz-cover.go6
17 files changed, 31 insertions, 31 deletions
diff --git a/pkg/cover/backend/backend.go b/pkg/cover/backend/backend.go
index fa4b8303a..bba483fa8 100644
--- a/pkg/cover/backend/backend.go
+++ b/pkg/cover/backend/backend.go
@@ -60,7 +60,7 @@ type Range struct {
const LineEnd = 1 << 30
func Make(target *targets.Target, vm, objDir, srcDir, buildDir string, splitBuild bool,
- moduleObj []string, modules []KernelModule) (*Impl, error) {
+ moduleObj []string, modules []*KernelModule) (*Impl, error) {
if objDir == "" {
return nil, fmt.Errorf("kernel obj directory is not specified")
}
diff --git a/pkg/cover/backend/dwarf.go b/pkg/cover/backend/dwarf.go
index b01e8a0d1..1eb6dd146 100644
--- a/pkg/cover/backend/dwarf.go
+++ b/pkg/cover/backend/dwarf.go
@@ -30,7 +30,7 @@ type dwarfParams struct {
buildDir string
splitBuildDelimiters []string
moduleObj []string
- hostModules []KernelModule
+ hostModules []*KernelModule
readSymbols func(*KernelModule, *symbolInfo) ([]*Symbol, error)
readTextData func(*KernelModule) ([]byte, error)
readModuleCoverPoints func(*targets.Target, *KernelModule, *symbolInfo) ([2][]uint64, error)
diff --git a/pkg/cover/backend/elf.go b/pkg/cover/backend/elf.go
index 45c841a68..f4f288314 100644
--- a/pkg/cover/backend/elf.go
+++ b/pkg/cover/backend/elf.go
@@ -15,7 +15,7 @@ import (
)
func makeELF(target *targets.Target, objDir, srcDir, buildDir string, splitBuildDelimiters, moduleObj []string,
- hostModules []KernelModule) (*Impl, error) {
+ hostModules []*KernelModule) (*Impl, error) {
return makeDWARF(&dwarfParams{
target: target,
objDir: objDir,
diff --git a/pkg/cover/backend/gvisor.go b/pkg/cover/backend/gvisor.go
index 9d4fc68b3..ed8a316cd 100644
--- a/pkg/cover/backend/gvisor.go
+++ b/pkg/cover/backend/gvisor.go
@@ -14,7 +14,7 @@ import (
"github.com/google/syzkaller/sys/targets"
)
-func makeGvisor(target *targets.Target, objDir, srcDir, buildDir string, modules []KernelModule) (*Impl, error) {
+func makeGvisor(target *targets.Target, objDir, srcDir, buildDir string, modules []*KernelModule) (*Impl, error) {
if len(modules) != 0 {
return nil, fmt.Errorf("gvisor coverage does not support modules")
}
diff --git a/pkg/cover/backend/mach-o.go b/pkg/cover/backend/mach-o.go
index d56cf010f..5f7eb78a0 100644
--- a/pkg/cover/backend/mach-o.go
+++ b/pkg/cover/backend/mach-o.go
@@ -14,7 +14,7 @@ import (
)
func makeMachO(target *targets.Target, objDir, srcDir, buildDir string,
- moduleObj []string, hostModules []KernelModule) (*Impl, error) {
+ moduleObj []string, hostModules []*KernelModule) (*Impl, error) {
return makeDWARF(&dwarfParams{
target: target,
objDir: objDir,
diff --git a/pkg/cover/backend/modules.go b/pkg/cover/backend/modules.go
index 6fe3c6fcc..b91ca8025 100644
--- a/pkg/cover/backend/modules.go
+++ b/pkg/cover/backend/modules.go
@@ -23,7 +23,7 @@ type KernelModule struct {
}
func discoverModules(target *targets.Target, objDir string, moduleObj []string,
- hostModules []KernelModule) (
+ hostModules []*KernelModule) (
[]*KernelModule, error) {
modules := []*KernelModule{
// A dummy module representing the kernel itself.
@@ -42,7 +42,7 @@ func discoverModules(target *targets.Target, objDir string, moduleObj []string,
return modules, nil
}
-func discoverModulesLinux(dirs []string, hostModules []KernelModule) ([]*KernelModule, error) {
+func discoverModulesLinux(dirs []string, hostModules []*KernelModule) ([]*KernelModule, error) {
paths, err := locateModules(dirs)
if err != nil {
return nil, err
diff --git a/pkg/cover/canonicalizer.go b/pkg/cover/canonicalizer.go
index 26a9e86ee..b1f866963 100644
--- a/pkg/cover/canonicalizer.go
+++ b/pkg/cover/canonicalizer.go
@@ -12,7 +12,7 @@ import (
type Canonicalizer struct {
// Map of modules stored as module name:kernel module.
- modules map[string]KernelModule
+ modules map[string]*KernelModule
// Contains a sorted list of the canonical module addresses.
moduleKeys []uint64
@@ -48,13 +48,13 @@ type canonicalizerModule struct {
discard bool
}
-func NewCanonicalizer(modules []KernelModule, flagSignal bool) *Canonicalizer {
+func NewCanonicalizer(modules []*KernelModule, flagSignal bool) *Canonicalizer {
// Return if not using canonicalization.
if len(modules) == 0 || !flagSignal {
return &Canonicalizer{}
}
// Create a map of canonical module offsets by name.
- canonicalModules := make(map[string]KernelModule)
+ canonicalModules := make(map[string]*KernelModule)
for _, module := range modules {
canonicalModules[module.Name] = module
}
@@ -68,7 +68,7 @@ func NewCanonicalizer(modules []KernelModule, flagSignal bool) *Canonicalizer {
}
}
-func (can *Canonicalizer) NewInstance(modules []KernelModule) *CanonicalizerInstance {
+func (can *Canonicalizer) NewInstance(modules []*KernelModule) *CanonicalizerInstance {
if can.moduleKeys == nil {
return &CanonicalizerInstance{}
}
@@ -130,7 +130,7 @@ func (ci *CanonicalizerInstance) Decanonicalize(elems []uint64) []uint64 {
}
// Store sorted list of addresses. Used to binary search when converting PCs.
-func setModuleKeys(moduleKeys []uint64, modules []KernelModule) {
+func setModuleKeys(moduleKeys []uint64, modules []*KernelModule) {
for idx, module := range modules {
moduleKeys[idx] = module.Addr
}
diff --git a/pkg/cover/canonicalizer_test.go b/pkg/cover/canonicalizer_test.go
index ace2f6231..5a8fa2fb7 100644
--- a/pkg/cover/canonicalizer_test.go
+++ b/pkg/cover/canonicalizer_test.go
@@ -244,7 +244,7 @@ func (serv *RPCServer) runTest(val canonicalizeValue) string {
return ""
}
-func (serv *RPCServer) connect(name string, modules []KernelModule, flagSignal bool) {
+func (serv *RPCServer) connect(name string, modules []*KernelModule, flagSignal bool) {
if !serv.modulesInitialized {
serv.canonicalModules = NewCanonicalizer(modules, flagSignal)
serv.modulesInitialized = true
@@ -255,10 +255,10 @@ func (serv *RPCServer) connect(name string, modules []KernelModule, flagSignal b
}
}
-func initModules(addrs, sizes []uint64) []KernelModule {
- var modules []KernelModule
+func initModules(addrs, sizes []uint64) []*KernelModule {
+ var modules []*KernelModule
for idx, addr := range addrs {
- modules = append(modules, KernelModule{
+ modules = append(modules, &KernelModule{
Name: strconv.FormatInt(int64(idx), 10),
Addr: addr,
Size: sizes[idx],
diff --git a/pkg/cover/report.go b/pkg/cover/report.go
index 2e1403cfe..4a557c252 100644
--- a/pkg/cover/report.go
+++ b/pkg/cover/report.go
@@ -31,7 +31,7 @@ type Prog struct {
type KernelModule = backend.KernelModule
func MakeReportGenerator(cfg *mgrconfig.Config, subsystem []mgrconfig.Subsystem,
- modules []KernelModule, rawCover bool) (*ReportGenerator, error) {
+ modules []*KernelModule, rawCover bool) (*ReportGenerator, error) {
impl, err := backend.Make(cfg.SysTarget, cfg.Type, cfg.KernelObj,
cfg.KernelSrc, cfg.KernelBuildSrc, cfg.AndroidSplitBuild, cfg.ModuleObj, modules)
if err != nil {
diff --git a/pkg/vminfo/linux.go b/pkg/vminfo/linux.go
index 2735ad0ef..b038778a1 100644
--- a/pkg/vminfo/linux.go
+++ b/pkg/vminfo/linux.go
@@ -43,8 +43,8 @@ func (linux) machineInfos() []machineInfoFunc {
}
}
-func (linux) parseModules(files filesystem) ([]cover.KernelModule, error) {
- var modules []cover.KernelModule
+func (linux) parseModules(files filesystem) ([]*cover.KernelModule, error) {
+ var modules []*cover.KernelModule
re := regexp.MustCompile(`(\w+) ([0-9]+) .*(0[x|X][a-fA-F0-9]+)[^\n]*`)
modulesText, _ := files.ReadFile("/proc/modules")
for _, match := range re.FindAllSubmatch(modulesText, -1) {
@@ -65,7 +65,7 @@ func (linux) parseModules(files filesystem) ([]cover.KernelModule, error) {
return nil, fmt.Errorf("module %v size parsing error: %w", name, err)
}
offset := modAddr - textAddr
- modules = append(modules, cover.KernelModule{
+ modules = append(modules, &cover.KernelModule{
Name: name,
Addr: textAddr,
Size: modSize - offset,
diff --git a/pkg/vminfo/netbsd.go b/pkg/vminfo/netbsd.go
index cb6c1b33a..d447e33c5 100644
--- a/pkg/vminfo/netbsd.go
+++ b/pkg/vminfo/netbsd.go
@@ -18,7 +18,7 @@ func (netbsd) checkFiles() []string {
return nil
}
-func (netbsd) parseModules(files filesystem) ([]cover.KernelModule, error) {
+func (netbsd) parseModules(files filesystem) ([]*cover.KernelModule, error) {
return nil, nil
}
diff --git a/pkg/vminfo/openbsd.go b/pkg/vminfo/openbsd.go
index 07ada0a98..7ecb96f81 100644
--- a/pkg/vminfo/openbsd.go
+++ b/pkg/vminfo/openbsd.go
@@ -18,7 +18,7 @@ func (openbsd) checkFiles() []string {
return nil
}
-func (openbsd) parseModules(files filesystem) ([]cover.KernelModule, error) {
+func (openbsd) parseModules(files filesystem) ([]*cover.KernelModule, error) {
return nil, nil
}
diff --git a/pkg/vminfo/vminfo.go b/pkg/vminfo/vminfo.go
index 103ee0a18..a880f2f5b 100644
--- a/pkg/vminfo/vminfo.go
+++ b/pkg/vminfo/vminfo.go
@@ -57,7 +57,7 @@ func New(cfg *mgrconfig.Config) *Checker {
}
}
-func (checker *Checker) MachineInfo(fileInfos []*flatrpc.FileInfo) ([]cover.KernelModule, []byte, error) {
+func (checker *Checker) MachineInfo(fileInfos []*flatrpc.FileInfo) ([]*cover.KernelModule, []byte, error) {
files := createVirtualFilesystem(fileInfos)
modules, err := checker.parseModules(files)
if err != nil {
@@ -106,7 +106,7 @@ type machineInfoFunc func(files filesystem, w io.Writer) (string, error)
type checker interface {
RequiredFiles() []string
checkFiles() []string
- parseModules(files filesystem) ([]cover.KernelModule, error)
+ parseModules(files filesystem) ([]*cover.KernelModule, error)
machineInfos() []machineInfoFunc
syscallCheck(*checkContext, *prog.Syscall) string
}
@@ -166,7 +166,7 @@ func (stub) checkFiles() []string {
return nil
}
-func (stub) parseModules(files filesystem) ([]cover.KernelModule, error) {
+func (stub) parseModules(files filesystem) ([]*cover.KernelModule, error) {
return nil, nil
}
diff --git a/syz-manager/cover.go b/syz-manager/cover.go
index 0e396700b..c9e01ebb5 100644
--- a/syz-manager/cover.go
+++ b/syz-manager/cover.go
@@ -17,7 +17,7 @@ var (
cachedRepGen *cover.ReportGenerator
)
-func getReportGenerator(cfg *mgrconfig.Config, modules []cover.KernelModule) (*cover.ReportGenerator, error) {
+func getReportGenerator(cfg *mgrconfig.Config, modules []*cover.KernelModule) (*cover.ReportGenerator, error) {
cachedRepGenMu.Lock()
defer cachedRepGenMu.Unlock()
if cachedRepGen == nil {
diff --git a/syz-manager/covfilter.go b/syz-manager/covfilter.go
index 0393841ae..ee2eb715f 100644
--- a/syz-manager/covfilter.go
+++ b/syz-manager/covfilter.go
@@ -17,7 +17,7 @@ import (
"github.com/google/syzkaller/pkg/mgrconfig"
)
-func createCoverageFilter(cfg *mgrconfig.Config, modules []cover.KernelModule) ([]uint64, map[uint64]struct{}, error) {
+func createCoverageFilter(cfg *mgrconfig.Config, modules []*cover.KernelModule) ([]uint64, map[uint64]struct{}, error) {
if !cfg.HasCovFilter() {
return nil, nil, nil
}
diff --git a/syz-manager/rpc.go b/syz-manager/rpc.go
index 7e4a8b634..422a6be00 100644
--- a/syz-manager/rpc.go
+++ b/syz-manager/rpc.go
@@ -42,7 +42,7 @@ type RPCServer struct {
baseSource *queue.DynamicSourceCtl
enabledFeatures flatrpc.Feature
setupFeatures flatrpc.Feature
- modules []cover.KernelModule
+ modules []*cover.KernelModule
canonicalModules *cover.Canonicalizer
execCoverFilter []uint64 // includes both coverage and comparison PCs
coverFilter map[uint64]struct{} // includes only coverage PCs
diff --git a/tools/syz-cover/syz-cover.go b/tools/syz-cover/syz-cover.go
index 1b5846ebf..e15ae9b24 100644
--- a/tools/syz-cover/syz-cover.go
+++ b/tools/syz-cover/syz-cover.go
@@ -52,7 +52,7 @@ func main() {
if err != nil {
tool.Fail(err)
}
- var modules []cover.KernelModule
+ var modules []*cover.KernelModule
if *flagModules != "" {
m, err := loadModules(*flagModules)
if err != nil {
@@ -151,12 +151,12 @@ func readPCs(files []string) ([]uint64, error) {
return pcs, nil
}
-func loadModules(fname string) ([]cover.KernelModule, error) {
+func loadModules(fname string) ([]*cover.KernelModule, error) {
data, err := os.ReadFile(fname)
if err != nil {
return nil, err
}
- var modules []cover.KernelModule
+ var modules []*cover.KernelModule
err = json.Unmarshal(data, &modules)
if err != nil {
return nil, err