diff --git a/software/kernel/spec-core.c b/software/kernel/spec-core.c index 16b00dcf203b2ed600b23cf7433f6fbe1f9ebf30..a8ee61571a308921a183c2772e5add978ef08de4 100644 --- a/software/kernel/spec-core.c +++ b/software/kernel/spec-core.c @@ -82,16 +82,9 @@ static ssize_t spec_dbg_fw_write(struct file *file, return count; } -static int spec_dbg_fw_open(struct inode *inode, struct file *file) -{ - file->private_data = inode->i_private; - - return 0; -} - static const struct file_operations spec_dbg_fw_ops = { .owner = THIS_MODULE, - .open = spec_dbg_fw_open, + .open = simple_open, .write = spec_dbg_fw_write, }; @@ -279,12 +272,10 @@ static int spec_gpio_init_table(struct spec_gn412x *spec_gn412x) struct gpiod_lookup_table *lookup; int err = 0; - lookup = kzalloc(spec_gpiod_table_size(), GFP_KERNEL); + lookup = kmemdup(&spec_gpiod_table, spec_gpiod_table_size(), GFP_KERNEL); if (!lookup) return -ENOMEM; - memcpy(lookup, &spec_gpiod_table, spec_gpiod_table_size()); - lookup->dev_id = kstrdup(dev_name(&spec_gn412x->pdev->dev), GFP_KERNEL); if (!lookup->dev_id) goto err_dup;