1. 08 Aug, 2016 1 commit
  2. 07 Aug, 2016 4 commits
  3. 06 Aug, 2016 5 commits
    • Geert Uytterhoeven's avatar
      net: dsa: b53: Add missing ULL suffix for 64-bit constant · 5e3b724e
      Geert Uytterhoeven authored
      On 32-bit (e.g. with m68k-linux-gnu-gcc-4.1):
      
          drivers/net/dsa/b53/b53_common.c: In function ‘b53_arl_read’:
          drivers/net/dsa/b53/b53_common.c:1072: warning: integer constant is too large for ‘long’ type
      
      Fixes: 1da6df85 ("net: dsa: b53: Implement ARL add/del/dump operations")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e3b724e
    • David Forster's avatar
      ipv4: panic in leaf_walk_rcu due to stale node pointer · 94d9f1c5
      David Forster authored
      Panic occurs when issuing "cat /proc/net/route" whilst
      populating FIB with > 1M routes.
      
      Use of cached node pointer in fib_route_get_idx is unsafe.
      
       BUG: unable to handle kernel paging request at ffffc90001630024
       IP: [<ffffffff814cf6a0>] leaf_walk_rcu+0x10/0xe0
       PGD 11b08d067 PUD 11b08e067 PMD dac4b067 PTE 0
       Oops: 0000 [#1] SMP
       Modules linked in: nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscac
       snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep virti
       acpi_cpufreq button parport_pc ppdev lp parport autofs4 ext4 crc16 mbcache jbd
      tio_ring virtio floppy uhci_hcd ehci_hcd usbcore usb_common libata scsi_mod
       CPU: 1 PID: 785 Comm: cat Not tainted 4.2.0-rc8+ #4
       Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
       task: ffff8800da1c0bc0 ti: ffff88011a05c000 task.ti: ffff88011a05c000
       RIP: 0010:[<ffffffff814cf6a0>]  [<ffffffff814cf6a0>] leaf_walk_rcu+0x10/0xe0
       RSP: 0018:ffff88011a05fda0  EFLAGS: 00010202
       RAX: ffff8800d8a40c00 RBX: ffff8800da4af940 RCX: ffff88011a05ff20
       RDX: ffffc90001630020 RSI: 0000000001013531 RDI: ffff8800da4af950
       RBP: 0000000000000000 R08: ffff8800da1f9a00 R09: 0000000000000000
       R10: ffff8800db45b7e4 R11: 0000000000000246 R12: ffff8800da4af950
       R13: ffff8800d97a74c0 R14: 0000000000000000 R15: ffff8800d97a7480
       FS:  00007fd3970e0700(0000) GS:ffff88011fd00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
       CR2: ffffc90001630024 CR3: 000000011a7e4000 CR4: 00000000000006e0
       Stack:
        ffffffff814d00d3 0000000000000000 ffff88011a05ff20 ffff8800da1f9a00
        ffffffff811dd8b9 0000000000000800 0000000000020000 00007fd396f35000
        ffffffff811f8714 0000000000003431 ffffffff8138dce0 0000000000000f80
       Call Trace:
        [<ffffffff814d00d3>] ? fib_route_seq_start+0x93/0xc0
        [<ffffffff811dd8b9>] ? seq_read+0x149/0x380
        [<ffffffff811f8714>] ? fsnotify+0x3b4/0x500
        [<ffffffff8138dce0>] ? process_echoes+0x70/0x70
        [<ffffffff8121cfa7>] ? proc_reg_read+0x47/0x70
        [<ffffffff811bb823>] ? __vfs_read+0x23/0xd0
        [<ffffffff811bbd42>] ? rw_verify_area+0x52/0xf0
        [<ffffffff811bbe61>] ? vfs_read+0x81/0x120
        [<ffffffff811bcbc2>] ? SyS_read+0x42/0xa0
        [<ffffffff81549ab2>] ? entry_SYSCALL_64_fastpath+0x16/0x75
       Code: 48 85 c0 75 d8 f3 c3 31 c0 c3 f3 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00
      a 04 89 f0 33 02 44 89 c9 48 d3 e8 0f b6 4a 05 49 89
       RIP  [<ffffffff814cf6a0>] leaf_walk_rcu+0x10/0xe0
        RSP <ffff88011a05fda0>
       CR2: ffffc90001630024
      Signed-off-by: default avatarDave Forster <dforster@brocade.com>
      Acked-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      94d9f1c5
    • David Howells's avatar
      rxrpc: Fix races between skb free, ACK generation and replying · 372ee163
      David Howells authored
      Inside the kafs filesystem it is possible to occasionally have a call
      processed and terminated before we've had a chance to check whether we need
      to clean up the rx queue for that call because afs_send_simple_reply() ends
      the call when it is done, but this is done in a workqueue item that might
      happen to run to completion before afs_deliver_to_call() completes.
      
      Further, it is possible for rxrpc_kernel_send_data() to be called to send a
      reply before the last request-phase data skb is released.  The rxrpc skb
      destructor is where the ACK processing is done and the call state is
      advanced upon release of the last skb.  ACK generation is also deferred to
      a work item because it's possible that the skb destructor is not called in
      a context where kernel_sendmsg() can be invoked.
      
      To this end, the following changes are made:
      
       (1) kernel_rxrpc_data_consumed() is added.  This should be called whenever
           an skb is emptied so as to crank the ACK and call states.  This does
           not release the skb, however.  kernel_rxrpc_free_skb() must now be
           called to achieve that.  These together replace
           rxrpc_kernel_data_delivered().
      
       (2) kernel_rxrpc_data_consumed() is wrapped by afs_data_consumed().
      
           This makes afs_deliver_to_call() easier to work as the skb can simply
           be discarded unconditionally here without trying to work out what the
           return value of the ->deliver() function means.
      
           The ->deliver() functions can, via afs_data_complete(),
           afs_transfer_reply() and afs_extract_data() mark that an skb has been
           consumed (thereby cranking the state) without the need to
           conditionally free the skb to make sure the state is correct on an
           incoming call for when the call processor tries to send the reply.
      
       (3) rxrpc_recvmsg() now has to call kernel_rxrpc_data_consumed() when it
           has finished with a packet and MSG_PEEK isn't set.
      
       (4) rxrpc_packet_destructor() no longer calls rxrpc_hard_ACK_data().
      
           Because of this, we no longer need to clear the destructor and put the
           call before we free the skb in cases where we don't want the ACK/call
           state to be cranked.
      
       (5) The ->deliver() call-type callbacks are made to return -EAGAIN rather
           than 0 if they expect more data (afs_extract_data() returns -EAGAIN to
           the delivery function already), and the caller is now responsible for
           producing an abort if that was the last packet.
      
       (6) There are many bits of unmarshalling code where:
      
       		ret = afs_extract_data(call, skb, last, ...);
      		switch (ret) {
      		case 0:		break;
      		case -EAGAIN:	return 0;
      		default:	return ret;
      		}
      
           is to be found.  As -EAGAIN can now be passed back to the caller, we
           now just return if ret < 0:
      
       		ret = afs_extract_data(call, skb, last, ...);
      		if (ret < 0)
      			return ret;
      
       (7) Checks for trailing data and empty final data packets has been
           consolidated as afs_data_complete().  So:
      
      		if (skb->len > 0)
      			return -EBADMSG;
      		if (!last)
      			return 0;
      
           becomes:
      
      		ret = afs_data_complete(call, skb, last);
      		if (ret < 0)
      			return ret;
      
       (8) afs_transfer_reply() now checks the amount of data it has against the
           amount of data desired and the amount of data in the skb and returns
           an error to induce an abort if we don't get exactly what we want.
      
      Without these changes, the following oops can occasionally be observed,
      particularly if some printks are inserted into the delivery path:
      
      general protection fault: 0000 [#1] SMP
      Modules linked in: kafs(E) af_rxrpc(E) [last unloaded: af_rxrpc]
      CPU: 0 PID: 1305 Comm: kworker/u8:3 Tainted: G            E   4.7.0-fsdevel+ #1303
      Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014
      Workqueue: kafsd afs_async_workfn [kafs]
      task: ffff88040be041c0 ti: ffff88040c070000 task.ti: ffff88040c070000
      RIP: 0010:[<ffffffff8108fd3c>]  [<ffffffff8108fd3c>] __lock_acquire+0xcf/0x15a1
      RSP: 0018:ffff88040c073bc0  EFLAGS: 00010002
      RAX: 6b6b6b6b6b6b6b6b RBX: 0000000000000000 RCX: ffff88040d29a710
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88040d29a710
      RBP: ffff88040c073c70 R08: 0000000000000001 R09: 0000000000000001
      R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000
      R13: 0000000000000000 R14: ffff88040be041c0 R15: ffffffff814c928f
      FS:  0000000000000000(0000) GS:ffff88041fa00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007fa4595f4750 CR3: 0000000001c14000 CR4: 00000000001406f0
      Stack:
       0000000000000006 000000000be04930 0000000000000000 ffff880400000000
       ffff880400000000 ffffffff8108f847 ffff88040be041c0 ffffffff81050446
       ffff8803fc08a920 ffff8803fc08a958 ffff88040be041c0 ffff88040c073c38
      Call Trace:
       [<ffffffff8108f847>] ? mark_held_locks+0x5e/0x74
       [<ffffffff81050446>] ? __local_bh_enable_ip+0x9b/0xa1
       [<ffffffff8108f9ca>] ? trace_hardirqs_on_caller+0x16d/0x189
       [<ffffffff810915f4>] lock_acquire+0x122/0x1b6
       [<ffffffff810915f4>] ? lock_acquire+0x122/0x1b6
       [<ffffffff814c928f>] ? skb_dequeue+0x18/0x61
       [<ffffffff81609dbf>] _raw_spin_lock_irqsave+0x35/0x49
       [<ffffffff814c928f>] ? skb_dequeue+0x18/0x61
       [<ffffffff814c928f>] skb_dequeue+0x18/0x61
       [<ffffffffa009aa92>] afs_deliver_to_call+0x344/0x39d [kafs]
       [<ffffffffa009ab37>] afs_process_async_call+0x4c/0xd5 [kafs]
       [<ffffffffa0099e9c>] afs_async_workfn+0xe/0x10 [kafs]
       [<ffffffff81063a3a>] process_one_work+0x29d/0x57c
       [<ffffffff81064ac2>] worker_thread+0x24a/0x385
       [<ffffffff81064878>] ? rescuer_thread+0x2d0/0x2d0
       [<ffffffff810696f5>] kthread+0xf3/0xfb
       [<ffffffff8160a6ff>] ret_from_fork+0x1f/0x40
       [<ffffffff81069602>] ? kthread_create_on_node+0x1cf/0x1cf
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      372ee163
    • Wei Yongjun's avatar
      net: arc_emac: add missing of_node_put() in arc_emac_probe() · 54447f1a
      Wei Yongjun authored
      commit a94efbd7 ("ethernet: arc: emac_main: add missing of_node_put
      after calling of_parse_phandle") added missing of_node_put after calling
      of_parse_phandle, but missing the devm_ioremap_resource() error handling
      case.
      Signed-off-by: default avatarWei Yongjun <weiyj.lk@gmail.com>
      Reviewed-by: default avatarPeter Chen <peter.chen@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54447f1a
    • Ian Wienand's avatar
      OVS: Ignore negative headroom value · 5ef9f289
      Ian Wienand authored
      net_device->ndo_set_rx_headroom (introduced in
      871b642a) says
      
        "Setting a negtaive value reset the rx headroom
         to the default value".
      
      It seems that the OVS implementation in
      3a927bc7 overlooked this and sets
      dev->needed_headroom unconditionally.
      
      This doesn't have an immediate effect, but can mess up later
      LL_RESERVED_SPACE calculations, such as done in
      net/ipv6/mcast.c:mld_newpack.  For reference, this issue was found
      from a skb_panic raised there after the length calculations had given
      the wrong result.
      
      Note the other current users of this interface
      (drivers/net/tun.c:tun_set_headroom and
      drivers/net/veth.c:veth_set_rx_headroom) are both checking this
      correctly thus need no modification.
      
      Thanks to Ben for some pointers from the crash dumps!
      
      Cc: Benjamin Poirier <bpoirier@suse.com>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1361414Signed-off-by: default avatarIan Wienand <iwienand@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ef9f289
  4. 05 Aug, 2016 4 commits
  5. 03 Aug, 2016 15 commits
    • David S. Miller's avatar
      Merge branch 'qlcnic-fixes' · 7cf210dc
      David S. Miller authored
      Manish Chopra says:
      
      ====================
      qlcnic: bug fixes
      
      This series fixes a data structure corruption bug in
      VF's async mailbox commands handling and an issue realted
      to napi poll budget in the driver.
      
      Please consider applying this series to "net"
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7cf210dc
    • Manish Chopra's avatar
      b8b2372d
    • Manish Chopra's avatar
      qlcnic: fix napi budget alteration · fc4ca987
      Manish Chopra authored
      Driver modifies the supplied NAPI budget in qlcnic_83xx_msix_tx_poll()
      function. Instead, it should use the budget as it is.
      Signed-off-by: default avatarManish Chopra <manish.chopra@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fc4ca987
    • Manish Chopra's avatar
      qlcnic: fix data structure corruption in async mbx command handling · 2b10d3ec
      Manish Chopra authored
      This patch fixes a data structure corruption bug in the SRIOV VF mailbox
      handler code. While handling mailbox commands from the atomic context,
      driver is accessing and updating qlcnic_async_work_list_struct entry fields
      in the async work list. These fields could be concurrently accessed by the
      work function resulting in data corruption.
      
      This patch restructures async mbx command handling by using a separate
      async command list instead of using a list of work_struct structures.
      A single work_struct is used to schedule and handle the async commands
      with proper locking mechanism.
      Signed-off-by: default avatarRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: default avatarSony Chacko <sony.chacko@qlogic.com>
      Signed-off-by: default avatarManish Chopra <manish.chopra@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b10d3ec
    • David S. Miller's avatar
      Merge branch 'tg3-fixes' · cfaa2189
      David S. Miller authored
      Siva Reddy Kallam says:
      
      ====================
      tg3: Disallow 0 rx coalesce time and correctly report RSS queues in tg3_get_rxnfc
      
      First patch:
              Diasllow rx coalescing time to be 0
      
      Second patch:
              Report the correct number of RSS queues through tg3_get_rxnfc
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cfaa2189
    • Siva Reddy Kallam's avatar
      tg3: Report the correct number of RSS queues through tg3_get_rxnfc · 9ce6fd7a
      Siva Reddy Kallam authored
      This patch remove the wrong substraction from info->data in
      tg3_get_rxnfc function. Without this patch, the number of RSS
      queues reported is less by one.
      Reported-by: default avatarMichal Soltys <soltys@ziu.info>
      Signed-off-by: default avatarSiva Reddy Kallam <siva.kallam@broadcom.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ce6fd7a
    • Satish Baddipadige's avatar
      tg3: Fix for diasllow rx coalescing time to be 0 · 087d7a8c
      Satish Baddipadige authored
      When the rx coalescing time is 0, interrupts
      are not generated from the controller and rx path hangs.
      To avoid this rx hang, updating the driver to not allow
      rx coalescing time to be 0.
      Signed-off-by: default avatarSatish Baddipadige <satish.baddipadige@broadcom.com>
      Signed-off-by: default avatarSiva Reddy Kallam <siva.kallam@broadcom.com>
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      087d7a8c
    • Jakub Kicinski's avatar
      bpf: fix method of PTR_TO_PACKET reg id generation · 1f415a74
      Jakub Kicinski authored
      Using per-register incrementing ID can lead to
      find_good_pkt_pointers() confusing registers which
      have completely different values.  Consider example:
      
      0: (bf) r6 = r1
      1: (61) r8 = *(u32 *)(r6 +76)
      2: (61) r0 = *(u32 *)(r6 +80)
      3: (bf) r7 = r8
      4: (07) r8 += 32
      5: (2d) if r8 > r0 goto pc+9
       R0=pkt_end R1=ctx R6=ctx R7=pkt(id=0,off=0,r=32) R8=pkt(id=0,off=32,r=32) R10=fp
      6: (bf) r8 = r7
      7: (bf) r9 = r7
      8: (71) r1 = *(u8 *)(r7 +0)
      9: (0f) r8 += r1
      10: (71) r1 = *(u8 *)(r7 +1)
      11: (0f) r9 += r1
      12: (07) r8 += 32
      13: (2d) if r8 > r0 goto pc+1
       R0=pkt_end R1=inv56 R6=ctx R7=pkt(id=0,off=0,r=32) R8=pkt(id=1,off=32,r=32) R9=pkt(id=1,off=0,r=32) R10=fp
      14: (71) r1 = *(u8 *)(r9 +16)
      15: (b7) r7 = 0
      16: (bf) r0 = r7
      17: (95) exit
      
      We need to get a UNKNOWN_VALUE with imm to force id
      generation so lines 0-5 make r7 a valid packet pointer.
      We then read two different bytes from the packet and
      add them to copies of the constructed packet pointer.
      r8 (line 9) and r9 (line 11) will get the same id of 1,
      independently.  When either of them is validated (line
      13) - find_good_pkt_pointers() will also mark the other
      as safe.  This leads to access on line 14 being mistakenly
      considered safe.
      
      Fixes: 969bf05e ("bpf: direct packet access")
      Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f415a74
    • Arnd Bergmann's avatar
      net: xgene: fix maybe-uninitialized variable · ea966cb6
      Arnd Bergmann authored
      Building with -Wmaybe-uninitialized shows a potential use of
      an uninitialized variable:
      
      drivers/net/ethernet/apm/xgene/xgene_enet_hw.c: In function 'xgene_enet_phy_connect':
      drivers/net/ethernet/apm/xgene/xgene_enet_hw.c:802:23: warning: 'phy_dev' may be used uninitialized in this function [-Wmaybe-uninitialized]
      
      Although the compiler correctly identified this based on the function,
      the current code is still safe as long dev->of_node is non-NULL
      for the case of CONFIG_ACPI=n, which is currently the case.
      
      The warning is now disabled by default, but still appears when
      building with W=1, and other build test tools should be able to
      detect it as well. Adding an #else clause here makes the code
      more robust and makes it clear to the compiler that this cannot
      happen.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: 8089a96f ("drivers: net: xgene: Add backward compatibility")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ea966cb6
    • Jarno Rajahalme's avatar
      openvswitch: Remove incorrect WARN_ONCE(). · bce91f8a
      Jarno Rajahalme authored
      ovs_ct_find_existing() issues a warning if an existing conntrack entry
      classified as IP_CT_NEW is found, with the premise that this should
      not happen.  However, a newly confirmed, non-expected conntrack entry
      remains IP_CT_NEW as long as no reply direction traffic is seen.  This
      has resulted into somewhat confusing kernel log messages.  This patch
      removes this check and warning.
      
      Fixes: 289f2253 ("openvswitch: Find existing conntrack entry after upcall.")
      Suggested-by: default avatarJoe Stringer <joe@ovn.org>
      Signed-off-by: default avatarJarno Rajahalme <jarno@ovn.org>
      Acked-by: default avatarJoe Stringer <joe@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bce91f8a
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · bf0f500b
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "A few updates and fixes:
      
         - move the suppressing of the __builtin_return_address >0 warning to
           the tracing directory only.
      
         - metag recordmcount fix for newer glibc's
      
         - two tracing histogram fixes that were reported by KASAN"
      
      * tag 'trace-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix use-after-free in hist_register_trigger()
        tracing: Fix use-after-free in hist_unreg_all/hist_enable_unreg_all
        Makefile: Mute warning for __builtin_return_address(>0) for tracing only
        ftrace/recordmcount: Work around for addition of metag magic but not relocations
      bf0f500b
    • Geert Uytterhoeven's avatar
      fs/proc: Add compiler check for -Wno-override-init to support gcc < 4.2 · 4b2e0162
      Geert Uytterhoeven authored
      With gcc < 4.2 (e.g. 4.1.2):
      
            CC      fs/proc/task_mmu.o
          cc1: error: unrecognized command line option "-Wno-override-init"
      
      To fix this, only enable the compiler option when it is actually
      supported by the compiler.
      
      Fixes: ca52953f ("fs/proc/task_mmu.c: suppress compilation warnings with W=1")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarValdis Kletnieks <valdis.kletnieks@vt.edu>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4b2e0162
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · f0936155
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix several cases of missing of_node_put() calls in various
          networking drivers.  From Peter Chen.
      
       2) Don't try to remove unconfigured VLANs in qed driver, from Yuval
          Mintz.
      
       3) Unbalanced locking in TIPC error handling, from Wei Yongjun.
      
       4) Fix lockups in CPDMA driver, from Grygorii Strashko.
      
       5) More MACSEC refcount et al fixes, from Sabrina Dubroca.
      
       6) Fix MAC address setting in r8169 during runtime suspend, from
          Chun-Hao Lin.
      
       7) Various printf format specifier fixes, from Heinrich Schuchardt.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
        qed: Fail driver load in 100g MSI mode.
        ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle
        ethernet: stmicro: stmmac: add missing of_node_put after calling of_parse_phandle
        ethernet: stmicro: stmmac: dwmac-socfpga: add missing of_node_put after calling of_parse_phandle
        ethernet: renesas: sh_eth: add missing of_node_put after calling of_parse_phandle
        ethernet: renesas: ravb_main: add missing of_node_put after calling of_parse_phandle
        ethernet: marvell: pxa168_eth: add missing of_node_put after calling of_parse_phandle
        ethernet: marvell: mvpp2: add missing of_node_put after calling of_parse_phandle
        ethernet: marvell: mvneta: add missing of_node_put after calling of_parse_phandle
        ethernet: hisilicon: hns: hns_dsaf_main: add missing of_node_put after calling of_parse_phandle
        ethernet: hisilicon: hns: hns_dsaf_mac: add missing of_node_put after calling of_parse_phandle
        ethernet: cavium: octeon: add missing of_node_put after calling of_parse_phandle
        ethernet: aurora: nb8800: add missing of_node_put after calling of_parse_phandle
        ethernet: arc: emac_main: add missing of_node_put after calling of_parse_phandle
        ethernet: apm: xgene: add missing of_node_put after calling of_parse_phandle
        ethernet: altera: add missing of_node_put
        8139too: fix system hang when there is a tx timeout event.
        qed: Fix error return code in qed_resc_alloc()
        net: qlcnic: avoid superfluous assignement
        dsa: b53: remove redundant if
        ...
      f0936155
    • Maital Hahn's avatar
      mac80211: mesh: flush stations before beacons are stopped · c37a54ac
      Maital Hahn authored
      Some drivers (e.g. wl18xx) expect that the last stage in the
      de-initialization process will be stopping the beacons, similar to AP flow.
      Update ieee80211_stop_mesh() flow accordingly.
      As peers can be removed dynamically, this would not impact other drivers.
      
      Tested also on Ralink RT3572 chipset.
      Signed-off-by: default avatarMaital Hahn <maitalm@ti.com>
      Signed-off-by: default avatarYaniv Machani <yanivma@ti.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c37a54ac
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · d52bd54d
      Linus Torvalds authored
      Merge yet more updates from Andrew Morton:
      
       - the rest of ocfs2
      
       - various hotfixes, mainly MM
      
       - quite a bit of misc stuff - drivers, fork, exec, signals, etc.
      
       - printk updates
      
       - firmware
      
       - checkpatch
      
       - nilfs2
      
       - more kexec stuff than usual
      
       - rapidio updates
      
       - w1 things
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (111 commits)
        ipc: delete "nr_ipc_ns"
        kcov: allow more fine-grained coverage instrumentation
        init/Kconfig: add clarification for out-of-tree modules
        config: add android config fragments
        init/Kconfig: ban CONFIG_LOCALVERSION_AUTO with allmodconfig
        relay: add global mode support for buffer-only channels
        init: allow blacklisting of module_init functions
        w1:omap_hdq: fix regression
        w1: add helper macro module_w1_family
        w1: remove need for ida and use PLATFORM_DEVID_AUTO
        rapidio/switches: add driver for IDT gen3 switches
        powerpc/fsl_rio: apply changes for RIO spec rev 3
        rapidio: modify for rev.3 specification changes
        rapidio: change inbound window size type to u64
        rapidio/idt_gen2: fix locking warning
        rapidio: fix error handling in mbox request/release functions
        rapidio/tsi721_dma: advance queue processing from transfer submit call
        rapidio/tsi721: add messaging mbox selector parameter
        rapidio/tsi721: add PCIe MRRS override parameter
        rapidio/tsi721_dma: add channel mask and queue size parameters
        ...
      d52bd54d
  6. 02 Aug, 2016 11 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux · 8cbdd85b
      Linus Torvalds authored
      Pull orangefs update from Martin Brandenburg:
       "Kernel side caching and executable bugfix
      
        This allows OrangeFS to utilize the dcache and adds an in kernel
        attribute cache.  We previously used the user side client for this
        purpose.
      
        We see a modest performance increase on small file operations.  For
        example, without the cache, compiling coreutils takes about 17
        minutes.  With the patch and a 50 millisecond timeout for
        dcache_timeout_msecs and getattr_timeout_msecs (the default),
        compiling coreutils takes about 6 minutes 20 seconds.  On the same
        hardware, compiling coreutils on an xfs filesystem takes 90 seconds.
        We see similar improvements with mdtest and a test involving writing,
        reading, and deleting a large number of small files.
      
        Interested parties can review more data at the following URL.
      
          https://docs.google.com/spreadsheets/d/1v4aUeppKexIbRMz_Yn9k4eaM3uy2KCaPoe_93YKWOtA/pubhtml
      
        The eventual goal of this is to allow getdents to turn into a
        readdirplus to the OrangeFS server.  The cache will be filled then,
        which should provide a performance benefit to the common case of
        readdir followed by getattr on each entry (i.e.  ls -l).
      
        This also fixes a bug.  When orangefs_inode_permission was added, it
        did not collect i_size from the OrangeFS server, since this presses an
        unnecessary load on the OrangeFS server.  However, it left a case
        where i_size is never initialized.  Then running an executable could
        fail.
      
        With this patch, size is always collected to be inserted into the
        cache.  Thus the bug disappears.  If this patch is not accepted during
        this merge window, we will send a one-line band-aid for this bug
        instead"
      
      * tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux:
        Orangefs: update orangefs.txt
        orangefs: Account for jiffies wraparound.
        orangefs: Change default dcache and getattr timeout to 50 msec.
        orangefs: Allow dcache and getattr cache time to be configured.
        orangefs: Cache getattr results.
        orangefs: Use d_time to avoid excessive lookups
      8cbdd85b
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.8-rc1' of git://github.com/ceph/ceph-client · 72b5ac54
      Linus Torvalds authored
      Pull Ceph updates from Ilya Dryomov:
       "The highlights are:
      
         - RADOS namespace support in libceph and CephFS (Zheng Yan and
           myself).  The stopgaps added in 4.5 to deny access to inodes in
           namespaces are removed and CEPH_FEATURE_FS_FILE_LAYOUT_V2 feature
           bit is now fully supported
      
         - A large rework of the MDS cap flushing code (Zheng Yan)
      
         - Handle some of ->d_revalidate() in RCU mode (Jeff Layton).  We were
           overly pessimistic before, bailing at the first sight of LOOKUP_RCU
      
        On top of that we've got a few CephFS bug fixes, a couple of cleanups
        and Arnd's workaround for a weird genksyms issue"
      
      * tag 'ceph-for-4.8-rc1' of git://github.com/ceph/ceph-client: (34 commits)
        ceph: fix symbol versioning for ceph_monc_do_statfs
        ceph: Correctly return NXIO errors from ceph_llseek
        ceph: Mark the file cache as unreclaimable
        ceph: optimize cap flush waiting
        ceph: cleanup ceph_flush_snaps()
        ceph: kick cap flushes before sending other cap message
        ceph: introduce an inode flag to indicates if snapflush is needed
        ceph: avoid sending duplicated cap flush message
        ceph: unify cap flush and snapcap flush
        ceph: use list instead of rbtree to track cap flushes
        ceph: update types of some local varibles
        ceph: include 'follows' of pending snapflush in cap reconnect message
        ceph: update cap reconnect message to version 3
        ceph: mount non-default filesystem by name
        libceph: fsmap.user subscription support
        ceph: handle LOOKUP_RCU in ceph_d_revalidate
        ceph: allow dentry_lease_is_valid to work under RCU walk
        ceph: clear d_fsinfo pointer under d_lock
        ceph: remove ceph_mdsc_lease_release
        ceph: don't use ->d_time
        ...
      72b5ac54
    • Alexey Dobriyan's avatar
    • Vegard Nossum's avatar
      kcov: allow more fine-grained coverage instrumentation · a4691dea
      Vegard Nossum authored
      For more targeted fuzzing, it's better to disable kernel-wide
      instrumentation and instead enable it on a per-subsystem basis.  This
      follows the pattern of UBSAN and allows you to compile in the kcov
      driver without instrumenting the whole kernel.
      
      To instrument a part of the kernel, you can use either
      
          # for a single file in the current directory
          KCOV_INSTRUMENT_filename.o := y
      
      or
      
          # for all the files in the current directory (excluding subdirectories)
          KCOV_INSTRUMENT := y
      
      or
      
          # (same as above)
          ccflags-y += $(CFLAGS_KCOV)
      
      or
      
          # for all the files in the current directory (including subdirectories)
          subdir-ccflags-y += $(CFLAGS_KCOV)
      
      Link: http://lkml.kernel.org/r/1464008380-11405-1-git-send-email-vegard.nossum@oracle.comSigned-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a4691dea
    • Valdis Kletnieks's avatar
      init/Kconfig: add clarification for out-of-tree modules · f1cb637e
      Valdis Kletnieks authored
      It doesn't trim just symbols that are totally unused in-tree - it trims
      the symbols unused by any in-tree modules actually built.  If you've
      done a 'make localmodconfig' and only build a hundred or so modules,
      it's pretty likely that your out-of-tree module will come up lacking
      something...
      
      Hopefully this will save the next guy from a Homer Simpson "D'oh!"
      moment.
      
      Link: http://lkml.kernel.org/r/10177.1469787292@turing-police.cc.vt.eduSigned-off-by: default avatarValdis Kletnieks <valdis.kletnieks@vt.edu>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f1cb637e
    • Rob Herring's avatar
      config: add android config fragments · 27eb6622
      Rob Herring authored
      Copy the config fragments from the AOSP common kernel android-4.4
      branch.  It is becoming possible to run mainline kernels with Android,
      but the kernel defconfigs don't work as-is and debugging missing config
      options is a pain.  Adding the config fragments into the kernel tree,
      makes configuring a mainline kernel as simple as:
      
        make ARCH=arm multi_v7_defconfig android-base.config android-recommended.config
      
      The following non-upstream config options were removed:
      
        CONFIG_NETFILTER_XT_MATCH_QTAGUID
        CONFIG_NETFILTER_XT_MATCH_QUOTA2
        CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG
        CONFIG_PPPOLAC
        CONFIG_PPPOPNS
        CONFIG_SECURITY_PERF_EVENTS_RESTRICT
        CONFIG_USB_CONFIGFS_F_MTP
        CONFIG_USB_CONFIGFS_F_PTP
        CONFIG_USB_CONFIGFS_F_ACC
        CONFIG_USB_CONFIGFS_F_AUDIO_SRC
        CONFIG_USB_CONFIGFS_UEVENT
        CONFIG_INPUT_KEYCHORD
        CONFIG_INPUT_KEYRESET
      
      Link: http://lkml.kernel.org/r/1466708235-28593-1-git-send-email-robh@kernel.orgSigned-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Amit Pundir <amit.pundir@linaro.org>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: Dmitry Shmidt <dimitrysh@google.com>
      Cc: Rom Lemarchand <romlem@android.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      27eb6622
    • Alexey Dobriyan's avatar
      init/Kconfig: ban CONFIG_LOCALVERSION_AUTO with allmodconfig · ac3339ba
      Alexey Dobriyan authored
      Doing patches with allmodconfig kernel compiled and committing stuff
      into local tree have unfortunate consequence: kernel version changes (as
      it should) leading to recompiling and relinking of several files even if
      they weren't touched (or interesting at all).  This and "git-whatever"
      figuring out current version slow down compilation for no good reason.
      
      But lets face it, "allmodconfig" kernels don't care about kernel
      version, they are simply compile check guinea pigs.
      
      Make LOCALVERSION_AUTO depend on !COMPILE_TEST, so it doesn't sneak into
      allmodconfig .config.
      
      Link: http://lkml.kernel.org/r/20160707214954.GC31678@p183.telecom.bySigned-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Cc: Michal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ac3339ba
    • Akash Goel's avatar
      relay: add global mode support for buffer-only channels · 59dbb2a0
      Akash Goel authored
      Commit 20d8b67c ("relay: add buffer-only channels; useful for early
      logging") added support to use channels with no associated files.
      
      This is useful when the exact location of relay file is not known or the
      the parent directory of relay file is not available, while creating the
      channel and the logging has to start right from the boot.
      
      But there was no provision to use global mode with buffer-only channels,
      which is added by this patch, without modifying the interface where
      initially there will be a dummy invocation of create_buf_file callback
      through which kernel client can convey the need of a global buffer.
      
      For the use case where drivers/kernel clients want a simple interface
      for the userspace, which enables them to capture data/logs from relay
      file inorder & without any post processing, support of Global buffer
      mode is warranted.
      
      Modules, like i915, using relay_open() in early init would have to later
      register their buffer-only relays, once debugfs is available, by calling
      relay_late_setup_files().  Hence relay_late_setup_files() symbol also
      needs to be exported.
      
      Link: http://lkml.kernel.org/r/1468404563-11653-1-git-send-email-akash.goel@intel.comSigned-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      59dbb2a0
    • Prarit Bhargava's avatar
      init: allow blacklisting of module_init functions · 841c06d7
      Prarit Bhargava authored
      sprint_symbol_no_offset() returns the string "function_name
      [module_name]" where [module_name] is not printed for built in kernel
      functions.  This means that the blacklisting code will fail when
      comparing module function names with the extended string.
      
      This patch adds the functionality to block a module's module_init()
      function by finding the space in the string and truncating the
      comparison to that length.
      
      Link: http://lkml.kernel.org/r/1466124387-20446-1-git-send-email-prarit@redhat.comSigned-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Yang Shi <yang.shi@linaro.org>
      Cc: Prarit Bhargava <prarit@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Yaowei Bai <baiyaowei@cmss.chinamobile.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      841c06d7
    • H. Nikolaus Schaller's avatar
      w1:omap_hdq: fix regression · ecfaf0c4
      H. Nikolaus Schaller authored
      Commit e93762bb ("w1: masters: omap_hdq: add support for 1-wire
      mode") added a statement to clear the hdq_irqstatus flags in
      hdq_read_byte().
      
      If the hdq reading process is scheduled slowly or interrupts are
      disabled for a while the hardware read activity might already be
      finished on entry of hdq_read_byte().  And hdq_isr() already has set the
      hdq_irqstatus to 0x6 (can be seen in debug mode) denoting that both, the
      TXCOMPLETE and RXCOMPLETE interrupts occurred in parallel.
      
      This means there is no need to wait and the hdq_read_byte() can just
      read the byte from the hdq controller.
      
      By resetting hdq_irqstatus to 0 the read process is forced to be always
      waiting again (because the if statement always succeeds) but the
      hardware will not issue another RXCOMPLETE interrupt.  This results in a
      false timeout.
      
      After such a situation the hdq bus hangs.
      
      Link: http://lkml.kernel.org/r/b724765f87ad276a69625bc19806c8c8844c4590.1469513669.git.hns@goldelico.comSigned-off-by: default avatarH. Nikolaus Schaller <hns@goldelico.com>
      Cc: Evgeniy Polyakov <zbr@ioremap.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ecfaf0c4
    • Andrew F. Davis's avatar
      w1: add helper macro module_w1_family · 939fc832
      Andrew F. Davis authored
      The helper macro module_w1_family can be used in module drivers that
      only register a w1 driver in their module init functions.  Add this
      macro and use it in all applicable drivers.
      
      Link: http://lkml.kernel.org/r/20160531204313.20979-2-afd@ti.comSigned-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Acked-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      939fc832