Linux 4.19.145
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.145 kernel.
All users of the 4.19 kernel series must upgrade.
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 block/blk-core.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 2 drivers/net/usb/dm9601.c | 4 + net/core/dev.c | 3 - net/core/netpoll.c | 2 net/netlabel/netlabel_domainhash.c | 59 +++++++++++------------ net/sctp/socket.c | 16 ++---- net/tipc/socket.c | 9 ++- sound/firewire/tascam/tascam.c | 30 +++++++++++ 10 files changed, 82 insertions(+), 47 deletions(-)
Greg Kroah-Hartman (1):
Linux 4.19.145
Jakub Kicinski (1):
net: disable netpoll on fresh napis
Jens Axboe (1):
block: ensure bdi->io_pages is always initialized
Kamil Lorenc (1):
net: usb: dm9601: Add USB ID of Keenetic Plus DSL
Paul Moore (1):
netlabel: fix problems with mapping removal
Roi Dayan (1):
net/mlx5e: Don't support phys switch id if not in switchdev mode
Takashi Sakamoto (1):
ALSA; firewire-tascam: exclude Tascam FE-8 from detection
Tetsuo Handa (1):
tipc: fix shutdown() of connectionless socket
Xin Long (1):
sctp: not disable bh in the whole sctp_get_port_local()
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 144 +SUBLEVEL = 145 EXTRAVERSION = NAME = "People's Front"
block/blk-core.c +2 -0
@@ -1036,6 +1036,8 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id, q->backing_dev_info->ra_pages = (VM_MAX_READAHEAD *1024 ) /PAGE_SIZE ; + q->backing_dev_info->io_pages = + (VM_MAX_READAHEAD *1024 ) /PAGE_SIZE ; q->backing_dev_info->capabilities =BDI_CAP_CGROUP_WRITEBACK ; q->backing_dev_info->name ="block" ; q->node = node_id;
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +1 -1
@@ -198,7 +198,7 @@ int mlx5e_attr_get(struct net_device *dev, struct switchdev_attr *attr)struct mlx5_eswitch_rep *rep = rpriv->rep;struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; -if (esw->mode ==SRIOV_NONE ) +if (esw->mode !=SRIOV_OFFLOADS )return -EOPNOTSUPP ;switch (attr->id) {
drivers/net/usb/dm9601.c +4 -0
@@ -625,6 +625,10 @@ static const struct usb_device_id products[] = { USB_DEVICE(0x0a46, 0x1269), /* DM9621A USB to Fast Ethernet Adapter */ .driver_info = (unsigned long)&dm9601_info, }, + { + USB_DEVICE(0x0586, 0x3427), /* ZyXEL Keenetic Plus DSL xDSL modem */ + .driver_info = (unsigned long)&dm9601_info, + }, {}, // END };
net/core/dev.c +2 -1
@@ -6196,12 +6196,13 @@ void netif_napi_add(struct net_device *dev, struct napi_struct *napi,pr_err_once ("netif_napi_add() called with weight %d on device %s\n" , weight, dev->name); napi->weight = weight; -list_add (&napi->dev_list, &dev->napi_list); napi->dev = dev;#ifdef CONFIG_NETPOLL napi->poll_owner =-1 ;#endif set_bit (NAPI_STATE_SCHED , &napi->state); +set_bit (NAPI_STATE_NPSVC , &napi->state); +list_add_rcu (&napi->dev_list, &dev->napi_list);napi_hash_add (napi); }EXPORT_SYMBOL (netif_napi_add);
net/core/netpoll.c +1 -1
@@ -161,7 +161,7 @@ static void poll_napi(struct net_device *dev)struct napi_struct *napi;int cpu =smp_processor_id (); -list_for_each_entry (napi, &dev->napi_list, dev_list) { +list_for_each_entry_rcu (napi, &dev->napi_list, dev_list) {if (cmpxchg (&napi->poll_owner,-1 , cpu) ==-1 ) {poll_one_napi (napi);smp_store_release (&napi->poll_owner,-1 );
net/netlabel/netlabel_domainhash.c +30 -29
94 lines not on this page · raw message
net/sctp/socket.c +6 -10
@@ -7643,8 +7643,6 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr)pr_debug ("%s: begins, snum:%d\n" , __func__, snum); -local_bh_disable (); -if (snum ==0 ) {/* Search for an available port. */ int low, high, remaining, index;
@@ -7663,20 +7661,21 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr)continue ; index =sctp_phashfn (sock_net (sk), rover); head = &sctp_port_hashtable[index]; -spin_lock (&head->lock); +spin_lock_bh (&head->lock);sctp_for_each_hentry (pp, &head->chain)if ((pp->port == rover) &&net_eq (sock_net (sk), pp->net)) goto next;break ; next: -spin_unlock (&head->lock); +spin_unlock_bh (&head->lock); +cond_resched (); }while (--remaining >0 );/* Exhausted local port range during search? */ ret =1 ;if (remaining <=0 ) - goto fail; +return ret;/* OK, here is the one we will use. HEAD (the port * hash table list entry) is non-NULL and we hold it's
@@ -7691,7 +7690,7 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr)* port iterator, pp being NULL. */ head = &sctp_port_hashtable[sctp_phashfn (sock_net (sk), snum)]; -spin_lock (&head->lock); +spin_lock_bh (&head->lock);sctp_for_each_hentry (pp, &head->chain) {if ((pp->port == snum) &&net_eq (pp->net,sock_net (sk))) goto pp_found;
@@ -7773,10 +7772,7 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr) ret =0 ; fail_unlock: -spin_unlock (&head->lock); - -fail: -local_bh_enable (); +spin_unlock_bh (&head->lock);return ret; }
net/tipc/socket.c +6 -3
@@ -2565,18 +2565,21 @@ static int tipc_shutdown(struct socket *sock, int how)lock_sock (sk);__tipc_shutdown (sock,TIPC_CONN_SHUTDOWN ); - sk->sk_shutdown =SEND_SHUTDOWN ; +if (tipc_sk_type_connectionless (sk)) + sk->sk_shutdown =SHUTDOWN_MASK ; +else + sk->sk_shutdown =SEND_SHUTDOWN ;if (sk->sk_state ==TIPC_DISCONNECTING ) {/* Discard any unreceived messages */ __skb_queue_purge (&sk->sk_receive_queue); -/* Wake up anyone sleeping in poll */ - sk->sk_state_change (sk); res =0 ; }else { res = -ENOTCONN ; } +/* Wake up anyone sleeping in poll. */ + sk->sk_state_change (sk);release_sock (sk);return res;
sound/firewire/tascam/tascam.c +29 -1
@@ -225,11 +225,39 @@ static void snd_tscm_remove(struct fw_unit *unit) }static const struct ieee1394_device_id snd_tscm_id_table[] = { +// Tascam, FW-1884. { .match_flags =IEEE1394_MATCH_VENDOR_ID | -IEEE1394_MATCH_SPECIFIER_ID , +IEEE1394_MATCH_SPECIFIER_ID | +IEEE1394_MATCH_VERSION , .vendor_id =0x00022e , .specifier_id =0x00022e , + .version =0x800000 , + }, +// Tascam, FE-8 (.version = 0x800001) +// This kernel module doesn't support FE-8 because the most of features +// can be implemented in userspace without any specific support of this +// module. +// +// .version = 0x800002 is unknown. +// +// Tascam, FW-1082. + { + .match_flags =IEEE1394_MATCH_VENDOR_ID | +IEEE1394_MATCH_SPECIFIER_ID | +IEEE1394_MATCH_VERSION , + .vendor_id =0x00022e , + .specifier_id =0x00022e , + .version =0x800003 , + }, +// Tascam, FW-1804. + { + .match_flags =IEEE1394_MATCH_VENDOR_ID | +IEEE1394_MATCH_SPECIFIER_ID | +IEEE1394_MATCH_VERSION , + .vendor_id =0x00022e , + .specifier_id =0x00022e , + .version =0x800004 , },/* FE-08 requires reverse-engineering because it just has faders. */ {}