1. Apr 14, 2012
  2. Apr 13, 2012
    • sjur.brandeland@stericsson.com's avatar
      caif-hsi: Postpone init of HSI until open() · 39abbaef
      sjur.brandeland@stericsson.com authored
      
      
      Do the initialization of the HSI interface when the
      interface is opened, instead of upon registration.
      When the interface is closed the HSI interface is
      de-initialized, allowing other modules to use the
      HSI interface.
      
      Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39abbaef
    • sjur.brandeland@stericsson.com's avatar
      caif-hsi: Remove stop/start of queue. · 2df1fe7f
      sjur.brandeland@stericsson.com authored
      
      
      CAIF HSI is currently a virtual device. Stopping/starting the
      queues is wrong on a virtual device.
      
      Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2df1fe7f
    • Dmitry Tarnyagin's avatar
      caif-hsi: robust frame aggregation for HSI · ece367d5
      Dmitry Tarnyagin authored
      
      
      Implement aggregation algorithm, combining more data into a single
      HSI transfer. 4 different traffic categories are supported:
       1. TC_PRIO_CONTROL .. TC_PRIO_MAX (CTL)
       2. TC_PRIO_INTERACTIVE            (VO)
       3. TC_PRIO_INTERACTIVE_BULK       (VI)
       4. TC_PRIO_BESTEFFORT, TC_PRIO_BULK, TC_PRIO_FILLER (BEBK)
      
      Signed-off-by: default avatarDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ece367d5
    • Dmitry Tarnyagin's avatar
      caif: set traffic class for caif packets · 44764812
      Dmitry Tarnyagin authored
      
      
      Set traffic class for CAIF packets, based on socket
      priority, CAIF protocol type, or type of message.
      
      Traffic class mapping for different packet types:
       - control:       TC_PRIO_CONTROL;
       - flow control:  TC_PRIO_CONTROL;
       - at:            TC_PRIO_CONTROL;
       - rfm:           TC_PRIO_INTERACTIVE_BULK;
       - other sockets: equals to socket's TC;
       - network data:  no change.
      
      Signed-off-by: default avatarDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44764812
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · e65ac4d5
      David S. Miller authored
      
      
      Pull in the 'net' tree to get CAIF bug fixes upon which
      the following set of CAIF feature patches depend.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e65ac4d5
    • Kim Lilliestierna XX's avatar
      caif_hsi: use dev_dbg not dev_err for reporting · d62f8dbb
      Kim Lilliestierna XX authored
      
      
      Use dev_dbg instead of dev_err for reporting in cfhsi_wakeup_cb.
      
      Signed-off-by: default avatarKim Lilliestierna <kim.xx.lilliestierna@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d62f8dbb
    • sjur.brandeland@stericsson.com's avatar
      caif-hsi: Free flip_buffer at shutdown · 5f614e6b
      sjur.brandeland@stericsson.com authored
      
      
      Fix memory leak of RX flip-buffer.
      
      Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f614e6b
    • Tomasz Gregorek's avatar
      caif: Fix memory leakage in the chnl_net.c. · 5c699fb7
      Tomasz Gregorek authored
      
      
      Added kfree_skb() calls in the chnk_net.c file on
      the error paths.
      
      Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5c699fb7
    • James Chapman's avatar
      l2tp: don't overwrite source address in l2tp_ip_bind() · c9be48dc
      James Chapman authored
      
      
      Applications using L2TP/IP sockets want to be able to bind() an L2TP/IP
      socket to set the local tunnel id while leaving the auto-assigned source
      address alone. So if no source address is supplied, don't overwrite
      the address already stored in the socket.
      
      Signed-off-by: default avatarJames Chapman <jchapman@katalix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c9be48dc
    • James Chapman's avatar
      l2tp: fix refcount leak in l2tp_ip sockets · d1f224ae
      James Chapman authored
      
      
      The l2tp_ip socket close handler does not update the module refcount
      correctly which prevents module unload after the first bind() call on
      an L2TPv3 IP encapulation socket.
      
      Signed-off-by: default avatarJames Chapman <jchapman@katalix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d1f224ae
    • Torsten Kaiser's avatar
      net: Fix misplaced parenthesis in virtio_net.c · 31304165
      Torsten Kaiser authored
      Commit 2e57b79c
      
       misplaced its
      parenthesis and now tx_fifo_errors will only be incremented if an
      ENOMEM error is not written to the syslog.
      
      Correct the parenthesis and indentation to the original goal of
      counting all non ENOMEM errors and ratelimiting only the messages.
      
      Signed-of-by: default avatarTorsten Kaiser <just.for.lkml@googlemail.com>
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31304165
    • Julia Lawall's avatar
      net/key/af_key.c: add missing kfree_skb · 89eb06f1
      Julia Lawall authored
      
      
      At the point of this error-handling code, alloc_skb has succeded, so free
      the resulting skb by jumping to the err label.
      
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      89eb06f1
    • Eric W. Biederman's avatar
      phonet: Sort out initiailziation and cleanup code. · 03478756
      Eric W. Biederman authored
      
      
      Recently an oops was reported in phonet if there was a failure during
      network namespace creation.
      
      [  163.733755] ------------[ cut here ]------------
      [  163.734501] kernel BUG at include/net/netns/generic.h:45!
      [  163.734501] invalid opcode: 0000 [#1] PREEMPT SMP
      [  163.734501] CPU 2
      [  163.734501] Pid: 19145, comm: trinity Tainted: G        W 3.4.0-rc1-next-20120405-sasha-dirty #57
      [  163.734501] RIP: 0010:[<ffffffff824d6062>]  [<ffffffff824d6062>] phonet_pernet+0x182/0x1a0
      [  163.734501] RSP: 0018:ffff8800674d5ca8  EFLAGS: 00010246
      [  163.734501] RAX: 000000003fffffff RBX: 0000000000000000 RCX: ffff8800678c88d8
      [  163.734501] RDX: 00000000003f4000 RSI: ffff8800678c8910 RDI: 0000000000000282
      [  163.734501] RBP: ffff8800674d5cc8 R08: 0000000000000000 R09: 0000000000000000
      [  163.734501] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880068bec920
      [  163.734501] R13: ffffffff836b90c0 R14: 0000000000000000 R15: 0000000000000000
      [  163.734501] FS:  00007f055e8de700(0000) GS:ffff88007d000000(0000) knlGS:0000000000000000
      [  163.734501] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [  163.734501] CR2: 00007f055e6bb518 CR3: 0000000070c16000 CR4: 00000000000406e0
      [  163.734501] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  163.734501] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [  163.734501] Process trinity (pid: 19145, threadinfo ffff8800674d4000, task ffff8800678c8000)
      [  163.734501] Stack:
      [  163.734501]  ffffffff824d5f00 ffffffff810e2ec1 ffff880067ae0000 00000000ffffffd4
      [  163.734501]  ffff8800674d5cf8 ffffffff824d667a ffff880067ae0000 00000000ffffffd4
      [  163.734501]  ffffffff836b90c0 0000000000000000 ffff8800674d5d18 ffffffff824d707d
      [  163.734501] Call Trace:
      [  163.734501]  [<ffffffff824d5f00>] ? phonet_pernet+0x20/0x1a0
      [  163.734501]  [<ffffffff810e2ec1>] ? get_parent_ip+0x11/0x50
      [  163.734501]  [<ffffffff824d667a>] phonet_device_destroy+0x1a/0x100
      [  163.734501]  [<ffffffff824d707d>] phonet_device_notify+0x3d/0x50
      [  163.734501]  [<ffffffff810dd96e>] notifier_call_chain+0xee/0x130
      [  163.734501]  [<ffffffff810dd9d1>] raw_notifier_call_chain+0x11/0x20
      [  163.734501]  [<ffffffff821cce12>] call_netdevice_notifiers+0x52/0x60
      [  163.734501]  [<ffffffff821cd235>] rollback_registered_many+0x185/0x270
      [  163.734501]  [<ffffffff821cd334>] unregister_netdevice_many+0x14/0x60
      [  163.734501]  [<ffffffff823123e3>] ipip_exit_net+0x1b3/0x1d0
      [  163.734501]  [<ffffffff82312230>] ? ipip_rcv+0x420/0x420
      [  163.734501]  [<ffffffff821c8515>] ops_exit_list+0x35/0x70
      [  163.734501]  [<ffffffff821c911b>] setup_net+0xab/0xe0
      [  163.734501]  [<ffffffff821c9416>] copy_net_ns+0x76/0x100
      [  163.734501]  [<ffffffff810dc92b>] create_new_namespaces+0xfb/0x190
      [  163.734501]  [<ffffffff810dca21>] unshare_nsproxy_namespaces+0x61/0x80
      [  163.734501]  [<ffffffff810afd1f>] sys_unshare+0xff/0x290
      [  163.734501]  [<ffffffff8187622e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [  163.734501]  [<ffffffff82665539>] system_call_fastpath+0x16/0x1b
      [  163.734501] Code: e0 c3 fe 66 0f 1f 44 00 00 48 c7 c2 40 60 4d 82 be 01 00 00 00 48 c7 c7 80 d1 23 83 e8 48 2a c4 fe e8 73 06 c8 fe 48 85 db 75 0e <0f> 0b 0f 1f 40 00 eb fe 66 0f 1f 44 00 00 48 83 c4 10 48 89 d8
      [  163.734501] RIP  [<ffffffff824d6062>] phonet_pernet+0x182/0x1a0
      [  163.734501]  RSP <ffff8800674d5ca8>
      [  163.861289] ---[ end trace fb5615826c548066 ]---
      
      After investigation it turns out there were two issues.
      1) Phonet was not implementing network devices but was using register_pernet_device
         instead of register_pernet_subsys.
      
         This was allowing there to be cases when phonenet was not initialized and
         the phonet net_generic was not set for a network namespace when network
         device events were being reported on the netdevice_notifier for a network
         namespace leading to the oops above.
      
      2) phonet_exit_net was implementing a confusing and special case of handling all
         network devices from going away that it was hard to see was correct, and would
         only occur when the phonet module was removed.
      
         Now that unregister_netdevice_notifier has been modified to synthesize unregistration
         events for the network devices that are extant when called this confusing special
         case in phonet_exit_net is no longer needed.
      
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Acked-by: default avatarRémi Denis-Courmont <remi.denis-courmont@nokia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03478756
    • Eric W. Biederman's avatar
      net: In unregister_netdevice_notifier unregister the netdevices. · 7d3d43da
      Eric W. Biederman authored
      
      
      We already synthesize events in register_netdevice_notifier and synthesizing
      events in unregister_netdevice_notifier allows to us remove the need for
      special case cleanup code.
      
      This change should be safe as it adds no new cases for existing callers
      of unregiser_netdevice_notifier to handle.
      
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d3d43da
    • David S. Miller's avatar
    • David S. Miller's avatar
    • Eldad Zack's avatar
      net/ipv6/exthdrs.c: Strict PadN option checking · c1412fce
      Eldad Zack authored
      
      
      Added strict checking of PadN, as PadN can be used to increase header
      size and thus push the protocol header into the 2nd fragment.
      
      PadN is used to align the options within the Hop-by-Hop or
      Destination Options header to 64-bit boundaries. The maximum valid
      size is thus 7 bytes.
      RFC 4942 recommends to actively check the "payload" itself and
      ensure that it contains only zeroes.
      
      See also RFC 4942 section 2.1.9.5.
      
      Signed-off-by: default avatarEldad Zack <eldad@fogrefinery.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1412fce
    • Linus Torvalds's avatar
      Merge branch 'akpm' (Andrew's patch-bomb) · ecca5c3a
      Linus Torvalds authored
      Merge fixes from Andrew Morton.
      
      * emailed from Andrew Morton <akpm@linux-foundation.org>: (14 patches)
        panic: fix stack dump print on direct call to panic()
        drivers/rtc/rtc-pl031.c: enable clock on all ST variants
        Revert "mm: vmscan: fix misused nr_reclaimed in shrink_mem_cgroup_zone()"
        hugetlb: fix race condition in hugetlb_fault()
        drivers/rtc/rtc-twl.c: use static register while reading time
        drivers/rtc/rtc-s3c.c: add placeholder for driver private data
        drivers/rtc/rtc-s3c.c: fix compilation error
        MAINTAINERS: add PCDP console maintainer
        memcg: do not open code accesses to res_counter members
        drivers/rtc/rtc-efi.c: fix section mismatch warning
        drivers/rtc/rtc-r9701.c: reset registers if invalid values are detected
        drivers/char/random.c: fix boot id uniqueness race
        memcg: fix broken boolen expression
        memcg: fix up documentation on global LRU
      ecca5c3a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 174808af
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix bluetooth userland regression reported by Keith Packard, from
          Gustavo Padovan.
      
       2) Revert ath9k PS idle change, from Sujith Manoharan.
      
       3) Correct default TCP memory limits (again), from Eric Dumazet.
      
       4) Fix tcp_rcv_rtt_update() accidental use of unscaled RTT, from Neal
          Cardwell.
      
       5) We made a facility for layers like wireless to say how much tailroom
          they need in the SKB for link layer stuff such as wireless
          encryption etc., but TCP works hard to fill every SKB out to the end
          defeating this specification.
      
          This leads to every TCP packet getting reallocated by the wireless
          code in order to have the right amount of tailroom available.
      
          Fix TCP to only fill SKBs out to the real amount of data area it
          asked for during the allocation, this way it won't eat into the
          slack added for the device's tailroom needs.
      
          Reported by Marc Merlin and fixed by Eric...
      174808af