1. 06 Jul, 2006 13 commits
    • Tejun Heo's avatar
      [PATCH] sata_sil: separate out sil_init_controller() · 3d8ec913
      Tejun Heo authored
      Separate out controller initialization from sil_init_one() into
      sil_init_controller().  This will be used by resume.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      3d8ec913
    • Tejun Heo's avatar
      [PATCH] libata: reimplement controller-wide PM · 500530f6
      Tejun Heo authored
      Reimplement controller-wide PM.  ata_host_set_suspend/resume() are
      defined to suspend and resume a host_set.  While suspended, EHs for
      all ports in the host_set are pegged using ATA_FLAG_SUSPENDED and
      frozen.
      
      Because SCSI device hotplug is done asynchronously against the rest of
      libata EH and the same mutex is used when adding new device, suspend
      cannot wait for hotplug to complete.  So, if SCSI device hotplug is in
      progress, suspend fails with -EBUSY.
      
      In most cases, host_set resume is followed by device resume.  As each
      resume operation requires a reset, a single host_set-wide resume
      operation may result in multiple resets.  To avoid this, resume waits
      upto 1 second giving PM to request resume for devices.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      500530f6
    • Tejun Heo's avatar
      [PATCH] libata: reimplement per-dev PM · d6f26d1f
      Tejun Heo authored
      Reimplement per-dev PM.  The original implementation directly put the
      device into suspended mode and didn't synchronize w/ EH operations
      including hotplug.  This patch reimplements ata_scsi_device_suspend()
      and ata_scsi_device_resume() such that they request EH to perform the
      respective operations.  Both functions synchronize with hotplug such
      that it doesn't operate on detached devices.
      
      Suspend waits for completion but resume just issues request and
      returns.  This allows parallel wake up of devices and thus speeds up
      system resume.
      
      Due to sdev detach synchronization, it's not feasible to separate out
      EH requesting from sdev handling; thus, ata_device_suspend/resume()
      are removed and everything is implemented in the respective
      libata-scsi functions.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      d6f26d1f
    • Tejun Heo's avatar
      [PATCH] libata: implement PM EH actions · 02670bf3
      Tejun Heo authored
      Implement two PM per-dev EH actions - ATA_EH_SUSPEND and
      ATA_EH_RESUME.  Each action puts the target device into suspended mode
      and resumes from it respectively.
      
      Once a device is put to suspended mode, no EH operations other than
      RESUME is allowed on the device.  The device will stay suspended till
      it gets resumed and thus reset and revalidated.  To implement this, a
      new device state helper - ata_dev_ready() - is implemented and used in
      EH action implementations to make them operate only on attached &
      running devices.
      
      If all possible devices on a port are suspended, reset is skipped too.
      This prevents spurious events including hotplug events from disrupting
      suspended devices.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      02670bf3
    • Tejun Heo's avatar
      [PATCH] libata: separate out __ata_ehi_hotplugged() · c0b6c037
      Tejun Heo authored
      Separate out __ata_ehi_hotplugged() from ata_ehi_hotplugged().  The
      underscored version doesn't set AC_ERR_ATA_BUS.  This will be used for
      resume which is a hotplug event but not an ATA bus error.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      c0b6c037
    • Tejun Heo's avatar
      [PATCH] libata: implement ATA_EHI_NO_AUTOPSY and QUIET · 1cdaf534
      Tejun Heo authored
      Implement ATA_EHI_NO_AUTOPSY and QUIET.  These used to be implied by
      ATA_PFLAG_LOADING, but new power management and PMP support need to
      use these separately.  e.g. Suspend/resume operations shouldn't print
      full EH messages and resume shouldn't be recorded as an error.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      1cdaf534
    • Tejun Heo's avatar
      [PATCH] libata: clean up debounce parameters and improve parameter selection · e9c83914
      Tejun Heo authored
      The names of predefined debounce timing parameters didn't exactly
      match their usages.  Rename to more generic names and implement param
      selection helper sata_ehc_deb_timing() which uses EHI_HOTPLUGGED to
      select params.
      
      Combined with the previous EHI_RESUME_LINK differentiation, this makes
      parameter selection accurate.  e.g. user scan resumes link but normal
      deb param is used instead of hotplug param.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      e9c83914
    • Tejun Heo's avatar
      [PATCH] libata: implement ATA_EHI_RESUME_LINK · 28324304
      Tejun Heo authored
      Implement ATA_EHI_RESUME_LINK, which indicates that the link needs to
      be resumed.  This used to be implied by ATA_EHI_HOTPLUGGED.  However,
      hotplug isn't the only event which requires link resume and separating
      this out allows other places to request link resume.  This
      differentiation also allows better debounce timing selection.
      
      This patch converts user scan to use ATA_EHI_RESUME_LINK.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      28324304
    • Tejun Heo's avatar
      [PATCH] libata: replace ap_lock w/ ap->lock in ata_scsi_error() · e30349d2
      Tejun Heo authored
      ap_lock was used because &ap->host_set->lock was too long and used a
      lot.  Now that &ap->host_set->lock is replaced with ap->lock, there's
      no reason to keep ap_lock.
      
      [ed. note: that's not entirely true.  ap_lock is a local variable,
      caching the results of a de-ref.  In theory, if the compiler is smart
      enough, this patch is cosmetic.  However, since this is not a fast
      path (it is the error path), this patch is nonetheless acceptable,
      even though it _may_ introduce a performance regression.]
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      e30349d2
    • Tejun Heo's avatar
      [PATCH] libata: fix ehc->i.action setting in ata_eh_autopsy() · 0662c58b
      Tejun Heo authored
      ata_eh_autopsy() used to directly assign determined action mask to
      ehc->i.action thus overriding actions set by some of nested analyze
      functions.  This patch makes ata_eh_autopsy() add action masks just as
      it's done in other places.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      0662c58b
    • Tejun Heo's avatar
      [PATCH] libata: add ap->pflags and move core dynamic flags to it · b51e9e5d
      Tejun Heo authored
      ap->flags is way too clamped.  Separate out core dynamic flags to
      ap->pflags.  ATA_FLAG_DISABLED is a dynamic flag but left alone as
      it's referenced by a lot of LLDs and it's gonna be removed once all
      LLDs are converted to new EH.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      b51e9e5d
    • Brian King's avatar
      [PATCH] libata: Conditionally set host->max_cmd_len · e6d902a3
      Brian King authored
      In preparation for SAS attached SATA devices, which will
      not have a libata scsi_host, only setup host->max_cmd_len
      if ap->host exists.
      Signed-off-by: default avatarBrian King <brking@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      e6d902a3
    • Martin Hicks's avatar
      [PATCH] sata_vsc: data_xfer should use mmio · a93620b8
      Martin Hicks authored
      Hi,
      
      sata_vsc is an MMIO device, and should use the correct data_xfer
      function.  This problem was introduced by:
      
         commit a6b2c5d4
         Author: Alan Cox <alan@lxorguk.ukuu.org.uk>
         Date:   Mon May 22 16:59:59 2006 +0100
      
              [PATCH] PATCH: libata. Add ->data_xfer method
      Signed-off-by: default avatarMartin Hicks <mort@bork.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      a93620b8
  2. 05 Jul, 2006 3 commits
  3. 04 Jul, 2006 24 commits
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq · ca78f6ba
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
        Move workqueue exports to where the functions are defined.
        [CPUFREQ] Misc cleanups in ondemand.
        [CPUFREQ] Make ondemand sampling per CPU and remove the mutex usage in sampling path.
        [CPUFREQ] Add queue_delayed_work_on() interface for workqueues.
        [CPUFREQ] Remove slowdown from ondemand sampling path.
      ca78f6ba
    • Linus Torvalds's avatar
      Fix up headers_install wrt devfs removal · 7ad7153b
      Linus Torvalds authored
      No devfs_fs.h header any more..
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7ad7153b
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/hdrinstall-2.6 · 6fa0cb11
      Linus Torvalds authored
      * git://git.infradead.org/hdrinstall-2.6:
        Remove export of include/linux/isdn/tpam.h
        Remove <linux/i2c-id.h> and <linux/i2c-algo-ite.h> from userspace export
        Restrict headers exported to userspace for SPARC and SPARC64
        Add empty Kbuild files for 'make headers_install' in remaining arches.
        Add Kbuild file for Alpha 'make headers_install'
        Add Kbuild file for SPARC 'make headers_install'
        Add Kbuild file for IA64 'make headers_install'
        Add Kbuild file for S390 'make headers_install'
        Add Kbuild file for i386 'make headers_install'
        Add Kbuild file for x86_64 'make headers_install'
        Add Kbuild file for PowerPC 'make headers_install'
        Add generic Kbuild files for 'make headers_install'
        Basic implementation of 'make headers_check'
        Basic implementation of 'make headers_install'
      6fa0cb11
    • Arjan van de Ven's avatar
      [PATCH] fix AB-BA deadlock inversion at cs46xx_dsp_remove_scb · c6482dde
      Arjan van de Ven authored
      There is a code sequence where the locking is substream->self_group.lock
      -> ins->scbs[index].lock
      
      substream->self_group.lock is interrupt safe, and taken from irq context
      as well (trace is snipped for brevity)
      
      so what can happen is
      
         cpu 0                   	cpu 1
         user context			user context
      
      				take ins->scbs[index].lock without disabling interrupts
      
         get substream->self_group.lock (irqsafe)
         try to get ins->scbs[index].lock (spins)
      
      				interrupt happens
      				try to get substream->self_group.lock (spins)
      
      which is an obvious AB-BA deadlock
      
      fix is to just take the lock with _irqsafe
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Acked-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c6482dde
    • Zach Brown's avatar
      [PATCH] mthca: initialize send and receive queue locks separately · a46f9484
      Zach Brown authored
      mthca: initialize send and receive queue locks separately
      
      lockdep identifies a lock by the call site of its initialization.  By
      initializing the send and receive queue locks in mthca_wq_init() we confuse
      lockdep.  It warns that that the ordered acquiry of both locks in
      mthca_modify_qp() is recursive acquiry of one lock:
      
        =============================================
        [ INFO: possible recursive locking detected ]
        ---------------------------------------------
        modprobe/1192 is trying to acquire lock:
         (&wq->lock){....}, at: [<f892b4db>] mthca_modify_qp+0x60/0xa7b [ib_mthca]
        but task is already holding lock:
         (&wq->lock){....}, at: [<f892b4ce>] mthca_modify_qp+0x53/0xa7b [ib_mthca]
      
      Initializing the locks separately in mthca_alloc_qp_common() stops the
      warning and will let lockdep enforce proper ordering on paths that acquire
      both locks.
      Signed-off-by: default avatarZach Brown <zach.brown@oracle.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a46f9484
    • Yasunori Goto's avatar
      [PATCH] Fix copying of pgdat array on each node for ia64 memory hotplug · dd8041f1
      Yasunori Goto authored
      I found a bug in memory hot-add code for ia64.
      
      IA64's code has copies of pgdat's array on each node to reduce memory
      access over crossing node.  This array is used by NODE_DATA() macro.  When
      new node is hot-added, this pgdat's array should be updated and copied on
      new node too.
      
      However, I used for_each_online_node() in scatter_node_data() to copy
      it. This meant its array is not copied on new node.
      Because initialization of structures for new node was halfway,
      so online_node_map couldn't be set at this time.
      
      To copy arrays on new node, I changed it to check value of pgdat_list[]
      which is source array of copies.  I tested this patch with my Memory Hotadd
      emulation on Tiger4.  This patch is for 2.6.17-git20.
      Signed-off-by: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      dd8041f1
    • Greg Ungerer's avatar
      [PATCH] uclinux: fix proc_task()/get_proc-task() naming · 31304c90
      Greg Ungerer authored
      Fix changed name of proc_task() to get_proc_task().
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      31304c90
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · e82ca043
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (44 commits)
        ACPI: remove function tracing macros from drivers/acpi/*.c
        ACPI: add support for Smart Battery
        ACPI: handle battery notify event on broken BIOS
        ACPI: handle AC notify event on broken BIOS
        ACPI: asus_acpi: add S1N WLED control
        ACPI: asus_acpi: correct M6N/M6R display nodes
        ACPI: asus_acpi: add S1N WLED control
        ACPI: asus_acpi: rework model detection
        ACPI: asus_acpi: support L5D
        ACPI: asus_acpi: handle internal Bluetooth / support W5A
        ACPI: asus_acpi: support A4G
        ACPI: asus_acpi: support W3400N
        ACPI: asus_acpi: LED display support
        ACPI: asus_acpi: support A3G
        ACPI: asus_acpi: misc cleanups
        ACPI: video: Remove unneeded acpi_handle from driver.
        ACPI: thermal: Remove unneeded acpi_handle from driver.
        ACPI: power: Remove unneeded acpi_handle from driver.
        ACPI: pci_root: Remove unneeded acpi_handle from driver.
        ACPI: pci_link: Remove unneeded acpi_handle from driver.
        ...
      e82ca043
    • Linus Torvalds's avatar
      Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial · 075395d2
      Linus Torvalds authored
      * 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial:
        [SERIAL] Ensure 8250_pci quirks are not marked __devinit
        [SERIAL] Convert fifosize to an unsigned int
      075395d2
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 060ec6f2
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] Fix lh7a40x_udc.c
        [ARM] Fix warning in consistent.c
        [ARM] Fix warnings in arch/arm/kernel/setup.c
        [ARM] Fix ecard.c resource warnings.
        [ARM] Fix ISA IRQ resources
        [ARM] Fix bad asm instruction in proc-arm925.S
        [ARM] More missing proc-macros.S includes
        [ARM] 3708/2: fix SMP build after section ioremap changes
      060ec6f2
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/mtd-2.6 · 0d178214
      Linus Torvalds authored
      * git://git.infradead.org/mtd-2.6:
        [JFFS2][XATTR] Fix memory leak in POSIX-ACL support
        fs/jffs2/: make 2 functions static
        [MTD] NAND: Fix broken sharpsl driver
        [JFFS2][XATTR] Fix xd->refcnt race condition
        MTD: kernel-doc fixes + additions
        MTD: fix all kernel-doc warnings
        [MTD] DOC: Fixup read functions and do a little cleanup
      0d178214
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 67ab33db
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
        [Bluetooth] Add RFCOMM role switch support
        [Bluetooth] Allow disabling of credit based flow control
        [Bluetooth] Small cleanup of the L2CAP source code
        [Bluetooth] Use real devices for host controllers
        [Bluetooth] Add platform device for virtual and serial devices
        [Bluetooth] Add automatic sniff mode support
        [Bluetooth] Correct SCO buffer size on request
        [Bluetooth] Add suspend/resume support to the HCI USB driver
        [Bluetooth] Use raw mode for the Frontline sniffer device
        [BRIDGE]: br_dump_ifinfo index fix
        [ATM]: add+use poison defines
        [NET]: add+use poison defines
        [IOAT]: fix kernel-doc in source files
        [IOAT]: fix header file kernel-doc
        [TG3]: Add ipv6 TSO feature
        [IPV6]: Fix ipv6 GSO payload length
        [TIPC] Fixed sk_buff panic caused by tipc_link_bundle_buf (REVISED)
        [NET]: Verify gso_type too in gso_segment
        [IPVS]: Add sysctl documentation
        [ROSE]: Try all routes when establishing a ROSE connections.
        ...
      67ab33db
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 · f7d57e42
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (57 commits)
        [SCSI] fix error handling in scsi_io_completion
        [SCSI] qla1280: fix section mismatch warnings
        [SCSI] mptsas: eliminate ghost devices
        [SCSI] qla2xxx: make some more functions static
        [SCSI] small whitespace cleanup for qlogic driver
        [SCSI] mptbase: mpt_interrupt should return IRQ_NONE
        [SCSI] mptsas: make two functions static
        [SCSI] sg.c: Fix bad error handling in
        [SCSI] 53c700: fix breakage caused by the autosense update
        [SCSI] iscsi: add async notification of session events
        [SCSI] iscsi: pass target nr to session creation
        [SCSI] iscsi: break up session creation into two stages
        [SCSI] iscsi: rm channel usage from iscsi
        [SCSI] iscsi: fix session refcouting
        [SCSI] iscsi: convert iscsi_tcp to new set/get param fns
        [SCSI] iscsi: convert iser to new set/get param fns
        [SCSI] iscsi: fixup set/get param functions
        [SCSI] iscsi: add target discvery event to transport class
        [SCSI] st: remove unused st_buffer.in_use
        [SCSI] atp870u: reduce huge stack usage
        ...
      f7d57e42
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild · 51bece91
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
        kbuild: introduce utsrelease.h
        kbuild: explicit turn off gcc stack-protector
      51bece91
    • Andrew Morton's avatar
      [PATCH] revert "kthread: convert stop_machine into a kthread" · d8cb7c1d
      Andrew Morton authored
      Jiri reports that the stop_machin kthread conversion caused his machine to
      hang when suspending.  Hyperthreading is apparently involved.
      
      I don't see why that would be and I can't reproduce it.  Revert to the 2.6.17
      code.
      
      Cc: "Serge E. Hallyn" <serue@us.ibm.com>
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d8cb7c1d
    • Heiko Carstens's avatar
      [PATCH] zfcp: fix incorrect usage of fsf_req_list_lock · 38c54ee8
      Heiko Carstens authored
        =================================
        [ INFO: inconsistent lock state ]
        ---------------------------------
        inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
        swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
         (&adapter->fsf_req_list_lock){++..}, at: [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
        {in-hardirq-W} state was registered at:
          [<000000000005fb0c>] __lock_acquire+0xad8/0xed0
          [<00000000000604ae>] lock_acquire+0x9a/0xc8
          [<000000000035a326>] _spin_lock+0x4e/0x68
          [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
          [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
          [<0000000000219dd4>] tiqdio_thinint_handler+0xd20/0x213c
          [<000000000020229a>] do_adapter_IO+0xb2/0xc0
          [<0000000000206f32>] do_IRQ+0x136/0x16c
          [<0000000000020462>] io_no_vtime+0x16/0x1c
          [<0000000000019432>] cpu_idle+0x222/0x250
        irq event stamp: 129220
        hardirqs last  enabled at (129220): [<00000000000411e6>] tasklet_hi_action+0x5a/0x19c
        hardirqs last disabled at (129219): [<00000000000411c0>] tasklet_hi_action+0x34/0x19c
        softirqs last  enabled at (129212): [<0000000000040b62>] __do_softirq+0x13a/0x180
        softirqs last disabled at (129217): [<000000000001fd58>] do_softirq+0xec/0xf0
      
        other info that might help us debug this:
        no locks held by swapper/0.
      
        stack backtrace:
        00000000012bb670 0000000000000002 0000000000000000 00000000012bb780
               00000000012bb6e8 0000000000399122 0000000000399122 0000000000016b0a
               0000000000000000 0000000000000000 0000000000000000 00000000004660e8
               0000000000000000 000000000000000d 00000000012bb6e0 00000000012bb758
               0000000000368b90 0000000000016b0a 00000000012bb6e0 00000000012bb730
        Call Trace:
        ([<0000000000016a26>] show_trace+0x76/0xdc)
         [<0000000000016b2c>] show_stack+0xa0/0xd0
         [<0000000000016b8a>] dump_stack+0x2e/0x3c
         [<000000000005e3da>] print_usage_bug+0x27e/0x290
         [<000000000005ea9c>] mark_lock+0x6b0/0x6c0
         [<000000000005f33e>] __lock_acquire+0x30a/0xed0
         [<00000000000604ae>] lock_acquire+0x9a/0xc8
         [<000000000035a326>] _spin_lock+0x4e/0x68
         [<0000000000274486>] zfcp_qdio_reqid_check+0x46/0x178
         [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
         [<0000000000217bd2>] tiqdio_tl+0xd02/0x2120
         [<000000000004123a>] tasklet_hi_action+0xae/0x19c
         [<0000000000040ae4>] __do_softirq+0xbc/0x180
         [<000000000001fd58>] do_softirq+0xec/0xf0
         [<0000000000040c38>] irq_exit+0x90/0xa8
         [<0000000000206f40>] do_IRQ+0x144/0x16c
         [<0000000000020462>] io_no_vtime+0x16/0x1c
         [<0000000000019432>] cpu_idle+0x222/0x250
        ([<0000000000019416>] cpu_idle+0x206/0x250)
         [<000000000001405a>] rest_init+0x5a/0x68
         [<0000000000536998>] start_kernel+0x39c/0x3dc
         [<0000000000013046>] _stext+0x46/0x1000
      
      Fix incorrect usage of fsf_req_list_lock. It's used in tasklet context
      (irqs on) as well as in irq context. Therefore use the spin_lock_irqsave
      variant to avoid deadlocks.
      Acked-by: default avatarAndreas Herrmann <aherrman@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      38c54ee8
    • Heiko Carstens's avatar
      [PATCH] zfcp: fix incorrect usage of erp_lock · 9f09c548
      Heiko Carstens authored
        =================================
        [ INFO: inconsistent lock state ]
        ---------------------------------
        inconsistent {hardirq-on-W} -> {in-hardirq-W} usage.
        swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
         (&adapter->erp_lock){+-..}, at: [<000000000026c7f8>] zfcp_erp_async_handler+0x3c/0x70
        {hardirq-on-W} state was registered at:
          [<000000000005f33e>] __lock_acquire+0x30a/0xed0
          [<00000000000604ae>] lock_acquire+0x9a/0xc8
          [<000000000035a7ae>] _write_lock+0x4e/0x68
          [<000000000026d822>] zfcp_erp_adapter_strategy_generic+0x286/0xd94
          [<000000000026fd72>] zfcp_erp_strategy_do_action+0x91e/0x1a94
          [<0000000000271a3a>] zfcp_erp_thread+0x21a/0x1568
          [<0000000000019096>] kernel_thread_starter+0x6/0xc
          [<0000000000019090>] kernel_thread_starter+0x0/0xc
        irq event stamp: 12078
        hardirqs last  enabled at (12077): [<0000000000019416>] cpu_idle+0x206/0x250
        hardirqs last disabled at (12078): [<0000000000020458>] io_no_vtime+0xc/0x1c
        softirqs last  enabled at (12072): [<0000000000040b62>] __do_softirq+0x13a/0x180
        softirqs last disabled at (12059): [<000000000001fd58>] do_softirq+0xec/0xf0
      
        other info that might help us debug this:
        no locks held by swapper/0.
      
        stack backtrace:
        00000000012bb648 0000000000000002 0000000000000000 00000000012bb758
               00000000012bb6c0 0000000000399122 0000000000399122 0000000000016b0a
               0000000000000000 0000000000000001 0000000000000000 00000000004660e8
               0000000000000000 000000000000000d 00000000012bb6b8 00000000012bb730
               0000000000368b90 0000000000016b0a 00000000012bb6b8 00000000012bb708
        Call Trace:
        ([<0000000000016a26>] show_trace+0x76/0xdc)
         [<0000000000016b2c>] show_stack+0xa0/0xd0
         [<0000000000016b8a>] dump_stack+0x2e/0x3c
         [<000000000005e3da>] print_usage_bug+0x27e/0x290
         [<000000000005e934>] mark_lock+0x548/0x6c0
         [<000000000005fb0c>] __lock_acquire+0xad8/0xed0
         [<00000000000604ae>] lock_acquire+0x9a/0xc8
         [<000000000035a662>] _write_lock_irqsave+0x62/0x80
         [<000000000026c7f8>] zfcp_erp_async_handler+0x3c/0x70
         [<0000000000279178>] zfcp_fsf_req_dispatch+0xd8/0x1fa8
         [<000000000027e538>] zfcp_fsf_req_complete+0x104/0xe4c
         [<0000000000274534>] zfcp_qdio_reqid_check+0xf4/0x178
         [<000000000027469e>] zfcp_qdio_response_handler+0xe6/0x430
         [<0000000000219dd4>] tiqdio_thinint_handler+0xd20/0x213c
         [<000000000020229a>] do_adapter_IO+0xb2/0xc0
         [<0000000000206f32>] do_IRQ+0x136/0x16c
         [<0000000000020462>] io_no_vtime+0x16/0x1c
         [<0000000000019432>] cpu_idle+0x222/0x250
        ([<0000000000019416>] cpu_idle+0x206/0x250)
         [<000000000001405a>] rest_init+0x5a/0x68
         [<0000000000536998>] start_kernel+0x39c/0x3dc
         [<0000000000013046>] _stext+0x46/0x1000
      
      Fix incorrect usage of erp_lock. Using the write_lock() variant is wrong,
      since this might lead to deadlocks.
      Acked-by: default avatarAndreas Herrmann <aherrman@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9f09c548
    • OGAWA Hirofumi's avatar
      [PATCH] Fix modular cpuid.ko · b6a7c79a
      OGAWA Hirofumi authored
      With recent change, if CONFIG_HOTPLUG_CPU is disabled,
      register_cpu_notifier() is not exported.  And it breaked moduler msr/cpuid
      (msr.c was already fixed).
      
      We need to use register_hotcpu_notifier() now in module, instead of
      register_cpu_notifier().
      Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b6a7c79a
    • Marcel Holtmann's avatar
      [Bluetooth] Add RFCOMM role switch support · 300b9397
      Marcel Holtmann authored
      This patch adds the support for RFCOMM role switching before the
      connection is fully established.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      300b9397
    • Marcel Holtmann's avatar
      [Bluetooth] Allow disabling of credit based flow control · 7c2660b0
      Marcel Holtmann authored
      This patch adds the module parameter disable_cfc which can be used to
      disable the credit based flow control. The credit based flow control
      was introduced with the Bluetooth 1.1 specification and devices can
      negotiate its support, but for testing purpose it is helpful to allow
      disabling of it.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      7c2660b0
    • Marcel Holtmann's avatar
      [Bluetooth] Small cleanup of the L2CAP source code · 0139418c
      Marcel Holtmann authored
      This patch is a small cleanup of the L2CAP source code. It makes some
      coding style changes and moves some functions around to avoid forward
      declarations.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      0139418c
    • Marcel Holtmann's avatar
      [Bluetooth] Use real devices for host controllers · a91f2e39
      Marcel Holtmann authored
      This patch converts the Bluetooth class devices into real devices. The
      Bluetooth class is kept and the driver core provides the appropriate
      symlinks for backward compatibility.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      a91f2e39
    • Marcel Holtmann's avatar
      [Bluetooth] Add platform device for virtual and serial devices · 27d35284
      Marcel Holtmann authored
      This patch adds a generic Bluetooth platform device that can be used
      as parent device by virtual and serial devices.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      27d35284
    • Marcel Holtmann's avatar
      [Bluetooth] Add automatic sniff mode support · 04837f64
      Marcel Holtmann authored
      This patch introduces the automatic sniff mode feature. This allows
      the host to switch idle connections into sniff mode to safe power.
      Signed-off-by: default avatarUlisses Furquim <ulissesf@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      04837f64