#include <linux/pci.h>
 #include <linux/dma-mapping.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/module.h>
 #include <sound/core.h>
 #include <sound/initval.h>
        pcm->info_flags = 0;
        switch(device) {
        case 0:
-               strcpy(pcm->name, "EMU10K1X Front");
+               strscpy(pcm->name, "EMU10K1X Front");
                map = snd_pcm_std_chmaps;
                break;
        case 1:
-               strcpy(pcm->name, "EMU10K1X Rear");
+               strscpy(pcm->name, "EMU10K1X Rear");
                map = surround_map;
                break;
        case 2:
-               strcpy(pcm->name, "EMU10K1X Center/LFE");
+               strscpy(pcm->name, "EMU10K1X Center/LFE");
                map = clfe_map;
                break;
        }
        spin_lock_init(&midi->open_lock);
        spin_lock_init(&midi->input_lock);
        spin_lock_init(&midi->output_lock);
-       strcpy(rmidi->name, name);
+       strscpy(rmidi->name, name);
        snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_emu10k1x_midi_output);
        snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, &snd_emu10k1x_midi_input);
        rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT |
 
        snd_emu10k1x_proc_init(chip);
 
-       strcpy(card->driver, "EMU10K1X");
-       strcpy(card->shortname, "Dell Sound Blaster Live!");
+       strscpy(card->driver, "EMU10K1X");
+       strscpy(card->shortname, "Dell Sound Blaster Live!");
        sprintf(card->longname, "%s at 0x%lx irq %i",
                card->shortname, chip->port, chip->irq);
 
 
 #include <linux/capability.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/vmalloc.h>
 #include <linux/init.h>
 #include <linux/mutex.h>
                               const char *name, int gpr, int defval, int defval_hr)
 {
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, name);
+       strscpy(ctl->id.name, name);
        ctl->vcount = ctl->count = 1;
        if (high_res_gpr_volume) {
                ctl->min = -1;
                                 const char *name, int gpr, int defval, int defval_hr)
 {
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, name);
+       strscpy(ctl->id.name, name);
        ctl->vcount = ctl->count = 2;
        if (high_res_gpr_volume) {
                ctl->min = -1;
                                    const char *name, int gpr, int defval)
 {
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, name);
+       strscpy(ctl->id.name, name);
        ctl->vcount = ctl->count = 1;
        ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
        ctl->min = 0;
                                      const char *name, int gpr, int defval)
 {
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, name);
+       strscpy(ctl->id.name, name);
        ctl->vcount = ctl->count = 2;
        ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
        ctl->gpr[1] = gpr + 1; ctl->value[1] = defval;
        /* clear TRAM data & address lines */
        memset(icode->tram_valid, 0xff, 256 / 8);
 
-       strcpy(icode->name, "Audigy DSP code for ALSA");
+       strscpy(icode->name, "Audigy DSP code for ALSA");
        ptr = 0;
        nctl = 0;
        gpr_map[bit_shifter16] = 0x00008000;
         */
        ctl = &controls[nctl + 0];
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, "Tone Control - Bass");
+       strscpy(ctl->id.name, "Tone Control - Bass");
        ctl->vcount = 2;
        ctl->count = 10;
        ctl->min = 0;
        ctl->translation = EMU10K1_GPR_TRANSLATION_BASS;
        ctl = &controls[nctl + 1];
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, "Tone Control - Treble");
+       strscpy(ctl->id.name, "Tone Control - Treble");
        ctl->vcount = 2;
        ctl->count = 10;
        ctl->min = 0;
        /* clear TRAM data & address lines */
        memset(icode->tram_valid, 0xff, 160 / 8);
 
-       strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
+       strscpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
        ptr = 0; i = 0;
        /* we have 12 inputs */
        playback = SND_EMU10K1_INPUTS;
         */
        ctl = &controls[i + 0];
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, "Tone Control - Bass");
+       strscpy(ctl->id.name, "Tone Control - Bass");
        ctl->vcount = 2;
        ctl->count = 10;
        ctl->min = 0;
        ctl->translation = EMU10K1_GPR_TRANSLATION_BASS;
        ctl = &controls[i + 1];
        ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
-       strcpy(ctl->id.name, "Tone Control - Treble");
+       strscpy(ctl->id.name, "Tone Control - Treble");
        ctl->vcount = 2;
        ctl->count = 10;
        ctl->min = 0;
        err = snd_hwdep_new(emu->card, "FX8010", device, &hw);
        if (err < 0)
                return err;
-       strcpy(hw->name, "EMU10K1 (FX8010)");
+       strscpy(hw->name, "EMU10K1 (FX8010)");
        hw->iface = SNDRV_HWDEP_IFACE_EMU10K1;
        hw->ops.open = snd_emu10k1_fx8010_open;
        hw->ops.ioctl = snd_emu10k1_fx8010_ioctl;
 
 
 #include <linux/time.h>
 #include <linux/init.h>
+#include <linux/string.h>
 #include <sound/core.h>
 #include <sound/emu10k1.h>
 #include <linux/delay.h>
 {
        struct snd_ctl_elem_id id;
        memset(&id, 0, sizeof(id));
-       strcpy(id.name, name);
+       strscpy(id.name, name);
        id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
        return snd_ctl_remove_id(card, &id);
 }
        } else {
        no_ac97:
                if (emu->card_capabilities->ecard)
-                       strcpy(emu->card->mixername, "EMU APS");
+                       strscpy(emu->card->mixername, "EMU APS");
                else if (emu->audigy)
-                       strcpy(emu->card->mixername, "SB Audigy");
+                       strscpy(emu->card->mixername, "SB Audigy");
                else
-                       strcpy(emu->card->mixername, "Emu10k1");
+                       strscpy(emu->card->mixername, "Emu10k1");
        }
 
        if (emu->audigy)