22 Jun, 2009

14 commits

  • If a SCSI ULD driver sets blk_queue_prep_rq(), it should clean it
    up itself on remove(), and not from the bus callbacks. This
    removes the need to hook into bus->remove(), which should not
    be used at the same time as driver->remove().

    [jejb: fix sdkp initialisation problem due to mismerge]
    Signed-off-by: Hannes Reinecke
    Signed-off-by: Kay Sievers
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • setting err as -EOVERFLOW for Too many iscsi targets.

    Also fixes a spurious compiler warning for gcc 4.3.3 and gcc 4.4 :

    CC drivers/scsi/scsi_transport_iscsi.o
    drivers/scsi/scsi_transport_iscsi.c: In function ‘iscsi_add_session’:
    drivers/scsi/scsi_transport_iscsi.c:678: warning: ‘err’ may be used uninitialized in this function

    Signed-off-by: Jaswinder Singh Rajput
    Acked-by: Mike Christie
    Signed-off-by: James Bottomley

    Jaswinder Singh Rajput
     
  • The return value from BSG timout function should be based on the state of the
    BSG job. This helps block layer to take selective actions to clean up BSG job.

    Signed-off-by: Giridhar Malavali
    Acked-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    Giridhar Malavali
     
  • Registered the softirq_done function, since this is requried iby an request
    using block level request timeout functionality. This function will be called
    by the block layer as part of time out clean process to release the BSG
    request.

    Moved some of the BSG request completion activities to softirq_done routine to
    take care of both normal and timout completions.

    Signed-off-by: Giridhar Malavali
    Acked-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    Giridhar Malavali
     
  • This makes a huge difference when you have a serial console on bootup to limit
    these messages to a sane number.

    Signed-off-by: John Stoffel
    Signed-off-by: James Bottomley

    John Stoffel
     
  • People keep sending patches to expose CONFIG_SCSI_WAIT_SCAN as a tunable
    item. These patches aren't accepted upstream, so let's stop the ongoing
    irritation of people due to the unconditionally installed module and its
    Kconfig symbol.

    Signed-off-by: Stefan Richter
    Signed-off-by: James Bottomley

    Stefan Richter
     
  • Fixes a problem seen where sending a PRLI to a target
    resulted in it sending a LOGO. This caused the ibmvfc
    driver to go back through discovery again, which caused
    another PRLI attempt, which caused another LOGO. Fix this
    behavior by ignoring LOGO if we haven't even logged into
    the target yet.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Since async events could indicate changes to link status, or
    events which could affect decisions made during discovery, we should
    process async events prior to command completion responses.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • This patch adds the /sys/module/libfc/parameters/debug_logging
    file to sysfs as a module parameter. It accepts an integer
    bitmask for logging. Currently it supports:

    bit
    LSB 0 = general libfc debugging
    1 = lport debugging
    2 = disc debugging
    3 = rport debugging
    4 = fcp debugging
    5 = EM debugging
    6 = exch/seq debugging
    7 = scsi logging (mostly error handling)

    the other bits are not used at this time.

    The patch converts all of the libfc source files to use
    these new macros and removes the old FC_DBG macro.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • This patch adds a 'debug_logging' module parameter to
    libfcoe.ko. It is an unsigned int that represents a bitmask of
    available debug logging levels, each of which can be tuned at
    runtime. Currently there are only two logging levels for this
    module-

    bit
    LSB 0 = libfcoe general logging
    1 = FIP logging

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • This patch converts all FC_DBG statements to use new runtime tunable
    debug macros. The fcoe.ko module now has a debug_logging module
    parameter.

    fcoe_debug_logging is an unsigned integer representing a bitmask of all
    available logging levels. Currently only two logging levels are
    supported-

    bit
    LSB 0 = general fcoe logging
    1 = netdevice related logging

    This patch also attempts to clean up some debug statement formatting
    so it's more readable.

    Signed-off-by: Robert Love
    Signed-off-by: James Bottomley

    Robert Love
     
  • This patch adds support for setting the physical block exponent and
    lowest aligned LBA in the READ CAPACITY(16) response.

    The B0 VPD page is adjusted accordingly.

    Signed-off-by: Martin K. Petersen
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Martin K. Petersen
     
  • NETDEVICES + NETDEV_1000 need to be enabled so that kconfig will check
    those branches for selects and enforce "select UIO" under CNIC.
    Otherwise the build fails with:

    ERROR: "uio_unregister_device" [drivers/net/cnic.ko] undefined!
    ERROR: "uio_event_notify" [drivers/net/cnic.ko] undefined!
    ERROR: "__uio_register_device" [drivers/net/cnic.ko] undefined!

    Signed-off-by: Randy Dunlap
    Acked-by: Michael Chan
    Signed-off-by: James Bottomley

    Randy Dunlap
     
  • Ingo molnar reported the error

    drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’

    when CONFIG_MODULES is not defined. Fix by using symbol_get() instead.

    Signed-off-by: Michael Chan
    Signed-off-by: James Bottomley

    Michael Chan
     

21 Jun, 2009

26 commits

  • This reverts commit bc3bf8fd330ce981ce632a1a4a283eee46838f32.

    All the commit did was add a second #include of which is
    the wrong fix.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • MSI has only been tested on and known to work with PCI-E based adapters. This
    patch adds a field to struct ipr_chip_t to indicate which type of interrupt to
    use based on what is known about the chip.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     
  • The return value from pci_enable_msi() can not always be trusted. This patch
    adds code to generate an interrupt after MSI has been enabled and tests
    whether or not we can receive and process it. If the tests fails, then fall
    back to LSI.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     
  • There have been several bug reports which identified the Ultrium-3
    tape as just hanging up on the bus during certain types of IU
    transfer. The identified culpret is type 0x02 (MULTIPLE COMMAND)
    transfers. The only way to prevent this tape wedging is to prevent it
    from using IU transfers at all. So this patch uses the exported
    blacklist matching technology to recognise the drive and force it not
    to use IU transfers.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • Right at the moment, we carefully set up the spi_support_xx in the
    device configuration routines, but then we never actually use the
    results: we rely on the inquiry strings. If we're going to allow
    overrides to the inquiry data, we have to rely on our own internal
    settings.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • The current scsi_devinfo.c matching routines use a single table for
    the global blacklist. However, we're developing a need to blacklist
    from specific transports too (notably some tape drives using SPI which
    don't respond well to high speed protocols). Instead of developing
    separate blacklist matching for each transport class needing it,
    enhance the current list matching to permit multiple lists.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Commit 7b867cf76fbcc8d77867cbec6f509f71dce8a98f ([SCSI] qla2xxx:
    Refactor qla data structures) inadvertently reverted
    e792121ec85672c1fa48f79d13986a3f4f56c590 ([SCSI] qla2xxx: Correct
    overflow during dump-processing on large-memory ISP23xx parts.).

    Cc: stable@kernel.org
    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Pre-ISP24xx chips have dedicated uses for mailbox 4 and 5 which
    software should typically not query nor update.

    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • * To set iiDMA speeds for ISP81XX, bits 5-0 are used whereas for
    other older ISPs bits 2-0 are used.
    * Pass proper VP index

    Signed-off-by: Harish Zunjarrao
    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Harish Zunjarrao
     
  • Cc: stable@kernel.org
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Anirban Chakraborty
     
  • Just once, two fcoe instances got the same host number
    from scsi_add_host().

    Use atomic_t and atomic_inc_return() to get next host number.
    Subtract 1, so that scsi_host still starts with 0.

    [jejb: added comment about unusual subtraction]
    Signed-off-by: Joe Eykholt
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • The SMP handler (sas_smp_request) was fixed to use the block API
    properly, so we don't need this workaround to avoid blk_put_request()
    warning.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     
  • We need to call blk_end_request_all to complete SMP requests properly.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     
  • Allow the user to control the debug logs in libiscsi. We will now
    have a module param for connection, session & error handling.

    [Mike Christie - Fixed up to compile on current code and added
    missing ISCSI_DBG_EH conversions]

    Signed-off-by: Erez Zilber
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Erez Zilber
     
  • The net layer might return -EAGAIN because it could not
    get space/mem within the sock sndtimeo or becuase the tcp/ip
    connection was down. For the latter we do not want to retry
    because the conn/session should just be shutdown and restarted.
    libiscsi knows the state of the session recovery so propogate
    this error to that layer. It will either do iscsi recovery
    or have us retry the operation. Right now if we have partially
    sent a pdu we would always retry the IO xmit slowing down
    recovery.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • If we are sending or receiving data for the task successfully do
    not run the scsi eh, because we know the task is making progress.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • The default kernel pages supported are 4K, 8K, 16K, and 64K. Re-calculate
    entries if PAGE_SIZE is not one of the defaults.

    Signed-off-by: Karen Xie
    Signed-off-by: James Bottomley

    Karen Xie
     
  • The iscsi ddp functionality could be used by multiple iscsi entities,
    add a refcnt to keep track of it, so we would not release it pre-maturely.

    Signed-off-by: Karen Xie
    Signed-off-by: James Bottomley

    Karen Xie
     
  • Query the block limits VPD page and adjust queue minimum and optimal I/O
    sizes.

    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     
  • Detect non-rotational devices and set the queue flag accordingly.

    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     
  • Extract physical block size and lowest aligned LBA from READ
    CAPACITY(16) response and adjust queue parameters.

    Report physical block size and alignment when applicable.

    [jejb: fix up trailing whitespace]
    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     
  • da456f1 "page allocator: do not disable interrupts in free_page_mlock()" moved
    the PG_mlocked clearing after the flag sanity checking which makes mlocked
    pages always trigger 'bad page'. Fix this by clearing the bit up front.

    Reported--and-debugged-by: Peter Chubb
    Signed-off-by: Johannes Weiner
    Acked-by: Mel Gorman
    Tested-by: Maxim Levitsky
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • The discussion about using "access_ok()" in get_user_pages_fast() (see
    commit 7f8189068726492950bf1a2dcfd9b51314560abf: "x86: don't use
    'access_ok()' as a range check in get_user_pages_fast()" for details and
    end result), made us notice that x86-64 was really being very sloppy
    about virtual address checking.

    So be way more careful and straightforward about masking x86-64 virtual
    addresses:

    - All the VIRTUAL_MASK* variants now cover half of the address
    space, it's not like we can use the full mask on a signed
    integer, and the larger mask just invites mistakes when
    applying it to either half of the 48-bit address space.

    - /proc/kcore's kc_offset_to_vaddr() becomes a lot more
    obvious when it transforms a file offset into a
    (kernel-half) virtual address.

    - Unify/simplify the 32-bit and 64-bit USER_DS definition to
    be based on TASK_SIZE_MAX.

    This cleanup and more careful/obvious user virtual address checking also
    uncovered a buglet in the x86-64 implementation of strnlen_user(): it
    would do an "access_ok()" check on the whole potential area, even if the
    string itself was much shorter, and thus return an error even for valid
    strings. Our sloppy checking had hidden this.

    So this fixes 'strnlen_user()' to do this properly, the same way we
    already handled user strings in 'strncpy_from_user()'. Namely by just
    checking the first byte, and then relying on fault handling for the
    rest. That always works, since we impose a guard page that cannot be
    mapped at the end of the user space address space (and even if we
    didn't, we'd have the address space hole).

    Acked-by: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Andrew Morton
    Cc: Nick Piggin
    Cc: Hugh Dickins
    Cc: H. Peter Anvin
    Cc: Thomas Gleixner
    Cc: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    genirq, irq.h: Fix kernel-doc warnings
    genirq: fix comment to say IRQ_WAKE_THREAD

    Linus Torvalds
     
  • …x/kernel/git/tip/linux-2.6-tip

    * 'perfcounters-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)
    perfcounter: Handle some IO return values
    perf_counter: Push perf_sample_data through the swcounter code
    perf_counter tools: Define and use our own u64, s64 etc. definitions
    perf_counter: Close race in perf_lock_task_context()
    perf_counter, x86: Improve interactions with fast-gup
    perf_counter: Simplify and fix task migration counting
    perf_counter tools: Add a data file header
    perf_counter: Update userspace callchain sampling uses
    perf_counter: Make callchain samples extensible
    perf report: Filter to parent set by default
    perf_counter tools: Handle lost events
    perf_counter: Add event overlow handling
    fs: Provide empty .set_page_dirty() aop for anon inodes
    perf_counter: tools: Makefile tweaks for 64-bit powerpc
    perf_counter: powerpc: Add processor back-end for MPC7450 family
    perf_counter: powerpc: Make powerpc perf_counter code safe for 32-bit kernels
    perf_counter: powerpc: Change how processor-specific back-ends get selected
    perf_counter: powerpc: Use unsigned long for register and constraint values
    perf_counter: powerpc: Enable use of software counters on 32-bit powerpc
    perf_counter tools: Add and use isprint()
    ...

    Linus Torvalds