{"push_id":3024984610,"size":61,"distinct_size":61,"ref":"refs/heads/master","head":"8053e5b93eca9b011f7b79bb019bf1eeaaf96c4b","before":"163c8d54a997153ee1a1e07fcac087492ad85b37","commits":[{"sha":"61792b677415b77c8db04991c22966bb8de7603e","author":{"name":"Florian Westphal","email":"cef439e78636cdab99cd2923826c5065a0743e5b@strlen.de"},"message":"netfilter: ipv6: fix oops when defragmenting locally generated fragments\n\nUnlike ipv4 and normal ipv6 defrag, netfilter ipv6 defragmentation did\nnot save/restore skb->dst.\n\nThis causes oops when handling locally generated ipv6 fragments, as\noutput path needs a valid dst.\n\nReported-by: Maciej Żenczykowski <zenczykowski@gmail.com>\nFixes: 84379c9afe01 (\"netfilter: ipv6: nf_defrag: drop skb dst before queueing\")\nSigned-off-by: Florian Westphal <fw@strlen.de>\nReviewed-by: Eric Dumazet <edumazet@google.com>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/61792b677415b77c8db04991c22966bb8de7603e"},{"sha":"5e91c9d9cd3fd557226ca75fed58816b9eee7e07","author":{"name":"Pablo Neira Ayuso","email":"707d14912bb250caf67dfe0ea4035681fbfc4f56@netfilter.org"},"message":"netfilter: nft_osf: check if attribute is present\n\nIf the attribute is not sent, eg. old libnftnl binary, then\ntb[NFTA_OSF_TTL] is NULL and kernel crashes from the _init path.\n\nFixes: a218dc82f0b5 (\"netfilter: nft_osf: Add ttl option support\")\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/5e91c9d9cd3fd557226ca75fed58816b9eee7e07"},{"sha":"5a8de47b3c250521dd632cdedaac6db88367defa","author":{"name":"Jiri Slaby","email":"dfbf39eb5bf303a3db5454d815cb8c8888cbadf9@suse.cz"},"message":"netfilter: bridge: define INT_MIN & INT_MAX in userspace\n\nWith 4.19, programs like ebtables fail to build when they include\n\"linux/netfilter_bridge.h\". It is caused by commit 94276fa8a2a4 which\nadded a use of INT_MIN and INT_MAX to the header:\n: In file included from /usr/include/linux/netfilter_bridge/ebtables.h:18,\n:                  from include/ebtables_u.h:28,\n:                  from communication.c:23:\n: /usr/include/linux/netfilter_bridge.h:30:20: error: 'INT_MIN' undeclared here (not in a function)\n:   NF_BR_PRI_FIRST = INT_MIN,\n:                     ^~~~~~~\n\nDefine these constants by including \"limits.h\" when !__KERNEL__ (the\nsame way as for other netfilter_* headers).\n\nFixes: 94276fa8a2a4 (\"netfilter: bridge: Expose nf_tables bridge hook priorities through uapi\")\nSigned-off-by: Jiri Slaby <jslaby@suse.cz>\nAcked-by: Máté Eckl <ecklm94@gmail.com>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/5a8de47b3c250521dd632cdedaac6db88367defa"},{"sha":"4269fea768a11a447d8de620ce420f2214d4685c","author":{"name":"Pablo Neira Ayuso","email":"707d14912bb250caf67dfe0ea4035681fbfc4f56@netfilter.org"},"message":"Revert \"netfilter: nft_numgen: add map lookups for numgen random operations\"\n\nLaura found a better way to do this from userspace without requiring\nkernel infrastructure, revert this.\n\nFixes: 978d8f9055c3 (\"netfilter: nft_numgen: add map lookups for numgen random operations\")\nSigned-off-by: Laura Garcia Liebana <nevola@gmail.com>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/4269fea768a11a447d8de620ce420f2214d4685c"},{"sha":"439cd39ea136d2c026805264d58a91f36b6b64ca","author":{"name":"Stefano Brivio","email":"efa1d7a1f7e06da157cba8418bde1140b06b0968@redhat.com"},"message":"netfilter: ipset: list:set: Decrease refcount synchronously on deletion and replace\n\nCommit 45040978c899 (\"netfilter: ipset: Fix set:list type crash\nwhen flush/dump set in parallel\") postponed decreasing set\nreference counters to the RCU callback.\n\nAn 'ipset del' command can terminate before the RCU grace period\nis elapsed, and if sets are listed before then, the reference\ncounter shown in userspace will be wrong:\n\n # ipset create h hash:ip; ipset create l list:set; ipset add l\n # ipset del l h; ipset list h\n Name: h\n Type: hash:ip\n Revision: 4\n Header: family inet hashsize 1024 maxelem 65536\n Size in memory: 88\n References: 1\n Number of entries: 0\n Members:\n # sleep 1; ipset list h\n Name: h\n Type: hash:ip\n Revision: 4\n Header: family inet hashsize 1024 maxelem 65536\n Size in memory: 88\n References: 0\n Number of entries: 0\n Members:\n\nFix this by making the reference count update synchronous again.\n\nAs a result, when sets are listed, ip_set_name_byindex() might\nnow fetch a set whose reference count is already zero. Instead\nof relying on the reference count to protect against concurrent\nset renaming, grab ip_set_ref_lock as reader and copy the name,\nwhile holding the same lock in ip_set_rename() as writer\ninstead.\n\nReported-by: Li Shuang <shuali@redhat.com>\nFixes: 45040978c899 (\"netfilter: ipset: Fix set:list type crash when flush/dump set in parallel\")\nSigned-off-by: Stefano Brivio <sbrivio@redhat.com>\nSigned-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/439cd39ea136d2c026805264d58a91f36b6b64ca"},{"sha":"886503f34d63e681662057448819edb5b1057a97","author":{"name":"Eric Westbrook","email":"96f164ad4d9b2b0dacf8ebee2bb1eeb3aa69adf1@westbrook.io"},"message":"netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net\n\nAllow /0 as advertised for hash:net,port,net sets.\n\nFor \"hash:net,port,net\", ipset(8) says that \"either subnet\nis permitted to be a /0 should you wish to match port\nbetween all destinations.\"\n\nMake that statement true.\n\nBefore:\n\n    # ipset create cidrzero hash:net,port,net\n    # ipset add cidrzero 0.0.0.0/0,12345,0.0.0.0/0\n    ipset v6.34: The value of the CIDR parameter of the IP address is invalid\n\n    # ipset create cidrzero6 hash:net,port,net family inet6\n    # ipset add cidrzero6 ::/0,12345,::/0\n    ipset v6.34: The value of the CIDR parameter of the IP address is invalid\n\nAfter:\n\n    # ipset create cidrzero hash:net,port,net\n    # ipset add cidrzero 0.0.0.0/0,12345,0.0.0.0/0\n    # ipset test cidrzero 192.168.205.129,12345,172.16.205.129\n    192.168.205.129,tcp:12345,172.16.205.129 is in set cidrzero.\n\n    # ipset create cidrzero6 hash:net,port,net family inet6\n    # ipset add cidrzero6 ::/0,12345,::/0\n    # ipset test cidrzero6 fe80::1,12345,ff00::1\n    fe80::1,tcp:12345,ff00::1 is in set cidrzero6.\n\nSee also:\n\n  https://bugzilla.kernel.org/show_bug.cgi?id=200897\n  https://github.com/ewestbrook/linux/commit/df7ff6efb0934ab6acc11f003ff1a7580d6c1d9c\n\nSigned-off-by: Eric Westbrook <linux@westbrook.io>\nSigned-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/886503f34d63e681662057448819edb5b1057a97"},{"sha":"ed956f3947a01ff9875cd908d7c1ef1fe7f47bf0","author":{"name":"Andrey Ryabinin","email":"1db0f9e76dd8a9115570382660c6cd919b5a95b9@virtuozzo.com"},"message":"netfilter: ipset: fix ip_set_list allocation failure\n\nip_set_create() and ip_set_net_init() attempt to allocate physically\ncontiguous memory for ip_set_list. If memory is fragmented, the\nallocations could easily fail:\n\n        vzctl: page allocation failure: order:7, mode:0xc0d0\n\n        Call Trace:\n         dump_stack+0x19/0x1b\n         warn_alloc_failed+0x110/0x180\n         __alloc_pages_nodemask+0x7bf/0xc60\n         alloc_pages_current+0x98/0x110\n         kmalloc_order+0x18/0x40\n         kmalloc_order_trace+0x26/0xa0\n         __kmalloc+0x279/0x290\n         ip_set_net_init+0x4b/0x90 [ip_set]\n         ops_init+0x3b/0xb0\n         setup_net+0xbb/0x170\n         copy_net_ns+0xf1/0x1c0\n         create_new_namespaces+0xf9/0x180\n         copy_namespaces+0x8e/0xd0\n         copy_process+0xb61/0x1a00\n         do_fork+0x91/0x320\n\nUse kvcalloc() to fallback to 0-order allocations if high order\npage isn't available.\n\nSigned-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>\nSigned-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/ed956f3947a01ff9875cd908d7c1ef1fe7f47bf0"},{"sha":"7de414a9dd91426318df7b63da024b2b07e53df5","author":{"name":"Cong Wang","email":"0f114804888b88d50037b04b42e57b858d851b87@gmail.com"},"message":"net: drop skb on failure in ip_check_defrag()\n\nMost callers of pskb_trim_rcsum() simply drop the skb when\nit fails, however, ip_check_defrag() still continues to pass\nthe skb up to stack. This is suspicious.\n\nIn ip_check_defrag(), after we learn the skb is an IP fragment,\npassing the skb to callers makes no sense, because callers expect\nfragments are defrag'ed on success. So, dropping the skb when we\ncan't defrag it is reasonable.\n\nNote, prior to commit 88078d98d1bb, this is not a big problem as\nchecksum will be fixed up anyway. After it, the checksum is not\ncorrect on failure.\n\nFound this during code review.\n\nFixes: 88078d98d1bb (\"net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends\")\nCc: Eric Dumazet <edumazet@google.com>\nSigned-off-by: Cong Wang <xiyou.wangcong@gmail.com>\nReviewed-by: Eric Dumazet <edumazet@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/7de414a9dd91426318df7b63da024b2b07e53df5"},{"sha":"df0734702a7cbba49d6765bd5ba069340bf9c5db","author":{"name":"Song Liu","email":"a7d9c9762c730be0dd2760d11973972f3eeeff9d@fb.com"},"message":"bpf: show real jited prog address in /proc/kallsyms\n\nCurrently, /proc/kallsyms shows page address of jited bpf program. The\nmain reason here is to not expose randomized start address. However,\nThis is not ideal for detailed profiling (find hot instructions from\nstack traces). This patch replaces the page address with real prog start\naddress.\n\nThis change is OK because these addresses are still protected by sysctl\nkptr_restrict (see kallsyms_show_value()), and only programs loaded by\nroot are added to kallsyms (see bpf_prog_kallsyms_add()).\n\nSigned-off-by: Song Liu <songliubraving@fb.com>\nSigned-off-by: Daniel Borkmann <daniel@iogearbox.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/df0734702a7cbba49d6765bd5ba069340bf9c5db"},{"sha":"de57e99ceb65d0d7775cc14a8ba5931d7de1d708","author":{"name":"Song Liu","email":"a7d9c9762c730be0dd2760d11973972f3eeeff9d@fb.com"},"message":"bpf: show real jited address in bpf_prog_info->jited_ksyms\n\nCurrently, jited_ksyms in bpf_prog_info shows page addresses of jited\nbpf program. The main reason here is to not expose randomized start\naddress. However, this is not ideal for detailed profiling (find hot\ninstructions from stack traces). This patch replaces the page address\nwith real prog start address.\n\nThis change is OK because bpf_prog_get_info_by_fd() is only available\nto root.\n\nSigned-off-by: Song Liu <songliubraving@fb.com>\nSigned-off-by: Daniel Borkmann <daniel@iogearbox.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/de57e99ceb65d0d7775cc14a8ba5931d7de1d708"},{"sha":"ff1889fc531f582f902175c0acc80321af540b24","author":{"name":"Song Liu","email":"a7d9c9762c730be0dd2760d11973972f3eeeff9d@fb.com"},"message":"bpf: show main program address and length in bpf_prog_info\n\nCurrently, when there is no subprog (prog->aux->func_cnt == 0),\nbpf_prog_info does not return any jited_ksyms or jited_func_lens. This\npatch adds main program address (prog->bpf_func) and main program\nlength (prog->jited_len) to bpf_prog_info.\n\nSigned-off-by: Song Liu <songliubraving@fb.com>\nSigned-off-by: Daniel Borkmann <daniel@iogearbox.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/ff1889fc531f582f902175c0acc80321af540b24"},{"sha":"b0970f235f1ff68a49fd36fdbd8a80dd92bb7b04","author":{"name":"Daniel Borkmann","email":"3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@iogearbox.net"},"message":"Merge branch 'bpf-accurate-prog-addr'\n\nSong Liu says:\n\n====================\nChanges v1 -> v2:\n1. Added main program length to bpf_prog_info->jited_fun_lens (3/3).\n2. Updated commit message of 1/3 and 2/3 with more background about the\n   address masking, and why it is still save after the changes.\n3. Replace \"ulong\" with \"unsigned long\".\n\nThis set improves bpf program address showed in /proc/kallsyms and in\nbpf_prog_info. First, real program address is showed instead of page\naddress. Second, when there is no subprogram, bpf_prog_info->jited_ksyms\nand bpf_prog_info->jited_fun_lens returns the main prog address and\nlength.\n====================\n\nAcked-by: Alexei Starovoitov <ast@kernel.org>\nSigned-off-by: Daniel Borkmann <daniel@iogearbox.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/b0970f235f1ff68a49fd36fdbd8a80dd92bb7b04"},{"sha":"28c2fae726bf5003cd209b0d5910a642af98316f","author":{"name":"Daniel Borkmann","email":"3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@iogearbox.net"},"message":"bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv\n\nWhile dbecd7388476 (\"bpf: get kernel symbol addresses via syscall\")\nzeroed info.nr_jited_ksyms in bpf_prog_get_info_by_fd() for queries\nfrom unprivileged users, commit 815581c11cc2 (\"bpf: get JITed image\nlengths of functions via syscall\") forgot about doing so and therefore\nreturns the #elems of the user set up buffer which is incorrect. It\nalso needs to indicate a info.nr_jited_func_lens of zero.\n\nFixes: 815581c11cc2 (\"bpf: get JITed image lengths of functions via syscall\")\nSigned-off-by: Daniel Borkmann <daniel@iogearbox.net>\nCc: Sandipan Das <sandipan@linux.vnet.ibm.com>\nCc: Song Liu <songliubraving@fb.com>\nSigned-off-by: Alexei Starovoitov <ast@kernel.org>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/28c2fae726bf5003cd209b0d5910a642af98316f"},{"sha":"49682bfa1e0e448a711471a5db83be0df1fb39a2","author":{"name":"Mathieu Malaterre","email":"4c3884f3d1d87411d98f0c382fe7d7c73faff4d0@debian.org"},"message":"net: document skb parameter in function 'skb_gso_size_check'\n\nRemove kernel-doc warning:\n\n  net/core/skbuff.c:4953: warning: Function parameter or member 'skb' not described in 'skb_gso_size_check'\n\nSigned-off-by: Mathieu Malaterre <malat@debian.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/49682bfa1e0e448a711471a5db83be0df1fb39a2"},{"sha":"7b900ead6cc66b2ee873cb042dfba169aa68b56c","author":{"name":"Frieder Schrempf","email":"8f6da9a305f22b5b40b6f6500f21456ecff203d1@kontron.de"},"message":"usbnet: smsc95xx: disable carrier check while suspending\n\nWe need to make sure, that the carrier check polling is disabled\nwhile suspending. Otherwise we can end up with usbnet_read_cmd()\nbeing issued when only usbnet_read_cmd_nopm() is allowed. If this\nhappens, read operations lock up.\n\nFixes: d69d169493 (\"usbnet: smsc95xx: fix link detection for disabled autonegotiation\")\nSigned-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>\nReviewed-by: Raghuram Chary J <RaghuramChary.Jallipalli@microchip.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/7b900ead6cc66b2ee873cb042dfba169aa68b56c"},{"sha":"2384d02520ff2a916169b2fd85ea50e923ed56c2","author":{"name":"Jeff Barnhill","email":"6990780b619fbc2c277198012efc384361a92920@gmail.com"},"message":"net/ipv6: Add anycast addresses to a global hashtable\n\nicmp6_send() function is expensive on systems with a large number of\ninterfaces. Every time it’s called, it has to verify that the source\naddress does not correspond to an existing anycast address by looping\nthrough every device and every anycast address on the device.  This can\nresult in significant delays for a CPU when there are a large number of\nneighbors and ND timers are frequently timing out and calling\nneigh_invalidate().\n\nAdd anycast addresses to a global hashtable to allow quick searching for\nmatching anycast addresses.  This is based on inet6_addr_lst in addrconf.c.\n\nSigned-off-by: Jeff Barnhill <0xeffeff@gmail.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/2384d02520ff2a916169b2fd85ea50e923ed56c2"},{"sha":"284fb78ed7572117846f8e1d1d8e3dbfd16880c2","author":{"name":"Tristram Ha","email":"fab34c77eb3cdcecae9ee4da65cd73c2aab28164@microchip.com"},"message":"net: dsa: microchip: initialize mutex before use\n\nInitialize mutex before use.  Avoid kernel complaint when\nCONFIG_DEBUG_LOCK_ALLOC is enabled.\n\nFixes: b987e98e50ab90e5 (\"dsa: add DSA switch driver for Microchip KSZ9477\")\nSigned-off-by: Tristram Ha <Tristram.Ha@microchip.com>\nReviewed-by: Pavel Machek <pavel@ucw.cz>\nReviewed-by: Andrew Lunn <andrew@lunn.ch>\nReviewed-by: Florian Fainelli <f.fainelli@gmail.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/284fb78ed7572117846f8e1d1d8e3dbfd16880c2"},{"sha":"c7e86acfcee30794dc99a0759924bf7b9d43f1ca","author":{"name":"David Howells","email":"ebac1d06c1688626821bb0e574a037a7a5354e49@redhat.com"},"message":"rxrpc: Fix lockup due to no error backoff after ack transmit error\n\nIf the network becomes (partially) unavailable, say by disabling IPv6, the\nbackground ACK transmission routine can get itself into a tizzy by\nproposing immediate ACK retransmission.  Since we're in the call event\nprocessor, that happens immediately without returning to the workqueue\nmanager.\n\nThe condition should clear after a while when either the network comes back\nor the call times out.\n\nFix this by:\n\n (1) When re-proposing an ACK on failed Tx, don't schedule it immediately.\n     This will allow a certain amount of time to elapse before we try\n     again.\n\n (2) Enforce a return to the workqueue manager after a certain number of\n     iterations of the call processing loop.\n\n (3) Add a backoff delay that increases the delay on deferred ACKs by a\n     jiffy per failed transmission to a limit of HZ.  The backoff delay is\n     cleared on a successful return from kernel_sendmsg().\n\n (4) Cancel calls immediately if the opening sendmsg fails.  The layer\n     above can arrange retransmission or rotate to another server.\n\nFixes: 248f219cb8bc (\"rxrpc: Rewrite the data and ack handling code\")\nSigned-off-by: David Howells <dhowells@redhat.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/c7e86acfcee30794dc99a0759924bf7b9d43f1ca"},{"sha":"09e805d2570a3a94f13dd9c9ad2bcab23da76e09","author":{"name":"Doug Berger","email":"56db2bd21b9db02aed7006a6d9d11ad43365b1ad@gmail.com"},"message":"net: bcmgenet: protect stop from timeout\n\nA timing hazard exists when the network interface is stopped that\nallows a watchdog timeout to be processed by a separate core in\nparallel. This creates the potential for the timeout handler to\nwake the queues while the driver is shutting down, or access\nregisters after their clocks have been removed.\n\nThe more common case is that the watchdog timeout will produce a\nwarning message which doesn't lead to a crash. The chances of this\nare greatly increased by the fact that bcmgenet_netif_stop stops\nthe transmit queues which can easily precipitate a watchdog time-\nout because of stale trans_start data in the queues.\n\nThis commit corrects the behavior by ensuring that the watchdog\ntimeout is disabled before enterring bcmgenet_netif_stop. There\nare currently only two users of the bcmgenet_netif_stop function:\nclose and suspend.\n\nThe close case already handles the issue by exiting the RUNNING\nstate before invoking the driver close service.\n\nThe suspend case now performs the netif_device_detach to exit the\nPRESENT state before the call to bcmgenet_netif_stop rather than\nafter it.\n\nThese behaviors prevent any future scheduling of the driver timeout\nservice during the window. The netif_tx_stop_all_queues function\nin bcmgenet_netif_stop is replaced with netif_tx_disable to ensure\nsynchronization with any transmit or timeout threads that may\nalready be executing on other cores.\n\nFor symmetry, the netif_device_attach call upon resume is moved to\nafter the call to bcmgenet_netif_start. Since it wakes the transmit\nqueues it is not necessary to invoke netif_tx_start_all_queues from\nbcmgenet_netif_start so it is moved into the driver open service.\n\nFixes: 1c1008c793fa (\"net: bcmgenet: add main driver file\")\nSigned-off-by: Doug Berger <opendmb@gmail.com>\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/09e805d2570a3a94f13dd9c9ad2bcab23da76e09"},{"sha":"7cb6a2a2c72c1ed8f42fb01f1a661281b568dead","author":{"name":"Florian Fainelli","email":"59190c1867e3222b932a0de3c668eb2d980d69a2@gmail.com"},"message":"net: systemport: Protect stop from timeout\n\nA timing hazard exists when the network interface is stopped that\nallows a watchdog timeout to be processed by a separate core in\nparallel. This creates the potential for the timeout handler to\nwake the queues while the driver is shutting down, or access\nregisters after their clocks have been removed.\n\nThe more common case is that the watchdog timeout will produce a\nwarning message which doesn't lead to a crash. The chances of this\nare greatly increased by the fact that bcm_sysport_netif_stop stops\nthe transmit queues which can easily precipitate a watchdog time-\nout because of stale trans_start data in the queues.\n\nThis commit corrects the behavior by ensuring that the watchdog\ntimeout is disabled before enterring bcm_sysport_netif_stop. There\nare currently only two users of the bcm_sysport_netif_stop function:\nclose and suspend.\n\nThe close case already handles the issue by exiting the RUNNING\nstate before invoking the driver close service.\n\nThe suspend case now performs the netif_device_detach to exit the\nPRESENT state before the call to bcm_sysport_netif_stop rather than\nafter it.\n\nThese behaviors prevent any future scheduling of the driver timeout\nservice during the window. The netif_tx_stop_all_queues function\nin bcm_sysport_netif_stop is replaced with netif_tx_disable to ensure\nsynchronization with any transmit or timeout threads that may\nalready be executing on other cores.\n\nFor symmetry, the netif_device_attach call upon resume is moved to\nafter the call to bcm_sysport_netif_start. Since it wakes the transmit\nqueues it is not necessary to invoke netif_tx_start_all_queues from\nbcm_sysport_netif_start so it is moved into the driver open service.\n\nFixes: 40755a0fce17 (\"net: systemport: add suspend and resume support\")\nFixes: 80105befdb4b (\"net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver\")\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/uniphier/linux/commits/7cb6a2a2c72c1ed8f42fb01f1a661281b568dead"}]}
{"actor":{"display_login":"masahir0y"}}