1. 25 Jun, 2011 5 commits
  2. 24 Jun, 2011 20 commits
  3. 23 Jun, 2011 15 commits
    • Roland Dreier's avatar
      target: Convert transport_deregister_session_configfs nacl_sess_lock to save irq state · 23388864
      Roland Dreier authored
      This patch converts transport_deregister_session_configfs() to save/restore
      spinlock IRQ state for struct se_node_acl->nacl_sess_lock access as tcm_qla2xxx
      logic expects to call transport_deregister_session_configfs() code with
      irq save already held for struct qla_hw_data.
      Reported-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      23388864
    • Nicholas Bellinger's avatar
      target: Fix transport_get_lun_for_tmr failure cases · 7fd29aa9
      Nicholas Bellinger authored
      This patch fixes two possible NULL pointer dereferences in target v4.0
      code where se_tmr release path in core_tmr_release_req() can OOPs upon
      transport_get_lun_for_tmr() failure by attempting to access se_device or
      se_tmr->tmr_list without a valid member of se_device->tmr_list during
      transport_free_se_cmd() release.  This patch moves the se_tmr->tmr_dev
      pointer assignment in transport_get_lun_for_tmr() until after possible
      -ENODEV failures during unpacked_lun lookup.
      
      This addresses an OOPs originally reported with LIO v4.1 upstream on
      .39 code here:
      
          TARGET_CORE[qla2xxx]: Detected NON_EXISTENT_LUN Access for 0x00000000
          BUG: unable to handle kernel NULL pointer dereference at 0000000000000550
          IP: [<ffffffff81035ec4>] __ticket_spin_trylock+0x4/0x20
          PGD 0
          Oops: 0000 [#1] SMP
          last sysfs file: /sys/devices/system/cpu/cpu23/cache/index2/shared_cpu_map
          CPU 1
          Modules linked in: netconsole target_core_pscsi target_core_file
      tcm_qla2xxx target_core_iblock tcm_loop target_core_mod configfs
      ipmi_devintf ipmi_si ipmi_msghandler serio_raw i7core_edac ioatdma dca
      edac_core ps_bdrv ses enclosure usbhid usb_storage ahci qla2xxx hid
      uas e1000e mpt2sas libahci mlx4_core scsi_transport_fc
      scsi_transport_sas raid_class scsi_tgt [last unloaded: netconsole]
      
          Pid: 0, comm: kworker/0:0 Tainted: G        W   2.6.39+ #1 Xyratex Storage Server
          RIP: 0010:[<ffffffff81035ec4>] [<ffffffff81035ec4>]__ticket_spin_trylock+0x4/0x20
          RSP: 0018:ffff88063e803c08  EFLAGS: 00010286
          RAX: ffff880619ab45e0 RBX: 0000000000000550 RCX: 0000000000000000
          RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000550
          RBP: ffff88063e803c08 R08: 0000000000000002 R09: 0000000000000000
          R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000568
          R13: 0000000000000001 R14: 0000000000000000 R15: ffff88060cd96a20
          FS:  0000000000000000(0000) GS:ffff88063e800000(0000) knlGS:0000000000000000
          CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
          CR2: 0000000000000550 CR3: 0000000001a03000 CR4: 00000000000006e0
          DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
          DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
          Process kworker/0:0 (pid: 0, threadinfo ffff880619ab8000, task ffff880619ab45e0)
          Stack:
           ffff88063e803c28 ffffffff812cf039 0000000000000550 0000000000000568
           ffff88063e803c58 ffffffff8157071e ffffffffa028a1dc ffff88060f7e4600
           0000000000000550 ffff880616961480 ffff88063e803c78 ffffffffa028a1dc
          Call Trace:
      <IRQ>
           [<ffffffff812cf039>] do_raw_spin_trylock+0x19/0x50
           [<ffffffff8157071e>] _raw_spin_lock+0x3e/0x70
           [<ffffffffa028a1dc>] ? core_tmr_release_req+0x2c/0x60 [target_core_mod]
           [<ffffffffa028a1dc>] core_tmr_release_req+0x2c/0x60 [target_core_mod]
           [<ffffffffa028d0d2>] transport_free_se_cmd+0x22/0x50 [target_core_mod]
           [<ffffffffa028d120>] transport_release_cmd_to_pool+0x20/0x40 [target_core_mod]
           [<ffffffffa028e525>] transport_generic_free_cmd+0xa5/0xb0 [target_core_mod]
           [<ffffffffa0147cc4>] tcm_qla2xxx_handle_tmr+0xc4/0xd0 [tcm_qla2xxx]
           [<ffffffffa0191ba3>] __qla24xx_handle_abts+0xd3/0x150 [qla2xxx]
           [<ffffffffa0197651>] qla_tgt_response_pkt+0x171/0x520 [qla2xxx]
           [<ffffffffa0197a2d>] qla_tgt_response_pkt_all_vps+0x2d/0x220 [qla2xxx]
           [<ffffffffa0171dd3>] qla24xx_process_response_queue+0x1a3/0x670 [qla2xxx]
           [<ffffffffa0196281>] ? qla24xx_atio_pkt+0x81/0x120 [qla2xxx]
           [<ffffffffa0174025>] ? qla24xx_msix_default+0x45/0x2a0 [qla2xxx]
           [<ffffffffa0174198>] qla24xx_msix_default+0x1b8/0x2a0 [qla2xxx]
           [<ffffffff810dadb4>] handle_irq_event_percpu+0x54/0x210
           [<ffffffff810dafb8>] handle_irq_event+0x48/0x70
           [<ffffffff810dd5ee>] ? handle_edge_irq+0x1e/0x110
           [<ffffffff810dd647>] handle_edge_irq+0x77/0x110
           [<ffffffff8100d362>] handle_irq+0x22/0x40
           [<ffffffff8157b28d>] do_IRQ+0x5d/0xe0
           [<ffffffff81571413>] common_interrupt+0x13/0x13
      <EOI>
           [<ffffffff813003f7>] ? intel_idle+0xd7/0x130
           [<ffffffff813003f0>] ? intel_idle+0xd0/0x130
           [<ffffffff8144832b>] cpuidle_idle_call+0xab/0x1c0
           [<ffffffff8100a26b>] cpu_idle+0xab/0xf0
           [<ffffffff81566c59>] start_secondary+0x1cb/0x1d2
      Reported-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      7fd29aa9
    • Alexey Charkov's avatar
      rtc: vt8500: Fix build error & cleanup rtc_class_ops->update_irq_enable() · 03ad2d50
      Alexey Charkov authored
      Now that the generic code handles UIE mode irqs via periodic
      alarm interrupts, no one calls the
      rtc_class_ops->update_irq_enable() method anymore.
      
      Further the rtc_class_ops doesn't have a update_irq_enable element
      anymore, so this causes a build error.
      
      This patch removes the driver hooks and implementations of
      update_irq_enable and the associated setup.
      
      [wsa: updated commit-message and removed update_irq_enable-function, too]
      [jstultz: improve commit message, clarifying build issue]
      Signed-off-by: default avatarAlexey Charkov <alchark@gmail.com>
      Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
      03ad2d50
    • Nishanth Aravamudan's avatar
      libata/sas: only set FROZEN flag if new EH is supported · 3f1e046a
      Nishanth Aravamudan authored
      On 16.06.2011 [08:28:39 -0500], Brian King wrote:
      > On 06/16/2011 02:51 AM, Tejun Heo wrote:
      > > On Wed, Jun 15, 2011 at 04:34:17PM -0700, Nishanth Aravamudan wrote:
      > >>> That looks like the right thing to do. For ipr's usage of
      > >>> libata, we don't have the concept of a port frozen state, so this flag
      > >>> should really never get set. The alternate way to fix this would be to
      > >>> only set ATA_PFLAG_FROZEN in ata_port_alloc if ap->ops->error_handler
      > >>> is not NULL.
      > >>
      > >> It seemed like ipr is as you say, but I wasn't sure if it was
      > >> appropriate to make the change above in the common libata-scis code or
      > >> not. I don't want to break some other device on accident.
      > >>
      > >> Also, I tried your suggestion, but I don't think that can happen in
      > >> ata_port_alloc? ata_port_alloc is allocated ap itself, and it seems like
      > >> ap->ops typically gets set only after ata_port_alloc returns?
      > >
      > > Maybe we can test error_handler in ata_sas_port_start()?
      >
      > Good point. Since libsas is converted to the new eh now, we would need to have
      > this test.
      
      Commit 7b3a24c5 ("ahci: don't enable
      port irq before handler is registered") caused a regression for CD-ROMs
      attached to the IPR SATA bus on Power machines:
      
        ata_port_alloc: ENTER
        ata_port_probe: ata1: bus probe begin
        ata1.00: ata_dev_read_id: ENTER
        ata1.00: failed to IDENTIFY (I/O error, err_mask=0x40)
        ata1.00: ata_dev_read_id: ENTER
        ata1.00: failed to IDENTIFY (I/O error, err_mask=0x40)
        ata1.00: limiting speed to UDMA7:PIO5
        ata1.00: ata_dev_read_id: ENTER
        ata1.00: failed to IDENTIFY (I/O error, err_mask=0x40)
        ata1.00: disabled
        ata_port_probe: ata1: bus probe end
        scsi_alloc_sdev: Allocation failure during SCSI scanning, some SCSI devices might not be configured
      
      The FROZEN flag added in that commit is only cleared by the new EH code,
      which is not used by ipr. Clear this flag in the SAS code if we don't
      support new EH.
      Reported-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      3f1e046a
    • Tejun Heo's avatar
      libata: apply NOSETXFER horkage to the affected Pioneer drives · cd691876
      Tejun Heo authored
      regardless of firmware revision
      
      It's unlikely NOSETXFER works for a revision of drive but doesn't for
      another and pioneer doesn't seem to be fixing firmwares for the
      affected drives.  Apply NOSETXFER to the affected pioneer drives
      regardless of firmware revision.
      
        http://article.gmane.org/gmane.linux.ide/49734Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: fl-00@gmx.de
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      cd691876
    • Justin P. Mattock's avatar
      drivers/ata/sata_dwc_460ex: Fix typo 'corrresponding' · 8618ccd3
      Justin P. Mattock authored
      The patch below fixes a typo.
      Signed-off-by: default avatarJustin P. Mattock <justinmattock@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      8618ccd3
    • Nicholas Bellinger's avatar
    • Daniel Mack's avatar
      ASoC: pxa-ssp: Correct check for stream presence · 53dea36c
      Daniel Mack authored
      Don't rely on the codec's channels_min information to decide wheter or
      not allocate a substream's DMA buffer. Rather check if the substream
      itself was allocated previously.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: stable@kernel.org
      53dea36c
    • Arnaud Patard (Rtp)'s avatar
      ASoC: imx: add missing module informations · 96dcabb9
      Arnaud Patard (Rtp) authored
      - add some modules aliases
      - add module license to avoid tainted kernel when loading the imx-pcm-audio
        driver
      Signed-off-by: default avatarArnaud Patard <arnaud.patard@rtp-net.org>
      Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      96dcabb9
    • Arnaud Patard (Rtp)'s avatar
      ASoC: imx: Remove unused Kconfig SND_MXC_SOC_SSI entry · f6d96e0d
      Arnaud Patard (Rtp) authored
      SND_MXC_SOC_SSI looks to be unused, so kill it.
      Signed-off-by: default avatarArnaud Patard <arnaud.patard@rtp-net.org>
      Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      f6d96e0d
    • Jeff Layton's avatar
      cifs: fix wsize negotiation to respect max buffer size and active signing (try #4) · 1190f6a0
      Jeff Layton authored
      Hopefully last version. Base signing check on CAP_UNIX instead of
      tcon->unix_ext, also clean up the comments a bit more.
      
      According to Hongwei Sun's blog posting here:
      
          http://blogs.msdn.com/b/openspecification/archive/2009/04/10/smb-maximum-transmit-buffer-size-and-performance-tuning.aspx
      
      CAP_LARGE_WRITEX is ignored when signing is active. Also, the maximum
      size for a write without CAP_LARGE_WRITEX should be the maxBuf that
      the server sent in the NEGOTIATE request.
      
      Fix the wsize negotiation to take this into account. While we're at it,
      alter the other wsize definitions to use sizeof(WRITE_REQ) to allow for
      slightly larger amounts of data to potentially be written per request.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      1190f6a0
    • Russell King's avatar
      Fix CPU spinlock lockups on secondary CPU bringup · 1b19ca9f
      Russell King authored
      Secondary CPU bringup typically calls calibrate_delay() during its
      initialization.  However, calibrate_delay() modifies a global variable
      (loops_per_jiffy) used for udelay() and __delay().
      
      A side effect of 71c696b1 ("calibrate: extract fall-back calculation
      into own helper") introduced in the 2.6.39 merge window means that we
      end up with a substantial period where loops_per_jiffy is zero.  This
      causes the spinlock debugging code to malfunction:
      
      	u64 loops = loops_per_jiffy * HZ;
      	for (;;) {
      		for (i = 0; i < loops; i++) {
      			if (arch_spin_trylock(&lock->raw_lock))
      				return;
      			__delay(1);
      		}
      		...
      	}
      
      by never calling arch_spin_trylock() - resulting in the CPU locking
      up in an infinite loop inside __spin_lock_debug().
      
      Work around this by only writing to loops_per_jiffy only once we have
      completed all the calibration decisions.
      Tested-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Cc: <stable@kernel.org> (2.6.39-stable)
      --
      Better solutions (such as omitting the calibration for secondary CPUs,
      or arranging for calibrate_delay() to return the LPJ value and leave
      it to the caller to decide where to store it) are a possibility, but
      would be much more invasive into each architecture.
      
      I think this is the best solution for -rc and stable, but it should be
      revisited for the next merge window.
      
       init/calibrate.c |   14 ++++++++------
       1 files changed, 8 insertions(+), 6 deletions(-)
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1b19ca9f
    • Mika Westerberg's avatar
      serial: mrst_max3110: initialize waitqueue earlier · 33b1e693
      Mika Westerberg authored
      The driver went to initialize its waitqueue at the start of the main
      processing thread.  However, it is possible that this thread is not
      scheduled on a CPU before the write function is called which leads to a
      following error:
      
        BUG: spinlock bad magic on CPU#1, swapper/1
         lock: f5f3ebdc, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
        Pid: 1, comm: swapper Not tainted 3.0.0-rc2+ #67
        Call Trace:
         [<c1289663>] spin_bug+0xa3/0xf0
         [<c12897ad>] do_raw_spin_lock+0x7d/0x150
         [<c14963de>] _raw_spin_lock_irqsave+0x4e/0x60
         [<c102f2bb>] __wake_up+0x1b/0x50
         [<c12d3715>] serial_m3110_con_write+0x55/0x60
         [<c1041575>] __call_console_drivers+0x75/0x90
         [<c10415d9>] _call_console_drivers+0x49/0x80
         [<c1041baa>] console_unlock+0xca/0x1f0
         [<c10420ef>] vprintk+0x18f/0x4f0
         [<c14928a3>] printk+0x18/0x1a
         [<c1042730>] register_console+0x2e0/0x350
         [<c12d098e>] uart_add_one_port+0x33e/0x3d0
         [<c1485ba6>] serial_m3110_probe+0x1c2/0x1df
         [<c1303db7>] spi_drv_probe+0x17/0x20
         ...
      
      Fix this by initializing the waitqueue before the main thread is
      created.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33b1e693
    • William Douglas's avatar
      mrst_max3110: Change max missing message priority. · 0bb04bf3
      William Douglas authored
      Change print message to notice instead of error to clean up non critical
      messages showing on startup.  The MAX3111 not being present is a normal
      path for end user systems.
      Signed-off-by: default avatarWilliam Douglas <william.douglas@intel.com>
      [rebased on 3.0, switched to dev_dbg()]
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0bb04bf3
    • David Henningsson's avatar
      ALSA: HDA: Pinfix quirk for HP Z200 Workstation · d2a19da7
      David Henningsson authored
      BIOS lists the internal speaker as an internal line-out. Change to
      internal speaker + model=auto for better auto-mute capabilities.
      
      BugLink: http://bugs.launchpad.net/bugs/754964Reported-by: default avatarMarc Legris <marc.legris@canonical.com>
      Signed-off-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d2a19da7