17 Sep, 2009

12 commits

  • Prior to calling IUCV functions, the DECLARE BUFFER function must have been
    called for at least one CPU to receive IUCV interrupts.

    With commit "iucv: establish reboot notifier" (6c005961), a check has been
    introduced to avoid calling IUCV functions if the current CPU does not have
    an interrupt buffer declared.
    Because one interrupt buffer is sufficient, change the condition to ensure
    that one interrupt buffer is available.

    In addition, checking the buffer on the current CPU creates a race with
    CPU up/down notifications: before checking the buffer, the IUCV function
    might be interrupted by an smp_call_function() that retrieves the interrupt
    buffer for the current CPU.
    When the IUCV function continues, the check fails and -EIO is returned. If a
    buffer is available on any other CPU, the IUCV function call must be invoked
    (instead of failing with -EIO).

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • During suspend IUCV exploiters have to close their IUCV connections.
    When restoring an image, it can be checked if all IUCV pathes had
    been closed before the Linux instance was suspended. If not, an
    error message is issued to indicate a problem in one of the
    used programs exploiting IUCV communication.

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

    Ursula Braun
     
  • David S. Miller
     
  • Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: John W. Linville
    Signed-off-by: David S. Miller

    Jean-Christophe PLAGNIOL-VILLARD
     
  • net/core/netpoll.c::netpoll_send_skb() calls the poll handler when
    it is available. As netconsole can be used from almost any context,
    IRQ must not be enabled blindly in the NAPI handler of the driver
    which supports netpoll.

    Call trace:
    netpoll_send_skb()
    {
    local_irq_save(flags)
    -> netpoll_poll()
    -> poll_napi()
    -> poll_one_napi()
    -> napi->poll()
    -> b44_poll()
    local_irq_restore(flags)
    }

    Signed-off-by: Dongdong Deng
    Signed-off-by: David S. Miller

    Dongdong Deng
     
  • RFC4191 says that "If the Reserved (10) value is received, the Route
    Information Option MUST be ignored.", so this patch makes us conform
    to the RFC. This is different to the usage of the Default Router
    Preference, where an invalid value must indeed be treated as
    PREF_MEDIUM.

    Signed-off-by: Jens Rosenboom
    Signed-off-by: David S. Miller

    Jens Rosenboom
     
  • When I was implementing primary_passive option (formely named primary_lazy) I've
    run into troubles with ab_arp. This is the only mode which is not using
    bond_select_active_slave() function to select active slave and instead it
    selects it itself. This seems to be not the right behaviour and it would be
    better to do it in bond_select_active_slave() for all cases. This patch makes
    this happen. Please review.

    Signed-off-by: Jiri Pirko
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • David S. Miller
     
  • There's a check saying
    /* we're good if we have both BSSID and channel */
    if (wdev->conn->params.bssid && wdev->conn->params.channel) {

    but that isn't true -- we need the BSS struct. This leads
    to errors such as

    Trying to associate with 00:1b:53:11:dc:40 (SSID='TEST' freq=2412 MHz)
    ioctl[SIOCSIWFREQ]: No such file or directory
    ioctl[SIOCSIWESSID]: No such file or directory
    Association request to the driver failed
    Associated with 00:1b:53:11:dc:40

    in wpa_supplicant, as reported by Holger.

    Instead, we really need to have the BSS struct, and if we
    don't, then we need to initiate a scan for it. But we may
    already have the BSS struct here, so hang on to it if we
    do and scan if we don't.

    Signed-off-by: Johannes Berg
    Tested-by: Holger Schurig
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The contention window is supposed to be a power of two minus one, i.e.
    15, 31, 63, 127... minstrel_rate_init() forgets to subtract 1, so the
    sequence becomes 15, 32, 66, 134...

    Bug reported by Dan Halperin

    Signed-off-by: Pavel Roskin
    Signed-off-by: John W. Linville

    Pavel Roskin
     
  • Fix printk format warnings:

    drivers/ssb/sdio.c:336: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'size_t'
    drivers/ssb/sdio.c:443: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'size_t'

    Signed-off-by: Randy Dunlap
    Signed-off-by: John W. Linville

    Randy Dunlap
     
  • This patch adds a new usbid for Zcomax XG-705A to the device table.

    Cc: stable@kernel.org
    Reported-by: Jari Jaakola
    Signed-off-by: Christian Lamparter
    Signed-off-by: John W. Linville

    Christian Lamparter
     

16 Sep, 2009

4 commits

  • Use uX rather than uintX_t types for consistency.

    Signed-off-by: David Howells
    Signed-off-by: David S. Miller

    David Howells
     
  • catas_reset() uses pointer to mlx4_priv, but mlx4_priv is not valid
    after call mlx4_restart_one().

    Signed-off-by: Vitaliy Gusev
    Acked-by: Roland Dreier
    Signed-off-by: David S. Miller

    Vitaliy Gusev
     
  • I have recently came across a preemption imbalance detected by:

    huh, entered ffffffff80644630 with preempt_count 00000102, exited with 00000101?
    ------------[ cut here ]------------
    kernel BUG at /usr/src/linux/kernel/timer.c:664!
    invalid opcode: 0000 [1] PREEMPT SMP

    with ffffffff80644630 being inet_twdr_hangman().

    This appeared after I enabled CONFIG_TCP_MD5SIG and played with it a
    bit, so I looked at what might have caused it.

    One thing that struck me as strange is tcp_twsk_destructor(), as it
    calls tcp_put_md5sig_pool() -- which entails a put_cpu(), causing the
    detected imbalance. Found on 2.6.23.9, but 2.6.31 is affected as well,
    as far as I can tell.

    Signed-off-by: Robert Varga
    Signed-off-by: David S. Miller

    Robert Varga
     
  • If qdisc_get_stab returns error in qdisc_create there is skipped qdisc
    ops->destroy, which is necessary because it's after ops->init at the
    moment, so memory leaks are quite probable.

    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     

15 Sep, 2009

24 commits