linux/arch/arm/mach-omap1
Linus Torvalds 2ad7b44f5d Merge branch 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull clkdev updates from Russell King:
 "This series addresses some breakage in clkdev caused by a previous
  patch set from the clk tree which introduced per-user clk structures.
  This basically renamed the existing 'struct clk' to 'struct clk_hw',
  and introduced a new 'struct clk'.

  This change will break anyone using clk_add_alias() with the common
  clk code enabled.  Thankfully, the intersection of users of
  clk_add_alias() and those using the common clk code is practically
  zero, but this is something which should be fixed to keep the code
  sane.

  The problem is that clk_add_alias() does this:

        r = clk_get(...);
        l = clkdev_alloc(r, ...);
        clk_put(...);

  which causes the alias to store a pointer to 'r', which has been
  freed.

  The original patch set tried to work around this problem incorrectly -
  at clk_get() time, it tried to convert the struct clk to a struct
  clk_hw, and then creating a new struct clk from that.  Clearly, if the
  original struct clk has been freed, then we have a use-after-free bug.

  We have other places in the tree which do something similar, so this
  series also addresses those locations too.

  This series addresses this problem by converting clkdev to store and
  use the clk_hw pointer.  This allows clk_get() to only have to create
  it's per-user struct clk from the clk_hw.  We can also get to the
  desired clk_hw at clk_add_alias() or clk lookup creation time, when
  the struct clk is "alive".

  We also perform some cleanups of the code:

   - replacing looped calls to clkdev_add() with clkdev_add_table()

   - replacing open-coded lookup allocation (which should have been
     using clkdev_alloc()) and subsequent clkdev_add() with
     clkdev_create()

   - replacing open-coded clk_add_alias() with clk_add_alias()"

* 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
  clk: s2mps11: use clkdev_create()
  ASoC: migor: use clkdev_create()
  ARM: omap2: use clkdev_add_alias()
  ARM: omap2: use clkdev_create()
  ARM: orion: use clkdev_create()
  ARM: lpc32xx: convert to use clkdev_add_table()
  SH: use clkdev_add_table()
  clkdev: add clkdev_create() helper
  clkdev: const-ify connection id to clk_add_alias()
  clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h
  clkdev: drop __init from clkdev_add_table()
  clk: update clk API documentation to clarify clk_round_rate()
  clkdev: use clk_hw internally
2015-06-23 15:50:46 -07:00
..
include/mach ARM: 8271/1: omap1: Migrate debug_ll macros to use 8250.S 2015-01-21 15:49:39 +00:00
ams-delta-fiq-handler.S ARM: OMAP1: Move board-ams-delta.h from plat to mach 2012-09-20 15:02:19 -07:00
ams-delta-fiq.c arm: omap: Fix typo in ams-delta-fiq.c 2014-03-20 12:44:02 +01:00
board-ams-delta.c Merge branch 'clocksource/cleanup' into next/cleanup 2013-01-14 10:20:02 -08:00
board-fsample.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
board-generic.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
board-h2-mmc.c ARM: OMAP: Split plat/mmc.h into local headers and platform_data 2012-10-15 12:09:43 -07:00
board-h2.c ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
board-h2.h
board-h3-mmc.c ARM: OMAP: Split plat/mmc.h into local headers and platform_data 2012-10-15 12:09:43 -07:00
board-h3.c ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
board-h3.h
board-htcherald.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
board-innovator.c ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
board-nand.c
board-nokia770.c clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h 2015-05-06 11:58:51 +01:00
board-osk.c ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
board-palmte.c ARM: OMAP1: Remove legacy irda.h and irda setup from board files 2013-06-18 00:12:34 -07:00
board-palmtt.c ARM: OMAP1: Remove legacy irda.h and irda setup from board files 2013-06-18 00:12:34 -07:00
board-palmz71.c ARM: OMAP1: Remove legacy irda.h and irda setup from board files 2013-06-18 00:12:34 -07:00
board-perseus2.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
board-sx1-mmc.c ARM: OMAP: Split plat/mmc.h into local headers and platform_data 2012-10-15 12:09:43 -07:00
board-sx1.c ARM: OMAP: SX1: remove check for CONFIG_SX1_OLD_FLASH 2014-05-16 14:12:05 -07:00
board-voiceblue.c reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
clock_data.c ARM: OMAP1: fix USB host on 1710 2013-03-13 04:10:57 -06:00
clock.c ARM: OMAP: Split sram.h to local headers and minimal shared header 2012-10-31 10:14:13 -07:00
clock.h ARM: OMAP: clock: split plat/clkdev_omap.h into OMAP1/2 files 2012-10-18 16:23:30 -07:00
common.h ARM: mach-omap1: Fix omap1510_fpga_init_irq() implicit declarations. 2013-10-08 11:04:22 -07:00
devices.c ARM: OMAP1: Remove duplicated DMA channel definitions 2013-06-18 00:12:34 -07:00
dma.c dmaengine: omap-dma: move register read/writes into omap-dma.c 2014-04-04 00:31:49 +01:00
fb.c ARM: OMAP: Split fb.c to remove last remaining cpu_is_omap usage 2012-12-17 10:50:40 -08:00
flash.c ARM: OMAP1: Move plat/tc.h to mach/tc.h for omap1 2012-10-17 11:36:40 -07:00
fpga.c ARM: OMAP: remove deprecated IRQF_DISABLED 2013-10-03 13:24:36 -07:00
fpga.h ARM: OMAP: Fix relative includes for fpga.h 2012-10-31 15:37:14 -07:00
gpio7xx.c ARM: OMAP1: Fix a bunch of GPIO related section warnings after initdata got corrected 2013-10-18 10:50:51 -07:00
gpio15xx.c ARM: OMAP1: Fix a bunch of GPIO related section warnings after initdata got corrected 2013-10-18 10:50:51 -07:00
gpio16xx.c ARM: OMAP1: Fix a bunch of GPIO related section warnings after initdata got corrected 2013-10-18 10:50:51 -07:00
i2c.c ARM: OMAP: Fix i2c cmdline initcall for multiplatform 2013-01-11 11:24:19 -08:00
id.c ARM: OMAP: Split plat/cpu.h into local soc.h for mach-omap1 and mach-omap2 2012-10-18 16:23:46 -07:00
io.c ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h 2012-11-30 08:41:50 -08:00
iomap.h ARM: OMAP1: Remove relative includes 2012-10-31 15:37:14 -07:00
irq.c ARM: OMAP1: irq.c: Remove unused function 2015-01-07 09:53:51 -08:00
Kconfig ARM: OMAP1: remove "config MACH_OMAP_HTCWIZARD" 2013-04-01 08:52:27 -07:00
lcd_dma.c ARM: OMAP1: Remove dma.h 2013-06-18 00:12:34 -07:00
Makefile mailbox/omap: move the OMAP mailbox framework to drivers 2013-06-11 11:41:51 -05:00
Makefile.boot
mcbsp.c ARM: OMAP1: Remove McBSP DMA channel definitions 2013-06-18 00:12:34 -07:00
mmc.h ARM: OMAP: Split plat/mmc.h into local headers and platform_data 2012-10-15 12:09:43 -07:00
mux.c
ocpi.c omap16xx: Removes fixme no longer needed in ocpi_enable() 2014-07-08 01:15:36 -07:00
opp_data.c ARM: OMAP: clock: split plat/clkdev_omap.h into OMAP1/2 files 2012-10-18 16:23:30 -07:00
opp.h
pm_bus.c arm: omap1: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS 2015-05-12 23:55:38 +02:00
pm.c ARM: OMAP1: PM: fix some build warnings on 1510-only Kconfigs 2015-03-16 16:09:23 -07:00
pm.h
reset.c reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
serial.c ARM: OMAP: Make plat/fpga.h local to arch/arm/plat-omap 2012-10-17 11:36:37 -07:00
sleep.S ARM: OMAP1: Remove relative includes 2012-10-31 15:37:14 -07:00
soc.h ARM: OMAP1: Remove relative includes 2012-10-31 15:37:14 -07:00
sram-init.c ARM: OMAP: Move omap1 specific code to local sram.c 2012-10-31 10:14:14 -07:00
sram.h ARM: OMAP: Split sram.h to local headers and minimal shared header 2012-10-31 10:14:13 -07:00
sram.S
time.c ARM: OMAP1: Switch to sched_clock_register() 2013-11-21 15:41:00 -08:00
timer32k.c ARM: OMAP1: timer32k.c: Remove unused function 2015-01-07 09:53:51 -08:00
timer.c ARM: OMAP: Add platform data header for DMTIMERs 2012-11-16 10:35:08 -06:00
usb.c ARM: OMAP1: fix omap_udc registration 2013-04-08 13:59:51 -07:00