22 Jul, 2009

5 commits

  • Apparently there actually _are_ tools that try to set
    this in sysfs even though it wasn't supposed to be used
    this way without claiming first. Guess what: now that
    I've cleaned it all up it doesn't matter and we can
    simply allow setting the soft-block state in sysfs.

    Signed-off-by: Johannes Berg
    Tested-By: Darren Salt
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • My kvm instance was complaining a lot about sleeping
    in atomic contexts in the mesh code, and it turns out
    that both mesh_path_add() and mpp_path_add() need to
    be able to sleep (they even use synchronize_rcu()!).
    I put in a might_sleep() to annotate that, but I see
    no way, at least right now, of actually making sure
    those functions are only called from process context
    since they are both called during TX and RX and the
    mesh code itself even calls them with rcu_read_lock()
    "held".

    Therefore, let's disable it completely for now.

    It's possible that I'm only seeing this because the
    hwsim's beaconing is broken and thus the peers aren't
    discovered right away, but it is possible that this
    happens even if beaconing is working, for a peer that
    doesn't exist or so.

    It should be possible to solve this by deferring the
    freeing of the tables to call_rcu() instead of using
    synchronize_rcu(), and also using atomic allocations,
    but maybe it makes more sense to rework the code to
    not call these from atomic contexts and defer more of
    the work to the workqueue. Right now, I can't work on
    either of those solutions though.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The byte count table is only used for aggregation. Updating it
    in other cases caused fragmented frames to be dropped.

    This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2004

    Signed-off-by: Reinette Chatre
    Signed-off-by: John W. Linville

    Reinette Chatre
     
  • This changes the power_level file to adhere to the "one value
    per file" sysfs rule. The user will know which power level was
    requested as it will be the number just written to this file. It
    is thus not necessary to create a new sysfs file for this value.

    In addition it fixes a problem where powertop's parsing expects
    this value to be the first value in this file without any descriptions.

    Signed-off-by: Reinette Chatre
    cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Reinette Chatre
     
  • The driver private data is now based on wiphy. So we should not
    touch the private data after wiphy_free() is called. The patch
    fixes the potential NULL pointer dereference by making the
    iwm_wdev_free() the last one on the interface removal path.

    Signed-off-by: Zhu Yi
    Signed-off-by: John W. Linville

    Zhu Yi
     

21 Jul, 2009

3 commits


20 Jul, 2009

10 commits

  • rain_maker@root-forum.org wrote:
    > Hello cesar,
    >
    > In a recent thread in a german linux forum, a user reported his PIC
    > NIC not being recognized by the kernel.
    >
    > Fortunately he provided enough information and I was able to help him
    > and get the device working with the sc92031 driver.
    >
    > The device ID is [1088:2031] (Vendor is called "Microcomputer Systems
    > (M) Son"), here is the respective thread in "ubuntuusers.de"
    >
    > http://forum.ubuntuusers.de/topic/lankarte-unter-xubuntu-wird-nicht-erkannt/
    >
    > (Although you might not speak german, the code provided will show
    > you, that the device is actually working with your driver).
    >
    > It would be nice, if you include this new device ID to the
    > sc92031-driver.
    >
    > Regards,
    >
    > Axel Köllhofer (aka Rain_Maker)

    Cc: rain_maker@root-forum.org
    Signed-off-by: Cesar Eduardo Barros
    Signed-off-by: David S. Miller

    Cesar Eduardo Barros
     
  • 3c589_cs:
    re-initialize the multicast in the tc589_reset,
    and spin_lock the set_multicast_list function.

    Signed-off-by: Ken Kawasaki
    Signed-off-by: David S. Miller

    Ken Kawasaki
     
  • I guess it should be -EINVAL rather than EINVAL. I have not checked
    when the bug came in. Perhaps a candidate for -stable?

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     
  • Check temperature for all PCI functions, that can allow
    graceful shutdown of all interfaces on the overheated card.

    Old code was only monitoring temperature for function 0 only.

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

    Dhananjay Phadke
     
  • netxen: fix deadlock on dev close

    The tx ring accounting fix in commit cb2107be43d2fc5eadec58b92b
    ("netxen: fix tx ring accounting") introduced intermittent
    deadlock when inteface is going down.

    This was possibly combined effect of speculative tx pause,
    calling netif_tx_lock instead of queue lock and unclean
    synchronization with napi which could end up unmasking
    interrupt.

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

    Dhananjay Phadke
     
  • o Use D3 reset context deletion for NX2031, it cleans up
    more resources in the firmware.
    o Release rx buffers after hardware context has been reset.
    o Delete tx context after rx context, some firmware control
    commands are sent on tx context, so it should be the last
    to go.

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

    Dhananjay Phadke
     
  • Network driver for the SPI version of the Micrel KS8851
    network chip.

    Signed-off-by: Ben Dooks
    Signed-off-by: David S. Miller

    Ben Dooks
     
  • When the TCP connection handshake completes on the passive
    side, a variety of state must be set up in the "child" sock,
    including the key if MD5 authentication is being used. Fix TCP
    for both address families to label the key with the peer's
    destination address, rather than the address from the listening
    sock, which is usually the wildcard.

    Reported-by: Stephen Hemminger
    Signed-off-by: John Dykstra
    Signed-off-by: David S. Miller

    John Dykstra
     
  • Fix MD5 signature checking so that an IPv4 active open
    to an IPv6 socket can succeed. In particular, use the
    correct address family's signature generation function
    for the SYN/ACK.

    Reported-by: Stephen Hemminger
    Signed-off-by: John Dykstra
    Signed-off-by: David S. Miller

    John Dykstra
     
  • Add mac driver support for evaluation board based on w90p910.

    Signed-off-by: Wan ZongShun
    Signed-off-by: David S. Miller

    Wan ZongShun
     

18 Jul, 2009

2 commits


17 Jul, 2009

10 commits

  • When the driver received an EEM packet with CRC option enabled, driver must
    compute and check the CRC of the Ethernet data. Previous version computes CRC
    on Ethernet data plus the original CRC value. Skbuff is correctly trimed but
    the old length is used when CRC is computed.

    Signed-off-by: Vincent CUISSARD
    Signed-off-by: David S. Miller

    Vincent CUISSARD
     
  • Remove debug DPRINTK in DCB mode netlink interface.

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

    Lucy Liu
     
  • This change clears the address data block memory space, which is needed for
    the 82598 which does not have a SAN MAC.

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

    Lucy Liu
     
  • The commit changes to shutdown path broke startup on some systems.

    revert commit c0bad0f2e4366d5bbfe0c4a7a80bca8f4b05272b

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Commit e912b1142be8f1e2c71c71001dc992c6e5eb2ec1
    (net: sk_prot_alloc() should not blindly overwrite memory)
    took care of not zeroing whole new socket at allocation time.

    sock_copy() is another spot where we should be very careful.
    We should not set refcnt to a non null value, until
    we are sure other fields are correctly setup, or
    a lockless reader could catch this socket by mistake,
    while not fully (re)initialized.

    This patch puts sk_node & sk_refcnt to the very beginning
    of struct sock to ease sock_copy() & sk_prot_alloc() job.

    We add appropriate smp_wmb() before sk_refcnt initializations
    to match our RCU requirements (changes to sock keys should
    be committed to memory before sk_refcnt setting)

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

    Eric Dumazet
     
  • E100 places it's RX packet descriptors inside skb->data and uses them
    with bidirectional streaming DMA mapping. Unfortunately it fails to
    transfer skb->data ownership to the device after it reads the
    descriptor's status, breaking on non-coherent (e.g., ARM) platforms.

    This have to be converted to use coherent memory for the descriptors.

    Signed-off-by: Krzysztof Halasa
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Krzysztof Halasa
     
  • Bonding device forbids slave device of different types under the same
    master.

    However, it is possible for a bonding master to change type during its
    lifetime. This can be either from ARPHRD_ETHER to ARPHRD_INFINIBAND
    or the other way arround. The change of type requires device level
    multicast address cleanup because device level multicast addresses
    depend on the device type.

    The patch adds a call to dev_close() before the bonding master changes
    type and dev_open() just after that.

    In the example below I enslaved an IPoIB device (ib0) under
    bond0. Since each bonding master starts as device of type ARPHRD_ETHER
    by default, a change of type occurs when ib0 is enslaved.

    This is how /proc/net/dev_mcast looks like without the patch

    5 bond0 1 0 00ffffffff12601bffff000000000001ff96ca05
    5 bond0 1 0 01005e000116
    5 bond0 1 0 01005e7ffffd
    5 bond0 1 0 01005e000001
    5 bond0 1 0 333300000001
    6 ib0 1 0 00ffffffff12601bffff000000000001ff96ca05
    6 ib0 1 0 333300000001
    6 ib0 1 0 01005e000001
    6 ib0 1 0 01005e7ffffd
    6 ib0 1 0 01005e000116
    6 ib0 1 0 00ffffffff12401bffff00000000000000000001
    6 ib0 1 0 00ffffffff12601bffff00000000000000000001

    and this is how it looks like after the patch.

    5 bond0 1 0 00ffffffff12601bffff000000000001ff96ca05
    5 bond0 1 0 00ffffffff12601bffff00000000000000000001
    5 bond0 1 0 00ffffffff12401bffff0000000000000ffffffd
    5 bond0 1 0 00ffffffff12401bffff00000000000000000116
    5 bond0 1 0 00ffffffff12401bffff00000000000000000001
    6 ib0 1 0 00ffffffff12601bffff000000000001ff96ca05
    6 ib0 1 0 00ffffffff12401bffff00000000000000000116
    6 ib0 1 0 00ffffffff12401bffff0000000000000ffffffd
    6 ib0 2 0 00ffffffff12401bffff00000000000000000001
    6 ib0 2 0 00ffffffff12601bffff00000000000000000001

    Signed-off-by: Moni Shoua
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Moni Shoua
     
  • Fix misplaced parenthesis

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

    roel kluin
     
  • Parentheses are required or the comparison occurs before the bitand.

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

    roel kluin
     
  • David S. Miller
     

16 Jul, 2009

4 commits

  • When a slab cache uses SLAB_DESTROY_BY_RCU, we must be careful when allocating
    objects, since slab allocator could give a freed object still used by lockless
    readers.

    In particular, nf_conntrack RCU lookups rely on ct->tuplehash[xxx].hnnode.next
    being always valid (ie containing a valid 'nulls' value, or a valid pointer to next
    object in hash chain.)

    kmem_cache_zalloc() setups object with NULL values, but a NULL value is not valid
    for ct->tuplehash[xxx].hnnode.next.

    Fix is to call kmem_cache_alloc() and do the zeroing ourself.

    As spotted by Patrick, we also need to make sure lookup keys are committed to
    memory before setting refcount to 1, or a lockless reader could get a reference
    on the old version of the object. Its key re-check could then pass the barrier.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Patrick McHardy

    Eric Dumazet
     
  • The first argument is the address family, the second one the hook
    number.

    Signed-off-by: Patrick McHardy

    Patrick McHardy
     
  • Add appropriate MODULE_ALIAS() to facilitate autoloading of can protocol drivers

    Signed-off-by: Lothar Wassmann
    Acked-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Lothar Waßmann
     
  • Fix a use after free bug in can protocol drivers

    The release functions of the can protocol drivers lack a call to
    sock_orphan() which leads to referencing freed memory under certain
    circumstances.

    This patch fixes a bug reported here:
    https://lists.berlios.de/pipermail/socketcan-users/2009-July/000985.html

    Signed-off-by: Lothar Wassmann
    Acked-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Lothar Waßmann
     

15 Jul, 2009

5 commits


14 Jul, 2009

1 commit

  • forward declaration of inline function should be avoided, or
    old gcc cannot compile.

    Reported-by: Teck Choon Giam
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet