Linux 4.14.260
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.14.260 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.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
------------
Documentation/admin-guide/kernel-parameters.txt | 8 ++ Documentation/networking/bonding.txt | 11 ++-- Makefile | 2 arch/arm/kernel/entry-armv.S | 8 +- arch/x86/include/asm/pgtable.h | 4 - drivers/hid/hid-holtek-mouse.c | 15 +++++ drivers/hwmon/lm90.c | 8 +- drivers/infiniband/hw/qib/qib_user_sdma.c | 2 drivers/input/touchscreen/atmel_mxt_ts.c | 2 drivers/net/bonding/bond_options.c | 2 drivers/net/can/usb/kvaser_usb.c | 41 +++++++++++++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h | 2 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 12 +++- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 4 + drivers/net/ethernet/sfc/falcon/rx.c | 5 + drivers/net/ethernet/smsc/smc911x.c | 5 + drivers/net/fjes/fjes_main.c | 5 + drivers/net/hamradio/mkiss.c | 5 + drivers/net/usb/lan78xx.c | 6 ++ drivers/pinctrl/stm32/pinctrl-stm32.c | 8 +- drivers/spi/spi-armada-3700.c | 2 drivers/usb/gadget/function/u_ether.c | 15 +---- fs/f2fs/xattr.c | 9 ++- include/linux/virtio_net.h | 25 ++++++++- net/ax25/af_ax25.c | 4 + net/netfilter/nfnetlink_log.c | 3 - net/netfilter/nfnetlink_queue.c | 3 - net/phonet/pep.c | 2 sound/core/jack.c | 4 + sound/drivers/opl3/opl3_midi.c | 2 30 files changed, 167 insertions(+), 57 deletions(-)
Andrew Cooper (1):
x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
Ard Biesheuvel (1):
ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
Benjamin Tissoires (1):
HID: holtek: fix mouse probing
Chao Yu (1):
f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
Colin Ian King (1):
ALSA: drivers: opl3: Fix incorrect use of vp->state
Dongliang Mu (1):
spi: change clk_disable_unprepare to clk_unprepare
Fabien Dessenne (1):
pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
Fernando Fernandez Mancera (1):
bonding: fix ad_actor_system option setting to default
Greg Jesionowski (1):
net: usb: lan78xx: add Allied Telesis AT29M2-AF
Greg Kroah-Hartman (1):
Linux 4.14.260
Guenter Roeck (2):
hwmon: (lm90) Fix usage of CONFIG2 register in detect function
hwmon: (lm90) Do not report 'busy' status bit as alarm
Ignacy Gawędzki (1):
netfilter: fix regression in looped (broad|multi)cast's MAC handling
Jiasheng Jiang (4):
qlcnic: potential dereference null pointer of rx_queue->page_ring
fjes: Check for error irq
drivers: net: smc911x: Check for error irq
sfc: falcon: Check null pointer of rx_queue->page_ring
Jimmy Assarsson (1):
can: kvaser_usb: get CAN clock frequency from device
José Expósito (2):
IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
Input: atmel_mxt_ts - fix double free in mxt_read_info_block
Lin Ma (3):
ax25: NPD bug when detaching AX25 device
hamradio: defer ax25 kfree after unregister_netdev
hamradio: improve the incomplete fix to avoid NPD
Marian Postevca (1):
usb: gadget: u_ether: fix race in setting MAC address in setup phase
Rémi Denis-Courmont (1):
phonet/pep: refuse to enable an unbound pipe
Sean Christopherson (1):
KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
Willem de Bruijn (2):
net: accept UFOv6 packages in virtio_net_hdr_to_skb
net: skip virtio_net_hdr_set_proto if protocol already set
Xiaoke Wang (1):
ALSA: jack: Check the return value of kstrdup()
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +6 -2
@@ -1905,8 +1905,12 @@ Default is 1 (enabled) kvm-intel.emulate_invalid_guest_state= - [KVM,Intel] Enable emulation of invalid guest states - Default is 0 (disabled) + [KVM,Intel] Disable emulation of invalid guest state. + Ignored if kvm-intel.enable_unrestricted_guest=1, as + guest state is never invalid for unrestricted guests. + This param doesn't apply to nested guests (L2), as KVM + never emulates invalid L2 guest state. + Default is 1 (enabled) kvm-intel.flexpriority= [KVM,Intel] Disable FlexPriority feature (TPR shadow).
Documentation/networking/bonding.txt +6 -5
@@ -191,11 +191,12 @@ ad_actor_sys_prio ad_actor_system In an AD system, this specifies the mac-address for the actor in - protocol packet exchanges (LACPDUs). The value cannot be NULL or - multicast. It is preferred to have the local-admin bit set for this - mac but driver does not enforce it. If the value is not given then - system defaults to using the masters' mac address as actors' system - address. + protocol packet exchanges (LACPDUs). The value cannot be a multicast + address. If the all-zeroes MAC is specified, bonding will internally + use the MAC of the bond itself. It is preferred to have the + local-admin bit set for this mac but driver does not enforce it. If + the value is not given then system defaults to using the masters' + mac address as actors' system address. This parameter has effect only in 802.3ad mode and is available through SysFs interface.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 -SUBLEVEL = 259 +SUBLEVEL = 260 EXTRAVERSION = NAME = Petit Gorille
arch/arm/kernel/entry-armv.S +3 -5
@@ -624,11 +624,9 @@ call_fpe: tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 reteq lr and r8, r0, #0x00000f00 @ mask out CP number - THUMB( lsr r8, r8, #8 ) mov r7, #1 - add r6, r10, #TI_USED_CP - ARM( strb r7, [r6, r8, lsr #8] ) @ set appropriate used_cp[] - THUMB( strb r7, [r6, r8] ) @ set appropriate used_cp[] + add r6, r10, r8, lsr #8 @ add used_cp[] array offset first + strb r7, [r6, #TI_USED_CP] @ set appropriate used_cp[] #ifdef CONFIG_IWMMXT @ Test if we need to give access to iWMMXt coprocessors ldr r5, [r10, #TI_FLAGS]
@@ -637,7 +635,7 @@ call_fpe: bcs iwmmxt_task_enable #endif ARM( add pc, pc, r8, lsr #6 ) - THUMB( lsl r8, r8, #2 ) + THUMB( lsr r8, r8, #6 ) THUMB( add pc, r8 ) nop
arch/x86/include/asm/pgtable.h +2 -2
@@ -1220,8 +1220,8 @@ static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd)#endif #endif -#define PKRU_AD_BIT 0x1 -#define PKRU_WD_BIT 0x2 +#define PKRU_AD_BIT 0x1u +#define PKRU_WD_BIT 0x2u#define PKRU_BITS_PER_PKEY 2static inline bool __pkru_allows_read (u32 pkru,u16 pkey)
drivers/hid/hid-holtek-mouse.c +15 -0
@@ -68,8 +68,23 @@ static __u8 *holtek_mouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,static int holtek_mouse_probe (struct hid_device *hdev,const struct hid_device_id *id) { +int ret; +if (!hid_is_usb (hdev))return -EINVAL ; + + ret =hid_parse (hdev); +if (ret) { +hid_err (hdev,"hid parse failed: %d\n" , ret); +return ret; + } + + ret =hid_hw_start (hdev,HID_CONNECT_DEFAULT ); +if (ret) { +hid_err (hdev,"hw start failed: %d\n" , ret); +return ret; + } +return 0 ; }
drivers/hwmon/lm90.c +4 -4
@@ -197,6 +197,7 @@ enum chips { lm90, adm1032, lm99, lm86, max6657, max6659, adt7461, max6680,#define LM90_STATUS_RHIGH (1 << 4)/* remote high temp limit tripped */ #define LM90_STATUS_LLOW (1 << 5)/* local low temp limit tripped */ #define LM90_STATUS_LHIGH (1 << 6)/* local high temp limit tripped */ +#define LM90_STATUS_BUSY (1 << 7)/* conversion is ongoing */ #define MAX6696_STATUS2_R2THRM (1 << 1)/* remote2 THERM limit tripped */ #define MAX6696_STATUS2_R2OPEN (1 << 2)/* remote2 is an open circuit */
@@ -786,7 +787,7 @@ static int lm90_update_device(struct device *dev) val =lm90_read_reg (client,LM90_REG_R_STATUS );if (val <0 )return val; - data->alarms = val;/* lower 8 bit of alarms */ + data->alarms = val & ~LM90_STATUS_BUSY ;if (data->kind == max6696) { val =lm90_select_remote_channel (client, data,1 );
@@ -1439,12 +1440,11 @@ static int lm90_detect(struct i2c_client *client,if (man_id <0 || chip_id <0 || config1 <0 || convrate <0 )return -ENODEV ; -if (man_id ==0x01 || man_id ==0x5C || man_id ==0x41 ) { +if (man_id ==0x01 || man_id ==0x5C || man_id ==0xA1 ) { config2 =i2c_smbus_read_byte_data (client,LM90_REG_R_CONFIG2 );if (config2 <0 )return -ENODEV ; - }else - config2 =0 ;/* Make compiler happy */ + }if ((address ==0x4C || address ==0x4D ) && man_id ==0x01 ) {/* National Semiconductor */
drivers/infiniband/hw/qib/qib_user_sdma.c +1 -1
@@ -946,7 +946,7 @@ static int qib_user_sdma_queue_pkts(const struct qib_devdata *dd, &addrlimit) || addrlimit > type_max(typeof(pkt->addrlimit))) { ret = -EINVAL ; - goto free_pbc; + goto free_pkt; } pkt->addrlimit = addrlimit;
drivers/input/touchscreen/atmel_mxt_ts.c +1 -1
@@ -1768,7 +1768,7 @@ static int mxt_read_info_block(struct mxt_data *data)if (error) {dev_err (&client->dev,"Error %d parsing object table\n" , error);mxt_free_object_table (data); - goto err_free_mem; +return error; } data->object_table = (struct mxt_object *)(id_buf +MXT_OBJECT_START );
drivers/net/bonding/bond_options.c +1 -1
@@ -1443,7 +1443,7 @@ static int bond_option_ad_actor_system_set(struct bonding *bond, mac = (u8 *)&newval->value; } -if (!is_valid_ether_addr (mac)) +if (is_multicast_ether_addr (mac)) goto err;netdev_dbg (bond->dev,"Setting ad_actor_system to %pM\n" , mac);
drivers/net/can/usb/kvaser_usb.c +36 -5
82 lines not on this page · raw message
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h +1 -1
@@ -202,7 +202,7 @@ int qlcnic_sriov_get_vf_vport_info(struct qlcnic_adapter *, struct qlcnic_info *, u16);int qlcnic_sriov_cfg_vf_guest_vlan (struct qlcnic_adapter *,u16 ,u8 );void qlcnic_sriov_free_vlans (struct qlcnic_adapter *); -void qlcnic_sriov_alloc_vlans (struct qlcnic_adapter *); +int qlcnic_sriov_alloc_vlans (struct qlcnic_adapter *);bool qlcnic_sriov_check_any_vlan (struct qlcnic_vf_info *);void qlcnic_sriov_del_vlan_id (struct qlcnic_sriov *,struct qlcnic_vf_info *,u16 );
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +9 -3
@@ -433,7 +433,7 @@ static int qlcnic_sriov_set_guest_vlan_mode(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) {struct qlcnic_sriov *sriov = adapter->ahw->sriov; -int i, num_vlans; +int i, num_vlans, ret;u16 *vlans;if (sriov->allowed_vlans)
@@ -444,7 +444,9 @@ static int qlcnic_sriov_set_guest_vlan_mode(struct qlcnic_adapter *adapter,dev_info (&adapter->pdev->dev,"Number of allowed Guest VLANs = %d\n" , sriov->num_allowed_vlans); -qlcnic_sriov_alloc_vlans (adapter); + ret =qlcnic_sriov_alloc_vlans (adapter); +if (ret) +return ret;if (!sriov->any_vlan)return 0 ;
@@ -2164,7 +2166,7 @@ static int qlcnic_sriov_vf_resume(struct qlcnic_adapter *adapter)return err; } -void qlcnic_sriov_alloc_vlans (struct qlcnic_adapter *adapter) +int qlcnic_sriov_alloc_vlans (struct qlcnic_adapter *adapter) {struct qlcnic_sriov *sriov = adapter->ahw->sriov;struct qlcnic_vf_info *vf;
@@ -2174,7 +2176,11 @@ void qlcnic_sriov_alloc_vlans(struct qlcnic_adapter *adapter) vf = &sriov->vf_info[i]; vf->sriov_vlans =kcalloc (sriov->num_allowed_vlans,sizeof (*vf->sriov_vlans),GFP_KERNEL ); +if (!vf->sriov_vlans) +return -ENOMEM ; } + +return 0 ; }void qlcnic_sriov_free_vlans (struct qlcnic_adapter *adapter)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +3 -1
@@ -598,7 +598,9 @@ static int __qlcnic_pci_sriov_enable(struct qlcnic_adapter *adapter,if (err) goto del_flr_queue; -qlcnic_sriov_alloc_vlans (adapter); + err =qlcnic_sriov_alloc_vlans (adapter); +if (err) + goto del_flr_queue;return err;
drivers/net/ethernet/sfc/falcon/rx.c +4 -1
@@ -732,7 +732,10 @@ static void ef4_init_rx_recycle_ring(struct ef4_nic *efx, efx->rx_bufs_per_page); rx_queue->page_ring =kcalloc (page_ring_size,sizeof (*rx_queue->page_ring),GFP_KERNEL ); - rx_queue->page_ptr_mask = page_ring_size -1 ; +if (!rx_queue->page_ring) + rx_queue->page_ptr_mask =0 ; +else + rx_queue->page_ptr_mask = page_ring_size -1 ; }void ef4_init_rx_queue (struct ef4_rx_queue *rx_queue)
drivers/net/ethernet/smsc/smc911x.c +5 -0
@@ -2089,6 +2089,11 @@ static int smc911x_drv_probe(struct platform_device *pdev) ndev->dma = (unsigned char )-1 ; ndev->irq =platform_get_irq (pdev,0 ); +if (ndev->irq <0 ) { + ret = ndev->irq; + goto release_both; + } + lp =netdev_priv (ndev); lp->netdev = ndev;#ifdef SMC_DYNAMIC_BUS_CONFIG
drivers/net/fjes/fjes_main.c +5 -0
@@ -1284,6 +1284,11 @@ static int fjes_probe(struct platform_device *plat_dev) hw->hw_res.start = res->start; hw->hw_res.size =resource_size (res); hw->hw_res.irq =platform_get_irq (plat_dev,0 ); +if (hw->hw_res.irq <0 ) { + err = hw->hw_res.irq; + goto err_free_control_wq; + } + err =fjes_hw_init (&adapter->hw);if (err) goto err_free_control_wq;
drivers/net/hamradio/mkiss.c +3 -2
@@ -803,13 +803,14 @@ static void mkiss_close(struct tty_struct *tty)*/ netif_stop_queue (ax->dev); -/* Free all AX25 frame buffers. */ +unregister_netdev (ax->dev); + +/* Free all AX25 frame buffers after unreg. */ kfree (ax->rbuff);kfree (ax->xbuff); ax->tty =NULL ; -unregister_netdev (ax->dev);free_netdev (ax->dev); }
drivers/net/usb/lan78xx.c +6 -0
@@ -74,6 +74,8 @@#define LAN7801_USB_PRODUCT_ID (0x7801)#define LAN78XX_EEPROM_MAGIC (0x78A5)#define LAN78XX_OTP_MAGIC (0x78F3) +#define AT29M2AF_USB_VENDOR_ID (0x07C9) +#define AT29M2AF_USB_PRODUCT_ID (0x0012)#define MII_READ 1#define MII_WRITE 0
@@ -4013,6 +4015,10 @@ static const struct usb_device_id products[] = {/* LAN7801 USB Gigabit Ethernet Device */ USB_DEVICE(LAN78XX_USB_VENDOR_ID, LAN7801_USB_PRODUCT_ID), }, + { +/* ATM2-AF USB Gigabit Ethernet Device */ + USB_DEVICE(AT29M2AF_USB_VENDOR_ID, AT29M2AF_USB_PRODUCT_ID), + }, {}, };MODULE_DEVICE_TABLE (usb, products);
drivers/pinctrl/stm32/pinctrl-stm32.c +4 -4
@@ -989,10 +989,10 @@ static int stm32_gpiolib_register_bank(struct stm32_pinctrl *pctl, bank_nr = args.args[1 ] /STM32_GPIO_PINS_PER_BANK ; bank->gpio_chip.base = args.args[1 ]; - npins = args.args[2 ]; -while (!of_parse_phandle_with_fixed_args (np,"gpio-ranges" ,3 , - ++i, &args)) - npins += args.args[2 ]; +/* get the last defined gpio line (offset + nb of pins) */ + npins = args.args[0 ] + args.args[2 ]; +while (!of_parse_phandle_with_fixed_args (np,"gpio-ranges" ,3 , ++i, &args)) + npins =max (npins, (int )(args.args[0 ] + args.args[2 ])); }else { bank_nr = pctl->nbanks; bank->gpio_chip.base = bank_nr *STM32_GPIO_PINS_PER_BANK ;
drivers/spi/spi-armada-3700.c +1 -1
@@ -852,7 +852,7 @@ static int a3700_spi_probe(struct platform_device *pdev)return 0 ; error_clk: -clk_disable_unprepare (spi->clk); +clk_unprepare (spi->clk); error:spi_master_put (master); out:
drivers/usb/gadget/function/u_ether.c +5 -10
@@ -864,19 +864,23 @@ int gether_register_netdev(struct net_device *net) {struct eth_dev *dev;struct usb_gadget *g; -struct sockaddr sa;int status;if (!net->dev.parent)return -EINVAL ; dev =netdev_priv (net); g = dev->gadget; + +memcpy (net->dev_addr, dev->dev_mac,ETH_ALEN ); + net->addr_assign_type =NET_ADDR_RANDOM ; + status =register_netdev (net);if (status <0 ) {dev_dbg (&g->dev,"register_netdev failed, %d\n" , status);return status; }else {INFO (dev,"HOST MAC %pM\n" , dev->host_mac); +INFO (dev,"MAC %pM\n" , dev->dev_mac);/* two kinds of host-initiated state changes: * - iff DATA transfer is active, carrier is "on"
@@ -884,15 +888,6 @@ int gether_register_netdev(struct net_device *net)*/ netif_carrier_off (net); } - sa.sa_family = net->type; -memcpy (sa.sa_data, dev->dev_mac,ETH_ALEN ); -rtnl_lock (); - status =dev_set_mac_address (net, &sa); -rtnl_unlock (); -if (status) -pr_warn ("cannot set self ethernet address: %d\n" , status); -else -INFO (dev,"MAC %pM\n" , dev->dev_mac);return status; }
fs/f2fs/xattr.c +8 -1
@@ -636,8 +636,15 @@ static int __f2fs_setxattr(struct inode *inode, int index, } last = here; -while (!IS_XATTR_LAST_ENTRY (last)) +while (!IS_XATTR_LAST_ENTRY (last)) { +if ((void *)(last) +sizeof (__u32) > last_base_addr || + (void *)XATTR_NEXT_ENTRY (last) > last_base_addr) { +set_sbi_flag (F2FS_I_SB (inode),SBI_NEED_FSCK ); + error = -EFSCORRUPTED ; + goto exit; + } last =XATTR_NEXT_ENTRY (last); + } newsize =XATTR_ALIGN (sizeof (struct f2fs_xattr_entry ) + len + size);
include/linux/virtio_net.h +23 -2
@@ -7,9 +7,27 @@#include <uapi/linux/udp.h> #include <uapi/linux/virtio_net.h> +static inline bool virtio_net_hdr_match_proto (__be16 protocol,__u8 gso_type) +{ +switch (gso_type & ~VIRTIO_NET_HDR_GSO_ECN ) { +case VIRTIO_NET_HDR_GSO_TCPV4 : +return protocol ==cpu_to_be16 (ETH_P_IP ); +case VIRTIO_NET_HDR_GSO_TCPV6 : +return protocol ==cpu_to_be16 (ETH_P_IPV6 ); +case VIRTIO_NET_HDR_GSO_UDP : +return protocol ==cpu_to_be16 (ETH_P_IP ) || + protocol ==cpu_to_be16 (ETH_P_IPV6 ); +default : +return false; + } +} +static inline int virtio_net_hdr_set_proto (struct sk_buff *skb,const struct virtio_net_hdr *hdr) { +if (skb->protocol) +return 0 ; +switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN ) {case VIRTIO_NET_HDR_GSO_TCPV4 :case VIRTIO_NET_HDR_GSO_UDP :
@@ -88,9 +106,12 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb,if (!skb->protocol) {__be16 protocol =dev_parse_header_protocol (skb); -virtio_net_hdr_set_proto (skb, hdr); -if (protocol && protocol != skb->protocol) +if (!protocol) +virtio_net_hdr_set_proto (skb, hdr); +else if (!virtio_net_hdr_match_proto (protocol, hdr->gso_type))return -EINVAL ; +else + skb->protocol = protocol; } retry:if (!skb_flow_dissect_flow_keys (skb, &keys,0 )) {
net/ax25/af_ax25.c +3 -1
@@ -88,8 +88,10 @@ static void ax25_kill_by_device(struct net_device *dev) again:ax25_for_each (s, &ax25_list) {if (s->ax25_dev == ax25_dev) { - s->ax25_dev =NULL ;spin_unlock_bh (&ax25_list_lock); +lock_sock (s->sk); + s->ax25_dev =NULL ; +release_sock (s->sk);ax25_disconnect (s,ENETUNREACH );spin_lock_bh (&ax25_list_lock);
net/netfilter/nfnetlink_log.c +2 -1
@@ -510,7 +510,8 @@ __build_packet_message(struct nfnl_log_net *log, goto nla_put_failure;if (indev && skb->dev && - skb->mac_header != skb->network_header) { +skb_mac_header_was_set (skb) && +skb_mac_header_len (skb) !=0 ) {struct nfulnl_msg_packet_hw phw;int len;
net/netfilter/nfnetlink_queue.c +2 -1
@@ -543,7 +543,8 @@ nfqnl_build_packet_message(struct net *net, struct nfqnl_instance *queue, goto nla_put_failure;if (indev && entskb->dev && -skb_mac_header_was_set (entskb)) { +skb_mac_header_was_set (entskb) && +skb_mac_header_len (entskb) !=0 ) {struct nfqnl_msg_packet_hw phw;int len;
net/phonet/pep.c +2 -0
@@ -959,6 +959,8 @@ static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg) ret = -EBUSY ; else if (sk->sk_state == TCP_ESTABLISHED) ret = -EISCONN ; + else if (!pn->pn_sk.sobject) + ret = -EADDRNOTAVAIL ; else ret =pep_sock_enable (sk,NULL ,0 );release_sock (sk);
sound/core/jack.c +4 -0
@@ -234,6 +234,10 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,return -ENOMEM ; jack->id =kstrdup (id,GFP_KERNEL ); +if (jack->id ==NULL ) { +kfree (jack); +return -ENOMEM ; + }/* don't creat input device for phantom jack */ if (!phantom_jack) {
sound/drivers/opl3/opl3_midi.c +1 -1
@@ -415,7 +415,7 @@ void snd_opl3_note_on(void *p, int note, int vel, struct snd_midi_channel *chan) }if (instr_4op) { vp2 = &opl3->voices[voice +3 ]; -if (vp->state >0 ) { +if (vp2->state >0 ) { opl3_reg = reg_side | (OPL3_REG_KEYON_BLOCK + voice_offset +3 ); reg_val = vp->keyon_reg & ~OPL3_KEYON_BIT ;