Skip to content

Commit

Permalink
PATCH: kernel 4.4.192-193
Browse files Browse the repository at this point in the history
  • Loading branch information
ayufan committed Sep 19, 2019
1 parent 1ab3bd8 commit c82acce
Show file tree
Hide file tree
Showing 16 changed files with 45 additions and 29 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,6 +1,6 @@
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 192
SUBLEVEL = 193
EXTRAVERSION =
NAME = Blurry Fish Butt

Expand Down
1 change: 1 addition & 0 deletions arch/x86/boot/compressed/misc.c
Expand Up @@ -11,6 +11,7 @@

#include "misc.h"
#include "../string.h"
#include <asm/bootparam_utils.h>

/* WARNING!!
* This code is compiled with -fPIC and it is relocated dynamically
Expand Down
1 change: 0 additions & 1 deletion arch/x86/boot/compressed/misc.h
Expand Up @@ -19,7 +19,6 @@
#include <asm/page.h>
#include <asm/boot.h>
#include <asm/bootparam.h>
#include <asm/bootparam_utils.h>

#define BOOT_BOOT_H
#include "../ctype.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/clk-s2mps11.c
Expand Up @@ -307,7 +307,7 @@ MODULE_DEVICE_TABLE(platform, s2mps11_clk_id);
* This requires of_device_id table. In the same time this will not change the
* actual *device* matching so do not add .of_match_table.
*/
static const struct of_device_id s2mps11_dt_match[] = {
static const struct of_device_id s2mps11_dt_match[] __used = {
{
.compatible = "samsung,s2mps11-clk",
.data = (void *)S2MPS11X,
Expand Down
13 changes: 9 additions & 4 deletions drivers/vhost/test.c
Expand Up @@ -23,6 +23,12 @@
* Using this limit prevents one virtqueue from starving others. */
#define VHOST_TEST_WEIGHT 0x80000

/* Max number of packets transferred before requeueing the job.
* Using this limit prevents one virtqueue from starving others with
* pkts.
*/
#define VHOST_TEST_PKT_WEIGHT 256

enum {
VHOST_TEST_VQ = 0,
VHOST_TEST_VQ_MAX = 1,
Expand Down Expand Up @@ -81,10 +87,8 @@ static void handle_vq(struct vhost_test *n)
}
vhost_add_used_and_signal(&n->dev, vq, head, 0);
total_len += len;
if (unlikely(total_len >= VHOST_TEST_WEIGHT)) {
vhost_poll_queue(&vq->poll);
if (unlikely(vhost_exceeds_weight(vq, 0, total_len)))
break;
}
}

mutex_unlock(&vq->mutex);
Expand Down Expand Up @@ -116,7 +120,8 @@ static int vhost_test_open(struct inode *inode, struct file *f)
dev = &n->dev;
vqs[VHOST_TEST_VQ] = &n->vqs[VHOST_TEST_VQ];
n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick;
vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX);
vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX,
VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT);

f->private_data = n;

Expand Down
4 changes: 2 additions & 2 deletions drivers/vhost/vhost.c
Expand Up @@ -1324,7 +1324,7 @@ static int get_indirect(struct vhost_virtqueue *vq,
/* If this is an input descriptor, increment that count. */
if (desc.flags & cpu_to_vhost16(vq, VRING_DESC_F_WRITE)) {
*in_num += ret;
if (unlikely(log)) {
if (unlikely(log && ret)) {
log[*log_num].addr = vhost64_to_cpu(vq, desc.addr);
log[*log_num].len = vhost32_to_cpu(vq, desc.len);
++*log_num;
Expand Down Expand Up @@ -1453,7 +1453,7 @@ int vhost_get_vq_desc(struct vhost_virtqueue *vq,
/* If this is an input descriptor,
* increment that count. */
*in_num += ret;
if (unlikely(log)) {
if (unlikely(log && ret)) {
log[*log_num].addr = vhost64_to_cpu(vq, desc.addr);
log[*log_num].len = vhost32_to_cpu(vq, desc.len);
++*log_num;
Expand Down
17 changes: 17 additions & 0 deletions include/net/xfrm.h
Expand Up @@ -1304,6 +1304,23 @@ static inline int xfrm_state_kern(const struct xfrm_state *x)
return atomic_read(&x->tunnel_users);
}

static inline bool xfrm_id_proto_valid(u8 proto)
{
switch (proto) {
case IPPROTO_AH:
case IPPROTO_ESP:
case IPPROTO_COMP:
#if IS_ENABLED(CONFIG_IPV6)
case IPPROTO_ROUTING:
case IPPROTO_DSTOPTS:
#endif
return true;
default:
return false;
}
}

/* IPSEC_PROTO_ANY only matches 3 IPsec protocols, 0 could match all. */
static inline int xfrm_id_proto_match(u8 proto, u8 userproto)
{
return (!userproto || proto == userproto ||
Expand Down
4 changes: 3 additions & 1 deletion net/key/af_key.c
Expand Up @@ -1969,8 +1969,10 @@ parse_ipsecrequest(struct xfrm_policy *xp, struct sadb_x_ipsecrequest *rq)

if (rq->sadb_x_ipsecrequest_mode == 0)
return -EINVAL;
if (!xfrm_id_proto_valid(rq->sadb_x_ipsecrequest_proto))
return -EINVAL;

t->id.proto = rq->sadb_x_ipsecrequest_proto; /* XXX check proto */
t->id.proto = rq->sadb_x_ipsecrequest_proto;
if ((mode = pfkey_mode_to_xfrm(rq->sadb_x_ipsecrequest_mode)) < 0)
return -EINVAL;
t->mode = mode;
Expand Down
2 changes: 1 addition & 1 deletion net/packet/af_packet.c
Expand Up @@ -4176,7 +4176,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u,

/* Opening a Tx-ring is NOT supported in TPACKET_V3 */
if (!closing && tx_ring && (po->tp_version > TPACKET_V2)) {
WARN(1, "Tx-ring is not supported.\n");
net_warn_ratelimited("Tx-ring is not supported.\n");
goto out;
}

Expand Down
2 changes: 1 addition & 1 deletion net/xfrm/xfrm_state.c
Expand Up @@ -2142,7 +2142,7 @@ void xfrm_state_fini(struct net *net)
unsigned int sz;

flush_work(&net->xfrm.state_hash_work);
xfrm_state_flush(net, IPSEC_PROTO_ANY, false);
xfrm_state_flush(net, 0, false);
flush_work(&net->xfrm.state_gc_work);

WARN_ON(!list_empty(&net->xfrm.state_all));
Expand Down
14 changes: 1 addition & 13 deletions net/xfrm/xfrm_user.c
Expand Up @@ -1456,20 +1456,8 @@ static int validate_tmpl(int nr, struct xfrm_user_tmpl *ut, u16 family)
return -EINVAL;
}

switch (ut[i].id.proto) {
case IPPROTO_AH:
case IPPROTO_ESP:
case IPPROTO_COMP:
#if IS_ENABLED(CONFIG_IPV6)
case IPPROTO_ROUTING:
case IPPROTO_DSTOPTS:
#endif
case IPSEC_PROTO_ANY:
break;
default:
if (!xfrm_id_proto_valid(ut[i].id.proto))
return -EINVAL;
}

}

return 0;
Expand Down
2 changes: 1 addition & 1 deletion scripts/decode_stacktrace.sh
Expand Up @@ -64,7 +64,7 @@ parse_symbol() {
fi

# Strip out the base of the path
code=${code//^$basepath/""}
code=${code#$basepath/}

# In the case of inlines, move everything to same line
code=${code//$'\n'/' '}
Expand Down
4 changes: 2 additions & 2 deletions sound/pci/hda/hda_auto_parser.c
Expand Up @@ -827,6 +827,8 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth)
while (id >= 0) {
const struct hda_fixup *fix = codec->fixup_list + id;

if (++depth > 10)
break;
if (fix->chained_before)
apply_fixup(codec, fix->chain_id, action, depth + 1);

Expand Down Expand Up @@ -866,8 +868,6 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth)
}
if (!fix->chained || fix->chained_before)
break;
if (++depth > 10)
break;
id = fix->chain_id;
}
}
Expand Down
3 changes: 2 additions & 1 deletion sound/pci/hda/hda_generic.c
Expand Up @@ -5826,7 +5826,8 @@ int snd_hda_gen_init(struct hda_codec *codec)
if (spec->init_hook)
spec->init_hook(codec);

snd_hda_apply_verbs(codec);
if (!spec->skip_verbs)
snd_hda_apply_verbs(codec);

init_multi_out(codec);
init_extra_out(codec);
Expand Down
1 change: 1 addition & 0 deletions sound/pci/hda/hda_generic.h
Expand Up @@ -236,6 +236,7 @@ struct hda_gen_spec {
unsigned int indep_hp_enabled:1; /* independent HP enabled */
unsigned int have_aamix_ctl:1;
unsigned int hp_mic_jack_modes:1;
unsigned int skip_verbs:1; /* don't apply verbs at snd_hda_gen_init() */

/* additional mute flags (only effective with auto_mute_via_amp=1) */
u64 mute_bits;
Expand Down
2 changes: 2 additions & 0 deletions sound/pci/hda/patch_realtek.c
Expand Up @@ -772,9 +772,11 @@ static int alc_init(struct hda_codec *codec)
if (spec->init_hook)
spec->init_hook(codec);

spec->gen.skip_verbs = 1; /* applied in below */
snd_hda_gen_init(codec);
alc_fix_pll(codec);
alc_auto_init_amp(codec, spec->init_amp);
snd_hda_apply_verbs(codec); /* apply verbs here after own init */

snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT);

Expand Down

0 comments on commit c82acce

Please sign in to comment.