13 Jan, 2012

1 commit

  • For historical reasons, we allow module_param(bool) to take an int (or
    an unsigned int). That's going away.

    A few drivers really want an int: they set it to -1 and a parameter
    will set it to 0 or 1. This sucks: reading them from sysfs will give
    'Y' for both -1 and 1, but if we change it to an int, then the users
    might be broken (if they did "param" instead of "param=1").

    Use a new 'bint' parser for them.

    (ntfs has a different problem: it needs an int for debug_msgs because
    it's also exposed via sysctl.)

    Cc: Steve Glendinning
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Cc: Hoang-Nam Nguyen
    Cc: Christoph Raisch
    Cc: Roland Dreier
    Cc: Sean Hefty
    Cc: Hal Rosenstock
    Cc: linux390@de.ibm.com
    Cc: Anton Altaparmakov
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Cc: lm-sensors@lm-sensors.org
    Cc: linux-rdma@vger.kernel.org
    Cc: linux-s390@vger.kernel.org
    Cc: linux-ntfs-dev@lists.sourceforge.net
    Cc: alsa-devel@alsa-project.org
    Acked-by: Takashi Iwai (For the sound part)
    Acked-by: Guenter Roeck (For the hwmon driver)
    Signed-off-by: Rusty Russell

    Rusty Russell
     

27 Dec, 2011

2 commits

  • The queue_start_poll function pointer field in struct qdio_initialize
    had to change its type and become a vector of function pointers to
    support asynchronous delivery of storage blocks so rename the field to
    make the type change explicit and ensure no other user of qdio tries
    to use the field the old way. During setting up the qdio queues, only
    dereference vector elements if the vector is actually allocated.

    Signed-off-by: Steffen Maier
    Signed-off-by: Einar Lueck
    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Steffen Maier
     
  • drivers/s390/cio/qdio_setup.c:24:32:
    warning: non-ANSI function declaration of function 'qdio_allocate_aob'

    While at it also simplify the function.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

01 Dec, 2011

4 commits

  • The functions called by chsc_chp_vary operate on pointers to channel
    path ids not channel path links. (This worked by chance since the id
    is the first member of the link structure)

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • If a driver wants to do command mode IO while CIO is doing
    online path verification we ignore this request and provide
    a fake irb when we are done and the driver can do IO again.

    For transport mode IO we have no such mechanism, giving the
    driver no other chance then to retry the action until we are
    done. This is not very reliable.

    Provide a fake irb for transport mode IO as well.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • When a driver requests to do IO, we will adjust the mask of
    paths to be used to exclude varied offline paths.

    Drivers trying to do IO solely on paths which are online but some
    way defective may lack the information to do proper error handling.

    There is no reason to allow the usage of known to be broken paths.
    Thus restrict the paths a ccw driver can use for IO to a subset of
    the paths cio found usable (this also excludes offline paths).

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Using the generic css_schedule_eval to evaluate subchannels
    while resuming from hibernation is very slow when used with
    many devices. Provide a new evaluation trigger which exploits
    css_sched_sch_todo and use this in the resume callback for
    ccw devices.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

01 Nov, 2011

1 commit

  • Fix several compile errors on s390 caused by splitting module.h.

    Some include additions [e.g. qdio_setup.c, zfcp_qdio.c] are in
    anticipation of pending changes queued for s390 that increase
    the modular use footprint.

    [PG: added additional obvious changes since Heiko's original patch]

    Signed-off-by: Heiko Carstens
    Signed-off-by: Paul Gortmaker

    Heiko Carstens
     

30 Oct, 2011

13 commits

  • A kernel panic may occur during sending or receiving network packets
    on a machine without adapter interrupts since commit d36deae.
    The bug is triggered by writing to the shared indicator address which
    is set to 0 if the machine doesn't have adapter interrupts.

    Make the reading and setting of the shared indicator dependent on the
    adapter interrupt feature and while at it move the code to the
    file containing the adapter interrupt related code.

    Thanks to Jan Jaeger for tracking this down.

    Reported-by: Jan Jaeger
    Tested-by: Jan Jaeger
    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Add prototypes and includes for functions used in different modules.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Make functions and data static to avoid sparse warnings.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The multicast poll check for the outbound queue is redundant since
    3d6c76f "[S390] qdio: outbound tasklet scan threshold". Remove the check.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Don't leave outbound SBALs in error state after a target full condition.
    Reset the state to not initialized to make the error handling consistent
    across all types of errors.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Running under z/VM with QIOASSIST enabled, qdio queues could stall if EQBS
    did not extract all SBAL states. Add an instant retry for EQBS and, if the
    retry fails, set up a timer to ensure outstanding SBALs are processed later.

    While at it, optimize qdio_do_eqbs and qdio_do_sqbs to eliminate 3 jumps on
    the hot path.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Add a timestamp per queue and update the timestamp when the queue is
    scanned. Add the queue timestamps and the timestamp of the last
    adapter interrupt to the debugfs output. The timestamps are useful
    for debugging stall conditions.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Add support for CHSC I/O interrupt statistics in /proc/interrupts.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Fix coding style, remove forward declerations, simplify code.
    Also remove a superfluous get_device/put_device pair in
    ccwgroup_create_from_string.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Put sysfs attributes of ccwgroup devices in an attribute group to
    ensure that these attributes are actually present when userspace
    is notified via uevents.

    Cc: stable@kernel.org
    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • This patch provides the architecture specific part of the s390 kdump
    support.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • Print a message in case we do not receive an IRQ in time (for internal
    I/O). Also print the ID of the last used channel path, since it is
    possible that not the device itself but this specific path might have
    a defect.

    Signed-off-by: Sebastian Ott
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Current IRQ statistics support does not show detail counts for I/O
    interrupts which are processed internally only. The result is a
    summation count which is way off such as this one:

    CPU0 CPU1 CPU2
    I/O: 1331 710 442
    [...]
    QAI: 15 16 16 [I/O] QDIO Adapter Interrupt
    QDI: 1 0 0 [I/O] QDIO Interrupt
    DAS: 706 645 381 [I/O] DASD
    C15: 26 10 0 [I/O] 3215
    C70: 0 0 0 [I/O] 3270
    TAP: 0 0 0 [I/O] Tape
    VMR: 0 0 0 [I/O] Unit Record Devices
    LCS: 0 0 0 [I/O] LCS
    CLW: 0 0 0 [I/O] CLAW
    CTC: 0 0 0 [I/O] CTC
    APB: 0 0 0 [I/O] AP Bus

    Fix this by moving I/O interrupt accounting into the common I/O layer.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky

    Peter Oberparleiter
     

29 Oct, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits)
    [SCSI] qla4xxx: export address/port of connection (fix udev disk names)
    [SCSI] ipr: Fix BUG on adapter dump timeout
    [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer
    [SCSI] hpsa: change confusing message to be more clear
    [SCSI] iscsi class: fix vlan configuration
    [SCSI] qla4xxx: fix data alignment and use nl helpers
    [SCSI] iscsi class: fix link local mispelling
    [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA
    [SCSI] aacraid: use lower snprintf() limit
    [SCSI] lpfc 8.3.27: Change driver version to 8.3.27
    [SCSI] lpfc 8.3.27: T10 additions for SLI4
    [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery
    [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name
    [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout
    [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes
    [SCSI] megaraid_sas: Changelog and version update
    [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic
    [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support
    [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers
    [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts
    ...

    Linus Torvalds
     

25 Oct, 2011

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1745 commits)
    dp83640: free packet queues on remove
    dp83640: use proper function to free transmit time stamping packets
    ipv6: Do not use routes from locally generated RAs
    |PATCH net-next] tg3: add tx_dropped counter
    be2net: don't create multiple RX/TX rings in multi channel mode
    be2net: don't create multiple TXQs in BE2
    be2net: refactor VF setup/teardown code into be_vf_setup/clear()
    be2net: add vlan/rx-mode/flow-control config to be_setup()
    net_sched: cls_flow: use skb_header_pointer()
    ipv4: avoid useless call of the function check_peer_pmtu
    TCP: remove TCP_DEBUG
    net: Fix driver name for mdio-gpio.c
    ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT
    rtnetlink: Add missing manual netlink notification in dev_change_net_namespaces
    ipv4: fix ipsec forward performance regression
    jme: fix irq storm after suspend/resume
    route: fix ICMP redirect validation
    net: hold sock reference while processing tx timestamps
    tcp: md5: add more const attributes
    Add ethtool -g support to virtio_net
    ...

    Fix up conflicts in:
    - drivers/net/Kconfig:
    The split-up generated a trivial conflict with removal of a
    stale reference to Documentation/networking/net-modules.txt.
    Remove it from the new location instead.
    - fs/sysfs/dir.c:
    Fairly nasty conflicts with the sysfs rb-tree usage, conflicting
    with Eric Biederman's changes for tagged directories.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (59 commits)
    MAINTAINERS: linux-m32r is moderated for non-subscribers
    linux@lists.openrisc.net is moderated for non-subscribers
    Drop default from "DM365 codec select" choice
    parisc: Kconfig: cleanup Kernel page size default
    Kconfig: remove redundant CONFIG_ prefix on two symbols
    cris: remove arch/cris/arch-v32/lib/nand_init.S
    microblaze: add missing CONFIG_ prefixes
    h8300: drop puzzling Kconfig dependencies
    MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers
    tty: drop superfluous dependency in Kconfig
    ARM: mxc: fix Kconfig typo 'i.MX51'
    Fix file references in Kconfig files
    aic7xxx: fix Kconfig references to READMEs
    Fix file references in drivers/ide/
    thinkpad_acpi: Fix printk typo 'bluestooth'
    bcmring: drop commented out line in Kconfig
    btmrvl_sdio: fix typo 'btmrvl_sdio_sd6888'
    doc: raw1394: Trivial typo fix
    CIFS: Don't free volume_info->UNC until we are entirely done with it.
    treewide: Correct spelling of successfully in comments
    ...

    Linus Torvalds
     

08 Oct, 2011

1 commit


26 Sep, 2011

1 commit


15 Sep, 2011

2 commits


27 Aug, 2011

1 commit


13 Aug, 2011

2 commits


03 Aug, 2011

2 commits

  • This patch replaces the code for getting an unsigned long from a
    userspace buffer by a simple call to kstroul_from_user.
    This makes it easier to read and less error prone.

    Signed-off-by: Peter Huewe
    Acked-by: Jan Glauber
    Signed-off-by: Heiko Carstens

    Peter Huewe
     
  • The SIGA-W may return with the busy bit set which means the device was
    blocked. The busy loop which retries the SIGA-W for 100us may not be
    long enough when running under a heavily loaded hypervisor.

    Extend the retry mechanism by adding a longer second stage which retries
    the SIGA-W for up to 10s. In difference to the first retry loop the second
    stage is using mdelay to stop the cpu between the retries and thereby
    avoid additional preassure in on the hypervisor.
    If the second stage retry is successfull a device reset is avoided.

    Signed-off-by: Jan Glauber
    Signed-off-by: Heiko Carstens

    Jan Glauber
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

24 Jul, 2011

1 commit

  • The following race can occur with qdio devices that use the shared device
    state change indicator:

    Device (Shared DSCI) CPU0 CPU1
    ===============================================================================

    1. DSCI 0 => 1,
    INT pending
    2. Thinint handler
    * si_used = 1
    * Inbound tasklet_schedule
    * DSCI 1 => 0

    3. DSCI 0 => 1,
    INT pending

    4. Thinint handler
    * si_used = 1
    * Inbound tasklet_schedu
    le
    => NOP

    5. Inbound tasklet run

    6. DSCI = 1,
    INT surpressed

    7. DSCI 1 => 0

    The race would lead to a stall where new data in the input queue is
    not recognized so the device stops working in case of no further traffic.

    Fix the race by resetting the DSCI before scheduling the inbound tasklet
    so the device generates an interrupt if new data arrives in the above
    scenario in step 6.

    Reviewed-by: Ursula Braun
    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     

16 Jul, 2011

1 commit


06 Jun, 2011

1 commit

  • The qdio SBAL entry flag is made-up of four different values that are
    independent of one another. Some of the bits are reserved by the
    hardware and should not be changed by qdio. Currently all four values
    are overwritten since the SBAL entry flag is defined as an u32.

    Split the SBAL entry flag into four u8's as defined by the hardware
    and don't touch the reserved bits.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     

23 May, 2011

2 commits