From: Greg Kroah-Hartman This changes the MTD core to handle pci_name() now returning a constant string. Cc: David Woodhouse Signed-off-by: Greg Kroah-Hartman Signed-off-by: Andrew Morton --- drivers/mtd/devices/block2mtd.c | 8 +++++--- include/linux/mtd/map.h | 2 +- include/linux/mtd/mtd.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff -puN drivers/mtd/devices/block2mtd.c~mtd-handle-pci_name-being-const drivers/mtd/devices/block2mtd.c --- a/drivers/mtd/devices/block2mtd.c~mtd-handle-pci_name-being-const +++ a/drivers/mtd/devices/block2mtd.c @@ -236,6 +236,7 @@ static struct block2mtd_dev *add_device( { struct block_device *bdev; struct block2mtd_dev *dev; + char *name; if (!devname) return NULL; @@ -274,12 +275,13 @@ static struct block2mtd_dev *add_device( /* Setup the MTD structure */ /* make the name contain the block device in */ - dev->mtd.name = kmalloc(sizeof("block2mtd: ") + strlen(devname), + name = kmalloc(sizeof("block2mtd: ") + strlen(devname) + 1, GFP_KERNEL); - if (!dev->mtd.name) + if (!name) goto devinit_err; - sprintf((char *)dev->mtd.name, "block2mtd: %s", devname); + sprintf(name, "block2mtd: %s", devname); + dev->mtd.name = name; dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK; dev->mtd.erasesize = erase_size; diff -puN include/linux/mtd/map.h~mtd-handle-pci_name-being-const include/linux/mtd/map.h --- a/include/linux/mtd/map.h~mtd-handle-pci_name-being-const +++ a/include/linux/mtd/map.h @@ -188,7 +188,7 @@ typedef union { */ struct map_info { - char *name; + const char *name; unsigned long size; resource_size_t phys; #define NO_XIP (-1UL) diff -puN include/linux/mtd/mtd.h~mtd-handle-pci_name-being-const include/linux/mtd/mtd.h --- a/include/linux/mtd/mtd.h~mtd-handle-pci_name-being-const +++ a/include/linux/mtd/mtd.h @@ -119,7 +119,7 @@ struct mtd_info { u_int32_t oobavail; // Available OOB bytes per block // Kernel-only stuff starts here. - char *name; + const char *name; int index; /* ecc layout structure pointer - read only ! */ _