1. 19 Jul, 2009 2 commits
    • Jaswinder Singh Rajput's avatar
      ALSA: OSS sequencer should be initialized after snd_seq_system_client_init · f96e0808
      Jaswinder Singh Rajput authored
      When build SND_SEQUENCER in kernel then OSS sequencer(alsa_seq_oss_init)
      is initialized before System (snd_seq_system_client_init) which leads to
      memory leak :
      
      unreferenced object 0xf6b0e680 (size 256):
        comm "swapper", pid 1, jiffies 4294670753
        backtrace:
          [<c108ac5c>] create_object+0x135/0x204
          [<c108adfe>] kmemleak_alloc+0x26/0x4c
          [<c1087de2>] kmem_cache_alloc+0x72/0xff
          [<c126d2ac>] seq_create_client1+0x22/0x160
          [<c126e3b6>] snd_seq_create_kernel_client+0x72/0xef
          [<c1485a05>] snd_seq_oss_create_client+0x86/0x142
          [<c1485920>] alsa_seq_oss_init+0xf6/0x155
          [<c1001059>] do_one_initcall+0x4f/0x111
          [<c14655be>] kernel_init+0x115/0x166
          [<c10032af>] kernel_thread_helper+0x7/0x10
          [<ffffffff>] 0xffffffff
      unreferenced object 0xf688a580 (size 64):
        comm "swapper", pid 1, jiffies 4294670753
        backtrace:
          [<c108ac5c>] create_object+0x135/0x204
          [<c108adfe>] kmemleak_alloc+0x26/0x4c
          [<c1087de2>] kmem_cache_alloc+0x72/0xff
          [<c126f964>] snd_seq_pool_new+0x1c/0xb8
          [<c126d311>] seq_create_client1+0x87/0x160
          [<c126e3b6>] snd_seq_create_kernel_client+0x72/0xef
          [<c1485a05>] snd_seq_oss_create_client+0x86/0x142
          [<c1485920>] alsa_seq_oss_init+0xf6/0x155
          [<c1001059>] do_one_initcall+0x4f/0x111
          [<c14655be>] kernel_init+0x115/0x166
          [<c10032af>] kernel_thread_helper+0x7/0x10
          [<ffffffff>] 0xffffffff
      unreferenced object 0xf6b0e480 (size 256):
        comm "swapper", pid 1, jiffies 4294670754
        backtrace:
          [<c108ac5c>] create_object+0x135/0x204
          [<c108adfe>] kmemleak_alloc+0x26/0x4c
          [<c1087de2>] kmem_cache_alloc+0x72/0xff
          [<c12725a0>] snd_seq_create_port+0x51/0x21c
          [<c126de50>] snd_seq_ioctl_create_port+0x57/0x13c
          [<c126d07a>] snd_seq_do_ioctl+0x4a/0x69
          [<c126d0de>] snd_seq_kernel_client_ctl+0x33/0x49
          [<c1485a74>] snd_seq_oss_create_client+0xf5/0x142
          [<c1485920>] alsa_seq_oss_init+0xf6/0x155
          [<c1001059>] do_one_initcall+0x4f/0x111
          [<c14655be>] kernel_init+0x115/0x166
          [<c10032af>] kernel_thread_helper+0x7/0x10
          [<ffffffff>] 0xffffffff
      
      The correct order should be :
      
      System (snd_seq_system_client_init) should be initialized before
      OSS sequencer(alsa_seq_oss_init) which is equivalent to :
      
      1. insmod sound/core/seq/snd-seq-device.ko
      2. insmod sound/core/seq/snd-seq.ko
      3. insmod sound/core/seq/snd-seq-midi-event.ko
      4. insmod sound/core/seq/oss/snd-seq-oss.ko
      
      Including sound/core/seq/oss/Makefile after other seq modules
      fixes the ordering and memory leak.
      Signed-off-by: default avatarJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f96e0808
    • Julia Lawall's avatar
      ALSA: sound/isa: convert nested spin_lock_irqsave to spin_lock · fcb2954b
      Julia Lawall authored
      If spin_lock_irqsave is called twice in a row with the same second
      argument, the interrupt state at the point of the second call overwrites
      the value saved by the first call.  Indeed, the second call does not need
      to save the interrupt state, so it is changed to a simple spin_lock.
      
      The semantic match that finds this problem is as follows:
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @@
      expression lock1,lock2;
      expression flags;
      @@
      
      *spin_lock_irqsave(lock1,flags)
      ... when != flags
      *spin_lock_irqsave(lock2,flags)
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      fcb2954b
  2. 15 Jul, 2009 1 commit
  3. 29 Jun, 2009 1 commit
  4. 24 Jun, 2009 36 commits