if (!eeepc)
                return -ENOMEM;
        eeepc->handle = device->handle;
-       strcpy(acpi_device_name(device), EEEPC_ACPI_DEVICE_NAME);
-       strcpy(acpi_device_class(device), EEEPC_ACPI_CLASS);
+       strscpy(acpi_device_name(device), EEEPC_ACPI_DEVICE_NAME);
+       strscpy(acpi_device_class(device), EEEPC_ACPI_CLASS);
        device->driver_data = eeepc;
        eeepc->device = device;
 
 
        pcc->handle = device->handle;
        pcc->num_sifr = num_sifr;
        device->driver_data = pcc;
-       strcpy(acpi_device_name(device), ACPI_PCC_DEVICE_NAME);
-       strcpy(acpi_device_class(device), ACPI_PCC_CLASS);
+       strscpy(acpi_device_name(device), ACPI_PCC_DEVICE_NAME);
+       strscpy(acpi_device_class(device), ACPI_PCC_CLASS);
 
        result = acpi_pcc_init_input(pcc);
        if (result) {
 
        struct sony_nc_value *item;
 
        sony_nc_acpi_device = device;
-       strcpy(acpi_device_class(device), "sony/hotkey");
+       strscpy(acpi_device_class(device), "sony/hotkey");
 
        sony_nc_acpi_handle = device->handle;
 
        struct sony_pic_irq *irq, *tmp_irq;
 
        spic_dev.acpi_dev = device;
-       strcpy(acpi_device_class(device), "sony/hotkey");
+       strscpy(acpi_device_class(device), "sony/hotkey");
        sony_pic_detect_device_type(&spic_dev);
        mutex_init(&spic_dev.lock);
 
 
        }
 
        ibm->acpi->device->driver_data = ibm;
-       sprintf(acpi_device_class(ibm->acpi->device), "%s/%s",
-               TPACPI_ACPI_EVENT_PREFIX,
-               ibm->name);
+       scnprintf(acpi_device_class(ibm->acpi->device),
+                 sizeof(acpi_device_class(ibm->acpi->device)),
+                 "%s/%s", TPACPI_ACPI_EVENT_PREFIX, ibm->name);
 
        status = acpi_install_notify_handler(*ibm->acpi->handle,
                        ibm->acpi->type, dispatch_acpi_notify, ibm);
 
        if (!topstar)
                return -ENOMEM;
 
-       strcpy(acpi_device_name(device), "Topstar TPSACPI");
-       strcpy(acpi_device_class(device), TOPSTAR_LAPTOP_CLASS);
+       strscpy(acpi_device_name(device), "Topstar TPSACPI");
+       strscpy(acpi_device_class(device), TOPSTAR_LAPTOP_CLASS);
        device->driver_data = topstar;
        topstar->device = device;
 
 
        const struct acpi_device_id *id;
        struct ebook_switch *button;
        struct input_dev *input;
-       char *name, *class;
        int error;
 
        button = kzalloc(sizeof(struct ebook_switch), GFP_KERNEL);
                goto err_free_button;
        }
 
-       name = acpi_device_name(device);
-       class = acpi_device_class(device);
-
        id = acpi_match_acpi_device(ebook_device_ids, device);
        if (!id) {
                dev_err(&device->dev, "Unsupported hid\n");
                goto err_free_input;
        }
 
-       strcpy(name, XO15_EBOOK_DEVICE_NAME);
-       sprintf(class, "%s/%s", XO15_EBOOK_CLASS, XO15_EBOOK_SUBCLASS);
+       strscpy(acpi_device_name(device), XO15_EBOOK_DEVICE_NAME);
+       strscpy(acpi_device_class(device), XO15_EBOOK_CLASS "/" XO15_EBOOK_SUBCLASS);
 
        snprintf(button->phys, sizeof(button->phys), "%s/button/input0", id->id);
 
-       input->name = name;
+       input->name = acpi_device_name(device);
        input->phys = button->phys;
        input->id.bustype = BUS_HOST;
        input->dev.parent = &device->dev;