Linux 4.9.309
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.9.309 kernel.
All users of the 4.9 kernel series must upgrade.
The updated 4.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.9.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 arch/x86/kernel/acpi/boot.c | 24 +++++++++ drivers/acpi/battery.c | 12 ++++ drivers/acpi/video_detect.c | 75 +++++++++++++++++++++++++++++ drivers/crypto/qat/qat_common/qat_crypto.c | 8 +++ drivers/nfc/st21nfca/se.c | 10 +++ drivers/staging/fbtft/fb_st7789v.c | 2 net/ipv6/ip6_output.c | 4 - net/llc/af_llc.c | 49 ++++++++++++------ net/mac80211/cfg.c | 3 - net/netfilter/nf_tables_core.c | 2 sound/core/pcm_native.c | 4 + sound/pci/ac97/ac97_codec.c | 4 - sound/pci/cmipci.c | 3 - sound/usb/mixer_quirks.c | 7 +- 15 files changed, 178 insertions(+), 31 deletions(-)
Eric Dumazet (2):
llc: fix netdevice reference leaks in llc_ui_bind()
llc: only change llc->dev when bind() succeeds
Giacomo Guiduzzi (1):
ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
Giovanni Cabiddu (1):
crypto: qat - disable registration of algorithms
Greg Kroah-Hartman (1):
Linux 4.9.309
Jonathan Teh (1):
ALSA: cmipci: Restore aux vol on suspend/resume
Jordy Zomer (1):
nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
Lars-Peter Clausen (1):
ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
Linus Lüssing (1):
mac80211: fix potential double free on mesh join
Mark Cilissen (1):
ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
Maximilian Luz (1):
ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
Oliver Graute (1):
staging: fbtft: fb_st7789v: reset display before initialization
Pablo Neira Ayuso (1):
netfilter: nf_tables: initialize registers in nft_do_chain()
Tadeusz Struk (1):
net: ipv6: fix skb_over_panic in __ip6_append_data
Takashi Iwai (1):
ALSA: pcm: Add stream lock during PCM reset ioctl operations
Werner Sembach (1):
ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 9 -SUBLEVEL = 308 +SUBLEVEL = 309 EXTRAVERSION = NAME = Roaring Lionus
arch/x86/kernel/acpi/boot.c +24 -0
@@ -1324,6 +1324,17 @@ static int __init disable_acpi_pci(const struct dmi_system_id *d)return 0 ; } +static int __init disable_acpi_xsdt (const struct dmi_system_id *d) +{ +if (!acpi_force) { +pr_notice ("%s detected: force use of acpi=rsdt\n" , d->ident); + acpi_gbl_do_not_use_xsdt = TRUE; + }else { +pr_notice ("Warning: DMI blacklist says broken, but acpi XSDT forced\n" ); + } +return 0 ; +} +static int __init dmi_disable_acpi (const struct dmi_system_id *d) {if (!acpi_force) {
@@ -1444,6 +1455,19 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), }, }, +/* +* Boxes that need ACPI XSDT use disabled due to corrupted tables +*/ + { + .callback = disable_acpi_xsdt, + .ident = "Advantech DAC-BJ01", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "NEC"), + DMI_MATCH(DMI_PRODUCT_NAME, "Bearlake CRB Board"), + DMI_MATCH(DMI_BIOS_VERSION, "V1.12"), + DMI_MATCH(DMI_BIOS_DATE, "02/01/2011"), + }, + }, {} };
drivers/acpi/battery.c +12 -0
@@ -88,6 +88,10 @@ enum acpi_battery_files {static const struct acpi_device_id battery_device_ids[] = { {"PNP0C0A" ,0 }, + +/* Microsoft Surface Go 3 */ + {"MSHW0146" ,0 }, + {"" ,0 }, };
@@ -1153,6 +1157,14 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "Aspire V5-573G"), }, }, + { + /* Microsoft Surface Go 3 */ + .callback = battery_notification_delay_quirk, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Surface Go 3"), + }, + }, {}, };
drivers/acpi/video_detect.c +75 -0
81 lines not on this page · raw message
drivers/crypto/qat/qat_common/qat_crypto.c +8 -0
@@ -170,6 +170,14 @@ int qat_crypto_dev_config(struct adf_accel_dev *accel_dev) goto err;if (adf_cfg_section_add (accel_dev,"Accelerator0" )) goto err; + +/* Temporarily set the number of crypto instances to zero to avoid +* registering the crypto algorithms. +* This will be removed when the algorithms will support the +* CRYPTO_TFM_REQ_MAY_BACKLOG flag +*/ + instances =0 ; +for (i =0 ; i < instances; i++) { val = i;snprintf (key,sizeof (key),ADF_CY "%d" ADF_RING_BANK_NUM , i);
drivers/nfc/st21nfca/se.c +10 -0
@@ -330,6 +330,11 @@ int st21nfca_connectivity_event_received(struct nfc_hci_dev *hdev, u8 host,return -ENOMEM ; transaction->aid_len = skb->data[1 ]; + +/* Checking if the length of the AID is valid */ +if (transaction->aid_len >sizeof (transaction->aid)) +return -EINVAL ; +memcpy (transaction->aid, &skb->data[2 ], transaction->aid_len);
@@ -339,6 +344,11 @@ int st21nfca_connectivity_event_received(struct nfc_hci_dev *hdev, u8 host,return -EPROTO ; transaction->params_len = skb->data[transaction->aid_len +3 ]; + +/* Total size is allocated (skb->len - 2) minus fixed array members */ +if (transaction->params_len > ((skb->len -2 ) -sizeof (struct nfc_evt_transaction ))) +return -EINVAL ; +memcpy (transaction->params, skb->data + transaction->aid_len +4 , transaction->params_len);
drivers/staging/fbtft/fb_st7789v.c +2 -0
@@ -85,6 +85,8 @@ enum st7789v_command {*/ static int init_display (struct fbtft_par *par) { + par->fbtftops.reset (par); +/* turn off sleep mode */ write_reg (par,MIPI_DCS_EXIT_SLEEP_MODE );mdelay (120 );
net/ipv6/ip6_output.c +2 -2
@@ -1329,8 +1329,8 @@ static int __ip6_append_data(struct sock *sk, sizeof(struct frag_hdr) : 0) + rt->rt6i_nfheader_len; -if (mtu < fragheaderlen || - ((mtu - fragheaderlen) & ~7 ) + fragheaderlen <sizeof (struct frag_hdr )) +if (mtu <= fragheaderlen || + ((mtu - fragheaderlen) & ~7 ) + fragheaderlen <=sizeof (struct frag_hdr )) goto emsgsize; maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen -
net/llc/af_llc.c +32 -17
107 lines not on this page · raw message
net/mac80211/cfg.c +0 -3
@@ -1776,13 +1776,11 @@ static int copy_mesh_setup(struct ieee80211_if_mesh *ifmsh, const struct mesh_setup *setup) {u8 *new_ie; -const u8 *old_ie;struct ieee80211_sub_if_data *sdata =container_of (ifmsh, struct ieee80211_sub_if_data, u.mesh);/* allocate information elements */ new_ie =NULL ; - old_ie = ifmsh->ie;if (setup->ie_len) { new_ie = kmemdup(setup->ie, setup->ie_len,
@@ -1792,7 +1790,6 @@ static int copy_mesh_setup(struct ieee80211_if_mesh *ifmsh, } ifmsh->ie_len = setup->ie_len; ifmsh->ie = new_ie; -kfree (old_ie);/* now copy the rest of the setup parameters */ ifmsh->mesh_id_len = setup->mesh_id_len;
net/netfilter/nf_tables_core.c +1 -1
@@ -127,7 +127,7 @@ nft_do_chain(struct nft_pktinfo *pkt, void *priv)const struct net *net = pkt->net;const struct nft_rule *rule;const struct nft_expr *expr, *last; -struct nft_regs regs; +struct nft_regs regs = {};unsigned int stackptr =0 ;struct nft_jumpstack jumpstack[NFT_JUMP_STACK_SIZE ];struct nft_stats *stats;
sound/core/pcm_native.c +4 -0
@@ -1489,21 +1489,25 @@ static int snd_pcm_do_reset(struct snd_pcm_substream *substream, int state)int err = substream->ops->ioctl (substream,SNDRV_PCM_IOCTL1_RESET ,NULL );if (err <0 )return err; +snd_pcm_stream_lock_irq (substream); runtime->hw_ptr_base =0 ; runtime->hw_ptr_interrupt = runtime->status->hw_ptr - runtime->status->hw_ptr % runtime->period_size; runtime->silence_start = runtime->status->hw_ptr; runtime->silence_filled =0 ; +snd_pcm_stream_unlock_irq (substream);return 0 ; }static void snd_pcm_post_reset (struct snd_pcm_substream *substream,int state) {struct snd_pcm_runtime *runtime = substream->runtime; +snd_pcm_stream_lock_irq (substream); runtime->control->appl_ptr = runtime->status->hw_ptr;if (substream->stream ==SNDRV_PCM_STREAM_PLAYBACK && runtime->silence_size >0 )snd_pcm_playback_silence (substream,ULONG_MAX ); +snd_pcm_stream_unlock_irq (substream); }static const struct action_ops snd_pcm_action_reset = {
sound/pci/ac97/ac97_codec.c +2 -2
@@ -958,8 +958,8 @@ static int snd_ac97_ad18xx_pcm_get_volume(struct snd_kcontrol *kcontrol, structint codec = kcontrol->private_value &3 ;mutex_lock (&ac97->page_mutex); - ucontrol->value.integer.value[0 ] =31 - ((ac97->spec.ad18xx.pcmreg[codec] >>0 ) &31 ); - ucontrol->value.integer.value[1 ] =31 - ((ac97->spec.ad18xx.pcmreg[codec] >>8 ) &31 ); + ucontrol->value.integer.value[0 ] =31 - ((ac97->spec.ad18xx.pcmreg[codec] >>8 ) &31 ); + ucontrol->value.integer.value[1 ] =31 - ((ac97->spec.ad18xx.pcmreg[codec] >>0 ) &31 );mutex_unlock (&ac97->page_mutex);return 0 ; }
sound/pci/cmipci.c +1 -2
@@ -315,7 +315,6 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address.");#define CM_MICGAINZ 0x01/* mic boost */ #define CM_MICGAINZ_SHIFT 0 -#define CM_REG_MIXER3 0x24#define CM_REG_AUX_VOL 0x26#define CM_VAUXL_MASK 0xf0#define CM_VAUXR_MASK 0x0f
@@ -3323,7 +3322,7 @@ static void snd_cmipci_remove(struct pci_dev *pci)*/ static unsigned char saved_regs[] = {CM_REG_FUNCTRL1 ,CM_REG_CHFORMAT ,CM_REG_LEGACY_CTRL ,CM_REG_MISC_CTRL , -CM_REG_MIXER0 ,CM_REG_MIXER1 ,CM_REG_MIXER2 ,CM_REG_MIXER3 ,CM_REG_PLL , +CM_REG_MIXER0 ,CM_REG_MIXER1 ,CM_REG_MIXER2 ,CM_REG_AUX_VOL ,CM_REG_PLL ,CM_REG_CH0_FRAME1 ,CM_REG_CH0_FRAME2 ,CM_REG_CH1_FRAME1 ,CM_REG_CH1_FRAME2 ,CM_REG_EXT_MISC ,CM_REG_INT_STATUS ,CM_REG_INT_HLDCLR ,CM_REG_FUNCTRL0 ,
sound/usb/mixer_quirks.c +4 -3
@@ -1879,9 +1879,10 @@ void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_interface *mixer,if (unitid ==7 && cval->control ==UAC_FU_VOLUME )snd_dragonfly_quirk_db_scale (mixer, cval, kctl);break ; -/* lowest playback value is muted on C-Media devices */ -case USB_ID (0x0d8c ,0x000c ): -case USB_ID (0x0d8c ,0x0014 ): +/* lowest playback value is muted on some devices */ +case USB_ID (0x0d8c ,0x000c ):/* C-Media */ +case USB_ID (0x0d8c ,0x0014 ):/* C-Media */ +case USB_ID (0x19f7 ,0x0003 ):/* RODE NT-USB */ if (strstr (kctl->id.name,"Playback" )) cval->min_mute =1 ;break ;