1. 13 5月, 2011 21 次提交
  2. 12 5月, 2011 7 次提交
  3. 11 5月, 2011 12 次提交
    • D
    • O
      slcan: fix ldisc->open retval · 0d4420a9
      Oliver Hartkopp 提交于
      TTY layer expects 0 if the ldisc->open operation succeeded.
      Reported-by: NMatvejchikov Ilya <matvejchikov@gmail.com>
      Signed-off-by: NOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d4420a9
    • D
      net/usb: mark LG VL600 LTE modem ethernet interface as WWAN · aae1e743
      Dan Williams 提交于
      Like other mobile broadband device ethernet interfaces, mark the LG
      VL600 with the 'wwan' devtype so userspace knows it needs additional
      configuration via the AT port before the interface can be used.
      Signed-off-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aae1e743
    • S
      xfrm: Don't allow esn with disabled anti replay detection · 6fa5ddcc
      Steffen Klassert 提交于
      Unlike the standard case, disabled anti replay detection needs some
      nontrivial extra treatment on ESN. RFC 4303 states:
      
      Note: If a receiver chooses to not enable anti-replay for an SA, then
      the receiver SHOULD NOT negotiate ESN in an SA management protocol.
      Use of ESN creates a need for the receiver to manage the anti-replay
      window (in order to determine the correct value for the high-order
      bits of the ESN, which are employed in the ICV computation), which is
      generally contrary to the notion of disabling anti-replay for an SA.
      
      So return an error if an ESN state with disabled anti replay detection
      is inserted for now and add the extra treatment later if we need it.
      Signed-off-by: NSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6fa5ddcc
    • S
      xfrm: Assign the inner mode output function to the dst entry · 43a4dea4
      Steffen Klassert 提交于
      As it is, we assign the outer modes output function to the dst entry
      when we create the xfrm bundle. This leads to two problems on interfamily
      scenarios. We might insert ipv4 packets into ip6_fragment when called
      from xfrm6_output. The system crashes if we try to fragment an ipv4
      packet with ip6_fragment. This issue was introduced with git commit
      ad0081e4 (ipv6: Fragment locally generated tunnel-mode IPSec6 packets
      as needed). The second issue is, that we might insert ipv4 packets in
      netfilter6 and vice versa on interfamily scenarios.
      
      With this patch we assign the inner mode output function to the dst entry
      when we create the xfrm bundle. So xfrm4_output/xfrm6_output from the inner
      mode is used and the right fragmentation and netfilter functions are called.
      We switch then to outer mode with the output_finish functions.
      Signed-off-by: NSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      43a4dea4
    • E
      net: dev_close() should check IFF_UP · e14a5993
      Eric Dumazet 提交于
      Commit 44345724 (factorize sync-rcu call in
      unregister_netdevice_many) mistakenly removed one test from dev_close()
      
      Following actions trigger a BUG :
      
      modprobe bonding
      modprobe dummy
      ifconfig bond0 up
      ifenslave bond0 dummy0
      rmmod dummy
      
      dev_close() must not close a non IFF_UP device.
      
      With help from Frank Blaschka and Einar EL Lueck
      Reported-by: NFrank Blaschka <blaschka@linux.vnet.ibm.com>
      Reported-by: NEinar EL Lueck <ELELUECK@de.ibm.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e14a5993
    • E
      vlan: fix GVRP at dismantle time · 55aee10d
      Eric Dumazet 提交于
      ip link add link eth2 eth2.103 type vlan id 103 gvrp on loose_binding on
      ip link set eth2.103 up
      rmmod tg3    # driver providing eth2
      
       BUG: unable to handle kernel NULL pointer dereference at           (null)
       IP: [<ffffffffa0030c9e>] garp_request_leave+0x3e/0xc0 [garp]
       PGD 11d251067 PUD 11b9e0067 PMD 0
       Oops: 0000 [#1] SMP
       last sysfs file: /sys/devices/virtual/net/eth2.104/ifindex
       CPU 0
       Modules linked in: tg3(-) 8021q garp nfsd lockd auth_rpcgss sunrpc libphy sg [last unloaded: x_tables]
      
       Pid: 11494, comm: rmmod Tainted: G        W   2.6.39-rc6-00261-gfd71257-dirty #580 HP ProLiant BL460c G6
       RIP: 0010:[<ffffffffa0030c9e>]  [<ffffffffa0030c9e>] garp_request_leave+0x3e/0xc0 [garp]
       RSP: 0018:ffff88007a19bae8  EFLAGS: 00010286
       RAX: 0000000000000000 RBX: ffff88011b5e2000 RCX: 0000000000000002
       RDX: 0000000000000000 RSI: 0000000000000175 RDI: ffffffffa0030d5b
       RBP: ffff88007a19bb18 R08: 0000000000000001 R09: ffff88011bd64a00
       R10: ffff88011d34ec00 R11: 0000000000000000 R12: 0000000000000002
       R13: ffff88007a19bc48 R14: ffff88007a19bb88 R15: 0000000000000001
       FS:  0000000000000000(0000) GS:ffff88011fc00000(0063) knlGS:00000000f77d76c0
       CS:  0010 DS: 002b ES: 002b CR0: 000000008005003b
       CR2: 0000000000000000 CR3: 000000011a675000 CR4: 00000000000006f0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
       Process rmmod (pid: 11494, threadinfo ffff88007a19a000, task ffff8800798595c0)
       Stack:
        ffff88007a19bb36 ffff88011c84b800 ffff88011b5e2000 ffff88007a19bc48
        ffff88007a19bb88 0000000000000006 ffff88007a19bb38 ffffffffa003a5f6
        ffff88007a19bb38 670088007a19bba8 ffff88007a19bb58 ffffffffa00397e7
       Call Trace:
        [<ffffffffa003a5f6>] vlan_gvrp_request_leave+0x46/0x50 [8021q]
        [<ffffffffa00397e7>] vlan_dev_stop+0xb7/0xc0 [8021q]
        [<ffffffff8137e427>] __dev_close_many+0x87/0xe0
        [<ffffffff8137e507>] dev_close_many+0x87/0x110
        [<ffffffff8137e630>] rollback_registered_many+0xa0/0x240
        [<ffffffff8137e7e9>] unregister_netdevice_many+0x19/0x60
        [<ffffffffa00389eb>] vlan_device_event+0x53b/0x550 [8021q]
        [<ffffffff8143f448>] ? ip6mr_device_event+0xa8/0xd0
        [<ffffffff81479d03>] notifier_call_chain+0x53/0x80
        [<ffffffff81062539>] __raw_notifier_call_chain+0x9/0x10
        [<ffffffff81062551>] raw_notifier_call_chain+0x11/0x20
        [<ffffffff8137df82>] call_netdevice_notifiers+0x32/0x60
        [<ffffffff8137e69f>] rollback_registered_many+0x10f/0x240
        [<ffffffff8137e85f>] rollback_registered+0x2f/0x40
        [<ffffffff8137e8c8>] unregister_netdevice_queue+0x58/0x90
        [<ffffffff8137e9eb>] unregister_netdev+0x1b/0x30
        [<ffffffffa005d73f>] tg3_remove_one+0x6f/0x10b [tg3]
      
      We should call vlan_gvrp_request_leave() from unregister_vlan_dev(),
      not from vlan_dev_stop(), because vlan_gvrp_uninit_applicant()
      is called right after unregister_netdevice_queue(). In batch mode,
      unregister_netdevice_queue() doesn’t immediately call vlan_dev_stop().
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      55aee10d
    • E
      net: fix two lockdep splats · 1fc19aff
      Eric Dumazet 提交于
      Commit e67f88dd (net: dont hold rtnl mutex during netlink dump
      callbacks) switched rtnl protection to RCU, but we forgot to adjust two
      rcu_dereference() lockdep annotations :
      
      inet_get_link_af_size() or inet_fill_link_af() might be called with
      rcu_read_lock or rtnl held, so use rcu_dereference_rtnl()
      instead of rtnl_dereference()
      Reported-by: NValdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1fc19aff
    • D
      ipv4: xfrm: Eliminate ->rt_src reference in policy code. · 8f01cb08
      David S. Miller 提交于
      Rearrange xfrm4_dst_lookup() so that it works by calling a helper
      function __xfrm_dst_lookup() that takes an explicit flow key storage
      area as an argument.
      
      Use this new helper in xfrm4_get_saddr() so we can fetch the selected
      source address from the flow instead of from rt->rt_src
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8f01cb08
    • D
      infiniband: Remove rt->rt_src usage in addr4_resolve() · 5fc3590c
      David S. Miller 提交于
      Use an explicit flow key and fetch it from there.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fc3590c
    • D
      sctp: Remove rt->rt_src usage in sctp_v4_get_saddr() · 902ebd3e
      David S. Miller 提交于
      Flow key is available, so fetch it from there.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      902ebd3e
    • D
      ipv4: udp: Eliminate remaining uses of rt->rt_src · 79ab0531
      David S. Miller 提交于
      We already track and pass around the correct flow key,
      so simply use it in udp_send_skb().
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79ab0531