13 Jan, 2012

2 commits

  • module_param(bool) used to counter-intuitively take an int. In
    fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
    trick.

    It's time to remove the int/unsigned int option. For this version
    it'll simply give a warning, but it'll break next kernel version.

    Acked-by: Mauro Carvalho Chehab
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • 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
     

12 Jan, 2012

1 commit

  • We were cheating with our barriers; using the smp ones rather than the
    real device ones. That was fine, until rpmsg came along, which is
    used to talk to a real device (a non-SMP CPU).

    Unfortunately, just putting back the real barriers (reverting
    d57ed95d) causes a performance regression on virtio-pci. In
    particular, Amos reports netbench's TCP_RR over virtio_net CPU
    utilization increased up to 35% while throughput went down by up to
    14%.

    By comparison, this branch is in the noise.

    Reference: https://lkml.org/lkml/2011/12/11/22

    Signed-off-by: Rusty Russell

    Rusty Russell
     

10 Jan, 2012

2 commits

  • * 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    isl29020: Remove a redundant semi-colon from return statement
    BMP085: Remove redundant semi-colon from return statement
    drivers:misc: ti-st: DEBUG uart, baud rate mods
    drivers:misc: ti-st: flush UART upon fw failure
    drivers:misc: ti-st: protect registrations
    char_dev.c: fix up some whitespace errors
    s390: tape_class.h: remove kobj_map.h inclusion
    misc: ad525x_dpot: Add support for SPI module device table matching

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (31 commits)
    [S390] disassembler: mark exception causing instructions
    [S390] Enable exception traces by default
    [S390] return address of compat signals
    [S390] sysctl: get rid of dead declaration
    [S390] dasd: fix fixpoint divide exception in define_extent
    [S390] dasd: add sanity check to detect path connection error
    [S390] qdio: fix kernel panic for zfcp 31-bit
    [S390] Add s390x description to Documentation/kdump/kdump.txt
    [S390] Add VMCOREINFO_SYMBOL(high_memory) to vmcoreinfo
    [S390] dasd: fix expiration handling for recovery requests
    [S390] outstanding interrupts vs. smp_send_stop
    [S390] ipc: call generic sys_ipc demultiplexer
    [S390] zcrypt: Fix error return codes.
    [S390] zcrypt: Rework length parameter checking.
    [S390] cleanup trap handling
    [S390] Remove Kerntypes leftovers
    [S390] topology: increase poll frequency if change is anticipated
    [S390] entry[64].S improvements
    [S390] make arch/s390 subdirectories depend on config option
    [S390] kvm: move cmf host id constant out of lowcore
    ...

    Fix up conflicts in arch/s390/kernel/{smp.c,topology.c} due to the
    sysdev removal clashing with "topology: get rid of ifdefs" which moved
    some of that code around.

    Linus Torvalds
     

09 Jan, 2012

1 commit

  • * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
    reiserfs: Properly display mount options in /proc/mounts
    vfs: prevent remount read-only if pending removes
    vfs: count unlinked inodes
    vfs: protect remounting superblock read-only
    vfs: keep list of mounts for each superblock
    vfs: switch ->show_options() to struct dentry *
    vfs: switch ->show_path() to struct dentry *
    vfs: switch ->show_devname() to struct dentry *
    vfs: switch ->show_stats to struct dentry *
    switch security_path_chmod() to struct path *
    vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
    vfs: trim includes a bit
    switch mnt_namespace ->root to struct mount
    vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
    vfs: opencode mntget() mnt_set_mountpoint()
    vfs: spread struct mount - remaining argument of next_mnt()
    vfs: move fsnotify junk to struct mount
    vfs: move mnt_devname
    vfs: move mnt_list to struct mount
    vfs: switch pnode.h macros to struct mount *
    ...

    Linus Torvalds
     

08 Jan, 2012

1 commit

  • * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (73 commits)
    arm: fix up some samsung merge sysdev conversion problems
    firmware: Fix an oops on reading fw_priv->fw in sysfs loading file
    Drivers:hv: Fix a bug in vmbus_driver_unregister()
    driver core: remove __must_check from device_create_file
    debugfs: add missing #ifdef HAS_IOMEM
    arm: time.h: remove device.h #include
    driver-core: remove sysdev.h usage.
    clockevents: remove sysdev.h
    arm: convert sysdev_class to a regular subsystem
    arm: leds: convert sysdev_class to a regular subsystem
    kobject: remove kset_find_obj_hinted()
    m86k: gpio - convert sysdev_class to a regular subsystem
    mips: txx9_sram - convert sysdev_class to a regular subsystem
    mips: 7segled - convert sysdev_class to a regular subsystem
    sh: dma - convert sysdev_class to a regular subsystem
    sh: intc - convert sysdev_class to a regular subsystem
    power: suspend - convert sysdev_class to a regular subsystem
    power: qe_ic - convert sysdev_class to a regular subsystem
    power: cmm - convert sysdev_class to a regular subsystem
    s390: time - convert sysdev_class to a regular subsystem
    ...

    Fix up conflicts with 'struct sysdev' removal from various platform
    drivers that got changed:
    - arch/arm/mach-exynos/cpu.c
    - arch/arm/mach-exynos/irq-eint.c
    - arch/arm/mach-s3c64xx/common.c
    - arch/arm/mach-s3c64xx/cpu.c
    - arch/arm/mach-s5p64x0/cpu.c
    - arch/arm/mach-s5pv210/common.c
    - arch/arm/plat-samsung/include/plat/cpu.h
    - arch/powerpc/kernel/sysfs.c
    and fix up cpu_is_hotpluggable() as per Greg in include/linux/cpu.h

    Linus Torvalds
     

07 Jan, 2012

2 commits


04 Jan, 2012

2 commits

  • Signed-off-by: Al Viro

    Al Viro
     
  • Move invalidate_bdev, block_sync_page into fs/block_dev.c. Export
    kill_bdev as well, so brd doesn't have to open code it. Reduce
    buffer_head.h requirement accordingly.

    Removed a rather large comment from invalidate_bdev, as it looked a bit
    obsolete to bother moving. The small comment replacing it says enough.

    Signed-off-by: Nick Piggin
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Al Viro
     

27 Dec, 2011

7 commits

  • If an IO request is build on an alias device without prefix enabled
    we try to calculate with zero data from the alias device. This
    triggers a BUG statement with fixpoint divide exception.
    This case is very unlikely and can only happen if the pathgroup is
    lost with an alias device already in use.
    Prevent the alias device from being used in this case.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • Prevents possible data corruption by detecting cabling error.
    Therefor read and compare the UID for all available channel paths.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • 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
     
  • The 'expires' value of a ccw requests defines how long the device
    driver should wait for a response from the evice after the request has
    been submitted to the channel subsystem. After the expiration time
    (e.g. 30 seconds) the waiting request will be cancelled and started
    again. This protects the DASD devices from beeing blocked by errors
    that cause the answering I/O interrupt to be lost.

    In case of error recovery requests, this 'expires' value used to be
    set to 0, so in case of a lost interrupt, such a recovery request
    would never expire and block the device. To prevent this kind of
    problem, all recovery requests need to have an expires value > 0 as
    well. If not specified otherwise, this should be the same expires
    value as for the original request.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • Return EINVAL instead of EFAULT for invalid input parameter.

    Signed-off-by: Holger Dengler
    Signed-off-by: Martin Schwidefsky

    Holger Dengler
     
  • Fix length checking of the expected reply and remove re-adjustment of
    expected control block length.

    Signed-off-by: Holger Dengler
    Signed-off-by: Martin Schwidefsky

    Holger Dengler
     
  • 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
     

24 Dec, 2011

1 commit


22 Dec, 2011

2 commits

  • The sysdev.h file should not be needed by any in-kernel code, so remove
    the .h file from these random files that seem to still want to include
    it.

    The sysdev code will be going away soon, so this include needs to be
    removed no matter what.

    Cc: Jiandong Zheng
    Cc: Scott Branden
    Cc: Russell King
    Cc: Kukjin Kim
    Cc: David Brown
    Cc: Daniel Walker
    Cc: Bryan Huntsman
    Cc: Ben Dooks
    Cc: Wan ZongShun
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Guan Xuetao
    Cc: "Venkatesh Pallipadi
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Grant Likely
    Cc: Richard Purdie
    Cc: Matthew Garrett
    Signed-off-by: Kay Sievers

    Kay Sievers
     
  • This moves the 'cpu sysdev_class' over to a regular 'cpu' subsystem
    and converts the devices to regular devices. The sysdev drivers are
    implemented as subsystem interfaces now.

    After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Userspace relies on events and generic sysfs subsystem infrastructure
    from sysdev devices, which are made available with this conversion.

    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: Chris Metcalf
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Borislav Petkov
    Cc: Tigran Aivazian
    Cc: Len Brown
    Cc: Zhang Rui
    Cc: Dave Jones
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Andrew Morton
    Cc: Arjan van de Ven
    Cc: "Rafael J. Wysocki"
    Cc: "Srivatsa S. Bhat"
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

21 Dec, 2011

5 commits

  • If recovery is triggered in presence of pending asynchronous
    deliveries of storage blocks we do a forced cleanup after
    the corresponding tasklets are completely stopped and trigger
    appropriate notifications for the correspondingerror state.

    Signed-off-by: Einar Lueck
    Signed-off-by: Ursula Braun
    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Einar Lueck
     
  • In case there are no system resources to run a recovery we have to clear
    recovery bitmasks so a further automatic or manual driven recovery can
    fix up the device.

    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Frank Blaschka
     
  • The NETIUCV device driver allows to connect a Linux guest on z/VM to
    another z/VM guest based on the z/VM communication facility IUCV.
    Multiple output paths to different guests are possible, as well as
    multiple input paths from different guests.
    With this feature, you can configure multiple point-to-point NETIUCV
    interfaces between your Linux on System z instance and another z/VM
    guest.

    Signed-off-by: Ursula Braun
    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • A recovery does not make sense during shutdown and may even cause an
    error like this:

    qeth 0.0.f503: A recovery process has been started for the device
    Badness at drivers/s390/cio/qdio_main.c:1156
    Modules linked in: autofs4 sunrpc dm_multipath scsi_dh scsi_mod qeth_l3 ipv6 vmu
    r qeth qdio ccwgroup ext3 jbd mbcache dasd_eckd_mod dasd_mod dm_mirror dm_region
    _hash dm_log dm_mod [last unloaded: scsi_wait_scan]
    CPU: 3 Not tainted 2.6.32-202.el6.s390x #1
    Process qeth_recover (pid: 1498, task: 000000003efe2040, ksp: 000000003d5e3b80)
    Krnl PSW : 0404200180000000 000003c000be6da8 (qdio_int_handler+0x88/0x43c [qdio]
    )
    R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
    Krnl GPRS: ffffffffffff3bac 0000000000000005 0000000000000000 fffffffffffffff4
    0000000000000000 000000000000000c 0000000000000000 000000003ca97000
    0000000000000380 fffffffffffffff4 000000003f22d800 000000003f22c478
    000003c000bdf000 000003c000bea270 000000003f447e10 000000003f447db0
    Krnl Code: 000003c000be6d9a: c21f00000004 clfi %r1,4
    000003c000be6da0: a7c40021 brc 12,3c000be6de2
    000003c000be6da4: a7f40001 brc 15,3c000be6da6
    >000003c000be6da8: e320a0080004 lg %r2,8(%r10)
    000003c000be6dae: a7390003 lghi %r3,3
    000003c000be6db2: a72b0178 aghi %r2,376
    000003c000be6db6: a7490001 lghi %r4,1
    000003c000be6dba: a7590000 lghi %r5,0
    Call Trace:
    ([] __per_cpu_offset+0x0/0x200)
    [] ccw_device_call_handler+0x70/0xcc
    [] ccw_device_irq+0x82/0x180
    [] do_IRQ+0x16c/0x1ec
    [] io_return+0x0/0x8
    [] qeth_determine_capabilities+0x208/0x5cc [qeth]
    ([] qeth_determine_capabilities+0x1de/0x5cc [qeth])
    [] qeth_core_hardsetup_card+0x160/0x1258 [qeth]
    [] __qeth_l3_set_online+0x132/0xb14 [qeth_l3]
    [] qeth_l3_recover+0x168/0x224 [qeth_l3]
    [] kthread+0xa4/0xac
    [] kernel_thread_starter+0x6/0xc
    [] kernel_thread_starter+0x0/0xc

    The patch forbids start of a recovery once qeth shutdown is running.

    Signed-off-by: Ursula Braun
    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • qeth layer3 recovery invokes its set_multicast_list function, which
    invokes function __vlan_find_dev_deep requiring rcu_read_lock or
    rtnl lock. This causes kernel messages:

    kernel: [ INFO: suspicious rcu_dereference_check() usage. ]
    kernel: ---------------------------------------------------
    kernel: net/8021q/vlan_core.c:70 invoked rcu_dereference_check() without protection!

    kernel: stack backtrace:
    kernel: CPU: 0 Not tainted 3.1.0 #9
    kernel: Process qeth_recover (pid: 2078, task: 000000007e584680, ksp: 000000007e3e3930)
    kernel: 000000007e3e3d08 000000007e3e3c88 0000000000000002 0000000000000000
    kernel: 000000007e3e3d28 000000007e3e3ca0 000000007e3e3ca0 00000000005e77ce
    kernel: 0000000000000000 0000000000000001 ffffffffffffffff 0000000000000001
    kernel: 000000000000000d 000000000000000c 000000007e3e3cf0 0000000000000000
    kernel: 0000000000000000 0000000000100a18 000000007e3e3c88 000000007e3e3cc8
    kernel: Call Trace:
    kernel: ([] show_trace+0xee/0x144)
    kernel: [] __vlan_find_dev_deep+0xb0/0x108
    kernel: [] qeth_l3_set_multicast_list+0x976/0xe38
    kernel: [] __qeth_l3_set_online+0x75c/0x1498
    kernel: [] qeth_l3_recover+0xc4/0x1d0
    kernel: [] kthread+0xa6/0xb0
    kernel: [] kernel_thread_starter+0x6/0xc
    kernel: [] kernel_thread_starter+0x0/0xc

    The patch makes sure the rtnl lock is held once qeth recovery invokes
    its set_multicast_list function.

    Signed-off-by: Ursula Braun
    Signed-off-by: Frank Blaschka
    Signed-off-by: David S. Miller

    Ursula Braun
     

14 Dec, 2011

2 commits

  • zfcp_scsi_slave_destroy erroneously always tried to finish its task
    even if the corresponding previous zfcp_scsi_slave_alloc returned
    early. This can lead to kernel page faults on accessing uninitialized
    fields of struct zfcp_scsi_dev in zfcp_erp_lun_shutdown_wait. Take the
    port field of the struct to determine if slave_alloc returned early.

    This zfcp bug is exposed by 4e6c82b (in turn fixing f7c9c6b to be
    compatible with 21208ae) which can call slave_destroy for a
    corresponding previous slave_alloc that did not finish.

    This patch is based on James Bottomley's fix suggestion in
    http://www.spinics.net/lists/linux-scsi/msg55449.html.

    Signed-off-by: Steffen Maier
    Cc: #2.6.38+
    Signed-off-by: James Bottomley

    Steffen Maier
     
  • This include file is not needed for any driver to be referencing, so
    remove it from the tape_class.h file.

    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Alexey Dobriyan
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

09 Dec, 2011

1 commit


07 Dec, 2011

1 commit


06 Dec, 2011

1 commit


01 Dec, 2011

5 commits

  • Setup timer for processing messages in request queue after a
    successful AP bus device reset.

    Signed-off-by: Holger Dengler
    Signed-off-by: Martin Schwidefsky

    Holger Dengler
     
  • 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
     

22 Nov, 2011

1 commit


21 Nov, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (86 commits)
    ipv4: fix redirect handling
    ping: dont increment ICMP_MIB_INERRORS
    sky2: fix hang in napi_disable
    sky2: enforce minimum ring size
    bonding: Don't allow mode change via sysfs with slaves present
    f_phonet: fix page offset of first received fragment
    stmmac: fix pm functions avoiding sleep on spinlock
    stmmac: remove spin_lock in stmmac_ioctl.
    stmmac: parameters auto-tuning through HW cap reg
    stmmac: fix advertising 1000Base capabilties for non GMII iface
    stmmac: use mdelay on timeout of sw reset
    sky2: version 1.30
    sky2: used fixed RSS key
    sky2: reduce default Tx ring size
    sky2: rename up/down functions
    sky2: pci posting issues
    sky2: fix hang on shutdown (and other irq issues)
    r6040: fix check against MCRO_HASHEN bit in r6040_multicast_list
    MAINTAINERS: change email address for shemminger
    pch_gbe: Move #include of module.h
    ...

    Linus Torvalds
     

17 Nov, 2011

2 commits