OSDN Git Service

Merge tag 'sh-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubit...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2023 21:46:57 +0000 (14:46 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2023 21:46:57 +0000 (14:46 -0700)
Pull sh updates from Adrian Glaubitz:

 - Fix a use-after-free bug in the push-switch driver (Duoming Zhou)

 - Fix calls to dma_declare_coherent_memory() that incorrectly passed
   the buffer end address instead of the buffer size as the size
   parameter

* tag 'sh-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
  sh: push-switch: Reorder cleanup operations to avoid use-after-free bug
  sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()

1  2 
arch/sh/boards/mach-ecovec24/setup.c
arch/sh/boards/mach-kfr2r09/setup.c

@@@ -386,7 -386,7 +386,7 @@@ static struct property_entry gpio_backl
  };
  
  static struct gpio_backlight_platform_data gpio_backlight_data = {
 -      .fbdev = &lcdc_device.dev,
 +      .dev = &lcdc_device.dev,
  };
  
  static const struct platform_device_info gpio_backlight_device_info = {
@@@ -1454,15 -1454,13 +1454,13 @@@ static int __init arch_setup(void
        device_initialize(&ecovec_ceu_devices[0]->dev);
        dma_declare_coherent_memory(&ecovec_ceu_devices[0]->dev,
                                    ceu0_dma_membase, ceu0_dma_membase,
-                                   ceu0_dma_membase +
-                                   CEU_BUFFER_MEMORY_SIZE - 1);
+                                   CEU_BUFFER_MEMORY_SIZE);
        platform_device_add(ecovec_ceu_devices[0]);
  
        device_initialize(&ecovec_ceu_devices[1]->dev);
        dma_declare_coherent_memory(&ecovec_ceu_devices[1]->dev,
                                    ceu1_dma_membase, ceu1_dma_membase,
-                                   ceu1_dma_membase +
-                                   CEU_BUFFER_MEMORY_SIZE - 1);
+                                   CEU_BUFFER_MEMORY_SIZE);
        platform_device_add(ecovec_ceu_devices[1]);
  
        gpiod_add_lookup_table(&cn12_power_gpiod_table);
@@@ -202,7 -202,7 +202,7 @@@ static struct platform_device kfr2r09_s
  };
  
  static struct lv5207lp_platform_data kfr2r09_backlight_data = {
 -      .fbdev = &kfr2r09_sh_lcdc_device.dev,
 +      .dev = &kfr2r09_sh_lcdc_device.dev,
        .def_value = 13,
        .max_value = 13,
  };
@@@ -603,7 -603,7 +603,7 @@@ static int __init kfr2r09_devices_setup
        device_initialize(&kfr2r09_ceu_device.dev);
        dma_declare_coherent_memory(&kfr2r09_ceu_device.dev,
                        ceu_dma_membase, ceu_dma_membase,
-                       ceu_dma_membase + CEU_BUFFER_MEMORY_SIZE - 1);
+                       CEU_BUFFER_MEMORY_SIZE);
  
        platform_device_add(&kfr2r09_ceu_device);