23 Sep, 2009

16 commits

  • This patch adds the device definition for the at91_can device to
    the generic device definiton file for the at91sam9263.

    Signed-off-by: Hans J. Koch
    Signed-off-by: Marc Kleine-Budde
    Acked-by: Wolfgang Grandegger
    Signed-off-by: David S. Miller

    Marc Kleine-Budde
     
  • Usbnet framework assumes USB hardware doesn't handle zero length
    packets, but SMSC LAN95xx requires these to be sent for correct
    operation.

    This patch fixes an easily reproducible tx lockup when sending a frame
    that results in exactly 512 bytes in a USB transmission (e.g. a UDP
    frame with 458 data bytes, due to IP headers and our USB headers). It
    adds an extra flag to usbnet for the hardware driver to indicate that
    it can handle and requires the zero length packets.

    This patch should not affect other usbnet users, please also consider
    for -stable.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • After commit 2b980dbd77d229eb60588802162c9659726b11f4
    ("lsm: Add hooks to the TUN driver") tun_set_iff doesn't
    return -EINVAL though neither IFF_TUN nor IFF_TAP is set.

    Signed-off-by: Kusanagi Kouichi
    Reviewed-by: Paul Moore
    Signed-off-by: David S. Miller

    Kusanagi Kouichi
     
  • This was introduced by b93d58 "8139*: convert printk() to pr_()":

    [ 2256252443 ] 8139cp: 10/100 PCI Ethernet driver v1.3 (Mar 22, 2004)

    The "version" string is printed using pr_info(), so it doesn't need to
    include a loglevel.

    Signed-off-by: Alan Jenkins
    CC: Alexander Beregalov
    Signed-off-by: David S. Miller

    Alan Jenkins
     
  • rcv_q & snd_q initializations were reversed in commit
    31e6d363abcd0d05766c82f1a9c905a4c974a199
    (net: correct off-by-one write allocations reports)

    Signed-off-by: Jan Rafaj
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • he_dev->rbps_virt or he_dev->rbpl_virt allocation may fail, s
    them. Make sure that he_init_group() cleans up after errors.

    Signed-off-by: Roel Kluin
    Signed-off-by: David S. Miller

    roel kluin
     
  • The SKY2_HW_RAM_BUFFER bit in hw->flags was checked in sky2_mac_init(),
    before being set later in sky2_up().

    Setting SKY2_HW_RAM_BUFFER in sky2_init() where other hw->flags are set
    should avoid this problem recurring.

    Signed-off-by: Mike McCormack
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Mike McCormack
     
  • Set wol_ctrl_data to value 0, to remove compiling warning.

    Signed-off-by: Jie Yang
    Signed-off-by: David S. Miller

    jie.yang@atheros.com
     
  • The definitions of vnet_ops and ehea_netdev_ops have initializations of a
    local function and eth_change_mtu for their respective ndo_change_mtu
    fields. This change uses only the local function.

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r@
    identifier I, s, fld;
    position p0,p;
    expression E;
    @@

    struct I s =@p0 { ... .fld@p = E, ...};

    @s@
    identifier I, s, r.fld;
    position r.p0,p;
    expression E;
    @@

    struct I s =@p0 { ... .fld@p = E, ...};

    @script:python@
    p0 << r.p0;
    fld << r.fld;
    ps << s.p;
    pr << r.p;
    @@

    if int(ps[0].line)!=int(pr[0].line) or int(ps[0].column)!=int(pr[0].column):
    cocci.print_main(fld,p0)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • kaweth_control() never frees the buffer that it allocates for the USB
    control message. Test case:

    while :; do ifconfig eth2 down ; ifconfig eth2 up ; done

    This is a tiny buffer so it is a slow leak. If you want to speed up the
    process, you can change the allocation size to e.g. 16384 bytes, and it
    will consume several megabytes within a few minutes.

    Signed-off-by: Kevin Cernekee
    Acked-by: Oliver Neukum
    Signed-off-by: David S. Miller

    Kevin Cernekee
     
  • Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • Jens Rosenboom noticed that a possibly unaligned const char*
    is cast to a const struct in6_addr *.

    Avoid this at the cost of a struct in6_addr copy on the stack.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • You can't ping the board or connect to it unless you send
    any packet out from board.

    Tested-by: John Williams
    Signed-off-by: Michal Simek
    Acked-by: John Linn
    Acked-by: Grant Likely
    Signed-off-by: David S. Miller

    Michal Simek
     
  • After successful firmware init, return instead of
    falling to error path (leading to detach) after
    resuming to D0 state. This was broken in recent
    firmware reset rehaul.

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • Fix minor bug in netdev tx timeout handling which could
    always lead to firmware reset instead of pci function reset.

    netxen_nic_reset_context() requires __NX_RESETTING bit
    cleared.

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • 'if (i < NR_INFO)' will only true if we breaks from 'for (i = 0; i < NR_INFO; i++)'
    So removing useless 'if (i < NR_INFO)'

    This also fixed following compilation warning :

    CC [M] drivers/net/pcmcia/pcnet_cs.o
    drivers/net/pcmcia/pcnet_cs.c: In function ‘get_hwinfo’:
    drivers/net/pcmcia/pcnet_cs.c:321: warning: ‘base’ may be used uninitialized in this function

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: David S. Miller

    Jaswinder Singh Rajput
     

22 Sep, 2009

8 commits

  • This patch resolves a warning seen when doing namespace checking via
    "make namespacecheck"

    Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • Shorten ixgbe_configure_rx() and lessen indent depth.

    Signed-off-by: Shannon Nelson
    Acked-by: Peter P Waskiewicz Jr
    Signed-off-by: Don Skidmore
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Nelson, Shannon
     
  • Allow the user to set Tx specific itr values. This only makes sense
    when there are separate vectors for Tx and Rx. When the queues are
    doubled up RxTx on the vectors, we still only use the rx itr value.

    Signed-off-by: Shannon Nelson
    Acked-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Nelson, Shannon
     
  • We weren't stoping the sfp_timer after the device was brought down.
    This patch properly cleans up.

    Signed-off-by: Shannon Nelson
    Signed-off-by: Don Skidmore
    Acked-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • sparc64 allnoconfig:

    arch/sparc/kernel/built-in.o(.text+0x134e0): In function `sys32_recvfrom':
    : undefined reference to `compat_sys_recvfrom'
    arch/sparc/kernel/built-in.o(.text+0x134e4): In function `sys32_recvfrom':
    : undefined reference to `compat_sys_recvfrom'

    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Andrew Morton
     
  • This patch adds support for one channel CAN/USB interace CPC-USB/ARM7 from
    EMS Dr. Thomas Wuensche (http://www.ems-wuensche.com).

    Signed-off-by: Sebastian Haas
    Signed-off-by: Wolfgang Grandegger
    Signed-off-by: David S. Miller

    Sebastian Haas
     
  • This patch prepares replacing the staging driver cpc-usb with the new
    developed ems_usb CAN driver.

    Signed-off-by: Sebastian Haas
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Sebastian Haas
     
  • With the removal of BUS_ID_SIZE, cpmac was not fully
    converted to use MII_BUS_ID_SIZE as it ought to. This
    patch fixes the following cpmac build failure:
    CC drivers/net/cpmac.o
    drivers/net/cpmac.c: In function 'cpmac_start_xmit':
    drivers/net/cpmac.c:563: warning: comparison of distinct pointer types lacks a cast
    drivers/net/cpmac.c: In function 'cpmac_probe':
    drivers/net/cpmac.c:1112: error: 'BUS_ID_SIZE' undeclared (first use in this function)
    drivers/net/cpmac.c:1112: error: (Each undeclared identifier is reported only once
    drivers/net/cpmac.c:1112: error: for each function it appears in.)

    Reported-by: Ralf Baechle
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     

18 Sep, 2009

5 commits


17 Sep, 2009

11 commits

  • iucv_sock_recvmsg() and iucv_process_message()/iucv_fragment_skb race
    for dequeuing an skb from the backlog queue.

    If iucv_sock_recvmsg() dequeues first, iucv_process_message() calls
    sock_queue_rcv_skb() with an skb that is NULL.

    This results in the following kernel panic:

    Unable to handle kernel pointer dereference at virtual kernel address (null)
    Oops: 0004 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    Modules linked in: af_iucv sunrpc qeth_l3 dm_multipath dm_mod vmur qeth ccwgroup
    CPU: 0 Not tainted 2.6.30 #4
    Process client-iucv (pid: 4787, task: 0000000034e75940, ksp: 00000000353e3710)
    Krnl PSW : 0704000180000000 000000000043ebca (sock_queue_rcv_skb+0x7a/0x138)
    R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
    Krnl GPRS: 0052900000000000 000003e0016e0fe8 0000000000000000 0000000000000000
    000000000043eba8 0000000000000002 0000000000000001 00000000341aa7f0
    0000000000000000 0000000000007800 0000000000000000 0000000000000000
    00000000341aa7f0 0000000000594650 000000000043eba8 000000003fc2fb28
    Krnl Code: 000000000043ebbe: a7840006 brc 8,43ebca
    000000000043ebc2: 5930c23c c %r3,572(%r12)
    000000000043ebc6: a724004c brc 2,43ec5e
    >000000000043ebca: e3c0b0100024 stg %r12,16(%r11)
    000000000043ebd0: a7190000 lghi %r1,0
    000000000043ebd4: e310b0200024 stg %r1,32(%r11)
    000000000043ebda: c010ffffdce9 larl %r1,43a5ac
    000000000043ebe0: e310b0800024 stg %r1,128(%r11)
    Call Trace:
    ([] sock_queue_rcv_skb+0x58/0x138)
    [] iucv_process_message+0x112/0x3cc [af_iucv]
    [] iucv_callback_rx+0x1f0/0x274 [af_iucv]
    [] iucv_message_pending+0xa2/0x120
    [] iucv_tasklet_fn+0x176/0x1b8
    [] tasklet_action+0xfe/0x1f4
    [] __do_softirq+0x116/0x284
    [] do_softirq+0xe4/0xe8
    [] irq_exit+0xba/0xd8
    [] do_extint+0x146/0x190
    [] ext_no_vtime+0x1e/0x22
    [] kfree+0x202/0x28c
    ([] kfree+0x1f8/0x28c)
    [] __kfree_skb+0x32/0x124
    [] iucv_sock_recvmsg+0x236/0x41c [af_iucv]
    [] sock_aio_read+0x136/0x160
    [] do_sync_read+0xe4/0x13c
    [] vfs_read+0x152/0x15c
    [] SyS_read+0x54/0xac
    [] sysc_noemu+0x10/0x16
    [] 0x42ff8def3c

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

    Hendrik Brueckner
     
  • For non-accepted sockets on the accept queue, iucv_sock_kill()
    is called twice (in iucv_sock_close() and iucv_sock_cleanup_listen()).
    This typically results in a kernel oops as shown below.

    Remove the duplicate call to iucv_sock_kill() and set the SOCK_ZAPPED
    flag in iucv_sock_close() only.

    The iucv_sock_kill() function frees a socket only if the socket is zapped
    and orphaned (sk->sk_socket == NULL):
    - Non-accepted sockets are always orphaned and, thus, iucv_sock_kill()
    frees the socket twice.
    - For accepted sockets or sockets created with iucv_sock_create(),
    sk->sk_socket is initialized. This caused the first call to
    iucv_sock_kill() to return immediately. To free these sockets,
    iucv_sock_release() uses sock_orphan() before calling iucv_sock_kill().

    Unable to handle kernel pointer dereference at virtual kernel address 000000003edd3000
    Oops: 0011 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    Modules linked in: af_iucv sunrpc qeth_l3 dm_multipath dm_mod qeth vmur ccwgroup
    CPU: 0 Not tainted 2.6.30 #4
    Process iucv_sock_close (pid: 2486, task: 000000003aea4340, ksp: 000000003b75bc68)
    Krnl PSW : 0704200180000000 000003e00168e23a (iucv_sock_kill+0x2e/0xcc [af_iucv])
    R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
    Krnl GPRS: 0000000000000000 000000003b75c000 000000003edd37f0 0000000000000001
    000003e00168ec62 000000003988d960 0000000000000000 000003e0016b0608
    000000003fe81b20 000000003839bb58 00000000399977f0 000000003edd37f0
    000003e00168b000 000003e00168f138 000000003b75bcd0 000000003b75bc98
    Krnl Code: 000003e00168e22a: c0c0ffffe6eb larl %r12,3e00168b000
    000003e00168e230: b90400b2 lgr %r11,%r2
    000003e00168e234: e3e0f0980024 stg %r14,152(%r15)
    >000003e00168e23a: e310225e0090 llgc %r1,606(%r2)
    000003e00168e240: a7110001 tmll %r1,1
    000003e00168e244: a7840007 brc 8,3e00168e252
    000003e00168e248: d507d00023c8 clc 0(8,%r13),968(%r2)
    000003e00168e24e: a7840009 brc 8,3e00168e260
    Call Trace:
    ([] afiucv_dbf+0x0/0xfffffffffffdea20 [af_iucv])
    [] iucv_sock_close+0x130/0x368 [af_iucv]
    [] iucv_sock_release+0x5e/0xe4 [af_iucv]
    [] sock_release+0x44/0x104
    [] sock_close+0x32/0x50
    [] __fput+0xf4/0x250
    [] filp_close+0x7a/0xa8
    [] SyS_close+0xe2/0x148
    [] sysc_noemu+0x10/0x16
    [] 0x42ff8deeac

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

    Hendrik Brueckner
     
  • After resuming from suspend, all af_iucv sockets are disconnected.
    Ensure that iucv_accept_dequeue() can handle disconnected sockets
    which are not yet accepted.

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

    Hendrik Brueckner
     
  • Moving prepare_to_wait before the condition to avoid a race between
    schedule_timeout and wake up.
    The race can appear during iucv_sock_connect() and iucv_callback_connack().

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

    Hendrik Brueckner
     
  • The iucv_query_maxconn() function uses the wrong output register and
    stores the size of the interrupt buffer instead of the maximum number
    of connections.

    According to the QUERY IUCV function, general register 1 contains the
    maximum number of connections.

    If the maximum number of connections is not set properly, the following
    warning is displayed:

    Badness at /usr/src/kernel-source/2.6.30-39.x.20090806/net/iucv/iucv.c:1808
    Modules linked in: netiucv fsm af_iucv sunrpc qeth_l3 dm_multipath dm_mod vmur qeth ccwgroup
    CPU: 0 Tainted: G W 2.6.30 #4
    Process seq (pid: 16925, task: 0000000030e24a40, ksp: 000000003033bd98)
    Krnl PSW : 0404200180000000 000000000053b270 (iucv_external_interrupt+0x64/0x224)
    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: 00000000011279c2 00000000014bdb70 0029000000000000 0000000000000029
    000000000053b236 000000000001dba4 0000000000000000 0000000000859210
    0000000000a67f68 00000000008a6100 000000003f83fb90 0000000000004000
    000000003f8c7bc8 00000000005a2250 000000000053b236 000000003fc2fe08
    Krnl Code: 000000000053b262: e33010000021 clg %r3,0(%r1)
    000000000053b268: a7440010 brc 4,53b288
    000000000053b26c: a7f40001 brc 15,53b26e
    >000000000053b270: c03000184134 larl %r3,8434d8
    000000000053b276: eb220030000c srlg %r2,%r2,48
    000000000053b27c: eb6ff0a00004 lmg %r6,%r15,160(%r15)
    000000000053b282: c0f4fffff6a7 brcl 15,539fd0
    000000000053b288: 4310a003 ic %r1,3(%r10)
    Call Trace:
    ([] iucv_external_interrupt+0x2a/0x224)
    [] do_extint+0x132/0x190
    [] ext_no_vtime+0x1e/0x22
    [] _spin_unlock_irqrestore+0x96/0xa4
    ([] _spin_unlock_irqrestore+0x8c/0xa4)
    [] pipe_write+0x3da/0x5bc
    [] do_sync_write+0xe4/0x13c
    [] vfs_write+0xae/0x15c
    [] SyS_write+0x54/0xac
    [] sysc_noemu+0x10/0x16
    [] 0x42ff8defcc

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

    Hendrik Brueckner
     
  • 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