1. 08 2月, 2010 1 次提交
  2. 03 2月, 2010 1 次提交
    • R
      uartlite: fix crash when using as console · 03eac7bb
      Richard Röjfors 提交于
      Move the ulite_console_setup to the .devinit section since it might be
      called on probe, which is in devinit.  Fixes the crash below where the
      uartlite hw is probed after the .init section is freed from the kernel.
      
      uartlite: ttyUL0 at MMIO 0xc8000100 (irq = 30) is a uartlite
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: [<c176720e>] ulite_console_setup+0x6f/0xa8
      *pdpt = 0000000036fb0001 *pde = 0000000000000000
      Oops: 0000 [#1] PREEMPT SMP
      last sysfs file: /sys/devices/pci0000:00/0000:00:1f.1/host0/uevent
      Modules linked in: puffin(+) serio_raw
      
      Pid: 151, comm: modprobe Not tainted (2.6.31.5-1.0.b1-b1 #1) POULSBO
      EIP: 0060:[<c176720e>] EFLAGS: 00010246 CPU: 0
      EIP is at ulite_console_setup+0x6f/0xa8
      EAX: c16ec824 EBX: c16ec824 ECX: c176719f EDX: 00000000
      ESI: 00000000 EDI: c17b42c4 EBP: f6fd1cf0 ESP: f6fd1cd8
       DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      Process modprobe (pid: 151, ti=f6fd0000 task=f6fa1020 task.ti=f6fd0000)
      Stack:
       c1031f51 00000000 00000000 00000246 c182237c f7742000 f6fd1d5c c11fd316
      <0> c16ec85c f77420d4 0000001e 00000000 00000000 c1633e78 4f494d4d 63783020
      <0> 30303038 00303031 f6fd1d3c c10e0786 f6fd1d48 00000000 f6fd1d48 00000000
      Call Trace:
       [<c1031f51>] ? register_console+0xf6/0x1fc
       [<c11fd316>] ? uart_add_one_port+0x237/0x2bb
       [<c10e0786>] ? sysfs_add_one+0x13/0xd3
       [<c10e142f>] ? sysfs_do_create_link+0xba/0xfc
       [<c146f200>] ? ulite_probe+0x198/0x1eb
       [<c12064ee>] ? platform_drv_probe+0xc/0xe
       [<c120597b>] ? driver_probe_device+0x79/0x105
       [<c1205a8e>] ? __device_attach+0x28/0x30
       [<c120511f>] ? bus_for_each_drv+0x3d/0x67
       [<c1205af9>] ? device_attach+0x44/0x58
       [<c1205a66>] ? __device_attach+0x0/0x30
       [<c1204fb8>] ? bus_probe_device+0x1f/0x34
       [<c1203e68>] ? device_add+0x385/0x4c0
       [<c148491f>] ? _write_unlock+0x8/0x1f
       [<c1206aac>] ? platform_device_add+0xd9/0x11c
       [<c120c685>] ? mfd_add_devices+0x165/0x1bc
       [<f831b378>] ? puffin_probe+0x2d0/0x390 [puffin]
       [<c11a08ef>] ? pci_match_device+0xa0/0xa7
       [<c11a07bc>] ? local_pci_probe+0xe/0x10
       [<c11a11db>] ? pci_device_probe+0x43/0x66
       [<c120597b>] ? driver_probe_device+0x79/0x105
       [<c1205a4a>] ? __driver_attach+0x43/0x5f
       [<c120535d>] ? bus_for_each_dev+0x3d/0x67
       [<c1205852>] ? driver_attach+0x14/0x16
       [<c1205a07>] ? __driver_attach+0x0/0x5f
       [<c1204dea>] ? bus_add_driver+0xf9/0x220
       [<c1205c8f>] ? driver_register+0x8b/0xeb
       [<c11a1518>] ? __pci_register_driver+0x43/0x9f
       [<c10477ef>] ? __blocking_notifier_call_chain+0x40/0x4c
       [<f831f000>] ? puffin_init+0x0/0x48 [puffin]
       [<f831f017>] ? puffin_init+0x17/0x48 [puffin]
       [<c1001139>] ? do_one_initcall+0x4c/0x131
       [<c105607b>] ? sys_init_module+0xa7/0x1b7
       [<c1002a61>] ? syscall_call+0x7/0xb
       Code: 6e 74 00 00 00 92 33 00 00 18 00 0e 01 73 79 6e 63 65 2d 72 65 67 69 73 74 72 79 0c 00 49 32
      00 00 14 00 09 01 61 6c 73 61 2d 69 <6e> 66 6f 00 00 00 42 37 00 00 10 00 07 01 6b 69 6c 6c 61 6c 6c
      EIP: [<c176720e>] ulite_console_setup+0x6f/0xa8 SS:ESP 0068:f6fd1cd8
      CR2: 0000000000000000
      Signed-off-by: NRichard Röjfors <richard.rojfors@pelagicore.com>
      Acked-by: NPeter Korsgaard <jacmet@sunsite.dk>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      03eac7bb
  3. 23 1月, 2010 1 次提交
  4. 21 1月, 2010 5 次提交
  5. 17 1月, 2010 1 次提交
  6. 15 1月, 2010 2 次提交
  7. 11 1月, 2010 1 次提交
  8. 07 1月, 2010 1 次提交
  9. 24 12月, 2009 2 次提交
  10. 16 12月, 2009 3 次提交
  11. 15 12月, 2009 1 次提交
  12. 12 12月, 2009 14 次提交
  13. 04 12月, 2009 3 次提交
  14. 01 12月, 2009 3 次提交
  15. 29 11月, 2009 1 次提交
    • D
      pcmcia: rework the irq_req_t typedef · 5fa9167a
      Dominik Brodowski 提交于
      Most of the irq_req_t typedef'd struct can be re-worked quite
      easily:
      
      (1) IRQInfo2 was unused in any case, so drop it.
      
      (2) IRQInfo1 was used write-only, so drop it.
      
      (3) Instance (private data to be passed to the IRQ handler):
      	Most PCMCIA drivers using pcmcia_request_irq() to actually
      	register an IRQ handler set the "dev_id" to the same pointer
      	as the "priv" pointer in struct pcmcia_device. Modify the two
      	exceptions (ipwireless, ibmtr_cs) to also work this waym and
      	set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
      
      (4) Handler is to be of type irq_handler_t.
      
      (5) Handler != NULL already tells whether an IRQ handler is present.
      	Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
      	irq_req_t.Attributes.
      
      CC: netdev@vger.kernel.org
      CC: linux-bluetooth@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: alsa-devel@alsa-project.org
      CC: Jaroslav Kysela <perex@perex.cz>
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: Karsten Keil <isdn@linux-pingi.de>
      for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      5fa9167a