Linux 4.19.192
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.192 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 arch/openrisc/kernel/setup.c | 2 drivers/cdrom/gdrom.c | 13 +++- drivers/firmware/arm_scpi.c | 4 + drivers/hwmon/lm80.c | 11 --- drivers/infiniband/hw/mlx5/main.c | 1 drivers/infiniband/sw/rxe/rxe_qp.c | 7 ++ drivers/leds/leds-lp5523.c | 2 drivers/md/dm-snap.c | 1 drivers/media/platform/rcar_drif.c | 1 drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 3 - drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c | 8 +- drivers/net/ethernet/sun/niu.c | 32 +++++++---- drivers/net/wireless/realtek/rtlwifi/base.c | 19 +++--- drivers/nvme/target/io-cmd-file.c | 8 +- drivers/platform/x86/dell-smbios-wmi.c | 3 - drivers/rapidio/rio_cm.c | 17 ++---- drivers/scsi/qla2xxx/qla_nx.c | 3 - drivers/scsi/ufs/ufs-hisi.c | 15 +++-- drivers/tty/serial/mvebu-uart.c | 3 - drivers/tty/vt/vt.c | 2 drivers/tty/vt/vt_ioctl.c | 6 +- drivers/video/console/vgacon.c | 56 +++++++++++--------- drivers/video/fbdev/core/fbcon.c | 2 drivers/video/fbdev/hgafb.c | 21 ++++--- drivers/video/fbdev/imsttfb.c | 5 - drivers/xen/xen-pciback/xenbus.c | 22 ++++++- fs/cifs/smb2ops.c | 2 fs/ecryptfs/crypto.c | 6 -- include/linux/console_struct.h | 1 kernel/locking/mutex-debug.c | 4 - kernel/locking/mutex-debug.h | 2 kernel/locking/mutex.c | 18 ++++-- kernel/locking/mutex.h | 4 - kernel/ptrace.c | 18 ++++++ net/bluetooth/smp.c | 9 +++ sound/firewire/Kconfig | 4 - sound/firewire/bebob/bebob.c | 2 sound/firewire/dice/dice-alesis.c | 2 sound/firewire/dice/dice-tcelectronic.c | 4 - sound/firewire/oxfw/oxfw.c | 1 sound/isa/sb/sb8.c | 4 - sound/pci/hda/patch_realtek.c | 20 ++++++- sound/usb/line6/driver.c | 4 + sound/usb/line6/pod.c | 5 - sound/usb/line6/variax.c | 6 -- sound/usb/midi.c | 4 + 47 files changed, 236 insertions(+), 153 deletions(-)
Anirudh Rayabharam (3):
rapidio: handle create_workqueue() failure
net: stmicro: handle clk_prepare() failure during init
video: hgafb: correctly handle card detect failure during probe
Atul Gopinathan (1):
cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
Christophe JAILLET (1):
openrisc: Fix a memory leak
Dan Carpenter (1):
firmware: arm_scpi: Prevent the ternary sign expansion bug
Daniel Wagner (1):
nvmet: seset ns->file when open fails
Du Cheng (1):
ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
Greg Kroah-Hartman (18):
Revert "ALSA: sb8: add a check for request_region"
Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails" Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference" Revert "video: hgafb: fix potential NULL pointer dereference" Revert "net: stmicro: fix a missing check of clk_prepare"
Revert "leds: lp5523: fix a missing check of return value of lp55xx_read" Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" Revert "video: imsttfb: fix potential NULL pointer dereferences" Revert "ecryptfs: replace BUG_ON with error handling code" Revert "scsi: ufs: fix a missing check of devm_reset_control_get" Revert "gdrom: fix a memory leak bug"
cdrom: gdrom: initialize global variable at init time
Revert "media: rcar_drif: fix a memory disclosure"
Revert "rtlwifi: fix a potential NULL pointer dereference" Revert "qlcnic: Avoid potential NULL pointer dereference"
Revert "niu: fix missing checks of niu_pci_eeprom_read"
net: rtlwifi: properly check for alloc_workqueue() failure
Linux 4.19.192
Hans de Goede (1):
platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
Hui Wang (1):
ALSA: hda/realtek: reset eapd coeff to default value for alc287
Igor Matheus Andrade Torrente (1):
video: hgafb: fix potential NULL pointer dereference
Jan Beulich (1):
xen-pciback: reconfigure also from backend watch handler
Leon Romanovsky (1):
RDMA/rxe: Clear all QP fields if creation failed
Luiz Augusto von Dentz (1):
Bluetooth: SMP: Fail if remote and local public keys are identical
Maciej W. Rozycki (2):
vgacon: Record video mode changes with VT_RESIZEX
vt: Fix character height handling with VT_RESIZEX
Maor Gottlieb (1):
RDMA/mlx5: Recover from fatal event in dual port mode
Mikulas Patocka (1):
dm snapshot: fix crash with transient storage and zero chunk size
Oleg Nesterov (1):
ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
PeiSen Hou (1):
ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293
Phillip Potter (2):
scsi: ufs: handle cleanup correctly on devm_reset_control_get error
leds: lp5523: check return value of lp5xx_read and jump to cleanup code
Ronnie Sahlberg (1):
cifs: fix memory leak in smb2_copychunk_range
Takashi Iwai (2):
ALSA: line6: Fix racy initialization of LINE6 MIDI
ALSA: usb-audio: Validate MS endpoint descriptors
Takashi Sakamoto (3):
ALSA: dice: fix stream format for TC Electronic Konnekt Live at high sampling transfer frequency
ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
Tetsuo Handa (1):
tty: vt: always invoke vc->vc_sw->con_resize callback
Tom Seewald (1):
qlcnic: Add null check after calling netdev_alloc_skb
Zhen Lei (1):
scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
Zqiang (1):
locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 191 +SUBLEVEL = 192 EXTRAVERSION = NAME = "People's Front"
arch/openrisc/kernel/setup.c +2 -0
@@ -281,6 +281,8 @@ void calibrate_delay(void)pr_cont ("%lu.%02lu BogoMIPS (lpj=%lu)\n" , loops_per_jiffy / (500000 /HZ ), (loops_per_jiffy / (5000 /HZ )) %100 , loops_per_jiffy); + +of_node_put (cpu); }void __init setup_arch (char **cmdline_p)
drivers/cdrom/gdrom.c +10 -3
@@ -775,6 +775,13 @@ static int probe_gdrom_setupqueue(void)static int probe_gdrom (struct platform_device *devptr) {int err; + +/* +* Ensure our "one" device is initialized properly in case of previous +* usages of it +*/ +memset (&gd,0 ,sizeof (gd)); +/* Start the device */ if (gdrom_execute_diagnostic () !=1 ) {pr_warning ("ATA Probe for GDROM failed\n" );
@@ -857,6 +864,8 @@ static int remove_gdrom(struct platform_device *devptr)if (gdrom_major)unregister_blkdev (gdrom_major,GDROM_DEV_NAME );unregister_cdrom (gd.cd_info); +kfree (gd.cd_info); +kfree (gd.toc);return 0 ; }
@@ -872,7 +881,7 @@ static struct platform_driver gdrom_driver = {static int __init init_gdrom (void ) {int rc; - gd.toc =NULL ; + rc =platform_driver_register (&gdrom_driver);if (rc)return rc;
@@ -888,8 +897,6 @@ static void __exit exit_gdrom(void) {platform_device_unregister (pd);platform_driver_unregister (&gdrom_driver); -kfree (gd.toc); -kfree (gd.cd_info); }module_init (init_gdrom);
drivers/firmware/arm_scpi.c +3 -1
@@ -563,8 +563,10 @@ static unsigned long scpi_clk_get_val(u16 clk_id) ret =scpi_send_message (CMD_GET_CLOCK_VALUE , &le_clk_id,sizeof (le_clk_id), &rate,sizeof (rate)); +if (ret) +return 0 ; -return ret ? ret :le32_to_cpu (rate); +return le32_to_cpu (rate); }static int scpi_clk_set_val (u16 clk_id,unsigned long rate)
drivers/hwmon/lm80.c +2 -9
@@ -630,7 +630,6 @@ static int lm80_probe(struct i2c_client *client,struct device *dev = &client->dev;struct device *hwmon_dev;struct lm80_data *data; -int rv; data =devm_kzalloc (dev,sizeof (struct lm80_data ),GFP_KERNEL );if (!data)
@@ -643,14 +642,8 @@ static int lm80_probe(struct i2c_client *client,lm80_init_client (client);/* A few vars need to be filled upon startup */ - rv =lm80_read_value (client,LM80_REG_FAN_MIN (1 )); -if (rv <0 ) -return rv; - data->fan[f_min][0 ] = rv; - rv =lm80_read_value (client,LM80_REG_FAN_MIN (2 )); -if (rv <0 ) -return rv; - data->fan[f_min][1 ] = rv; + data->fan[f_min][0 ] =lm80_read_value (client,LM80_REG_FAN_MIN (1 )); + data->fan[f_min][1 ] =lm80_read_value (client,LM80_REG_FAN_MIN (2 )); hwmon_dev =devm_hwmon_device_register_with_groups (dev, client->name, data, lm80_groups);
drivers/infiniband/hw/mlx5/main.c +1 -0
@@ -6339,6 +6339,7 @@ static void *mlx5_ib_add_slave_port(struct mlx5_core_dev *mdev)if (bound) {rdma_roce_rescan_device (&dev->ib_dev); + mpi->ibdev->ib_active = true;break ; } }
drivers/infiniband/sw/rxe/rxe_qp.c +7 -0
@@ -250,6 +250,7 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,if (err) {vfree (qp->sq.queue->buf);kfree (qp->sq.queue); + qp->sq.queue =NULL ;return err; }
@@ -303,6 +304,7 @@ static int rxe_qp_init_resp(struct rxe_dev *rxe, struct rxe_qp *qp,if (err) {vfree (qp->rq.queue->buf);kfree (qp->rq.queue); + qp->rq.queue =NULL ;return err; } }
@@ -363,6 +365,11 @@ int rxe_qp_from_init(struct rxe_dev *rxe, struct rxe_qp *qp, struct rxe_pd *pd, err2:rxe_queue_cleanup (qp->sq.queue); err1: + qp->pd =NULL ; + qp->rcq =NULL ; + qp->scq =NULL ; + qp->srq =NULL ; +if (srq)rxe_drop_ref (srq);rxe_drop_ref (scq);
drivers/leds/leds-lp5523.c +1 -1
@@ -320,7 +320,7 @@ static int lp5523_init_program_engine(struct lp55xx_chip *chip)usleep_range (3000 ,6000 ); ret =lp55xx_read (chip,LP5523_REG_STATUS , &status);if (ret) -return ret; + goto out; status &=LP5523_ENG_STATUS_MASK ;if (status !=LP5523_ENG_STATUS_MASK ) {
drivers/md/dm-snap.c +1 -0
@@ -1286,6 +1286,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv)if (!s->store->chunk_size) { ti->error ="Chunk size not set" ; + r = -EINVAL ; goto bad_read_metadata; }
drivers/media/platform/rcar_drif.c +0 -1
@@ -912,7 +912,6 @@ static int rcar_drif_g_fmt_sdr_cap(struct file *file, void *priv, {struct rcar_drif_sdr *sdr =video_drvdata (file); -memset (f->fmt.sdr.reserved,0 ,sizeof (f->fmt.sdr.reserved)); f->fmt.sdr.pixelformat = sdr->fmt->pixelformat; f->fmt.sdr.buffersize = sdr->fmt->buffersize;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +2 -1
@@ -1049,7 +1049,7 @@ int qlcnic_do_lb_test(struct qlcnic_adapter *adapter, u8 mode)for (i =0 ; i <QLCNIC_NUM_ILB_PKT ; i++) { skb =netdev_alloc_skb (adapter->netdev,QLCNIC_ILB_PKT_SIZE );if (!skb) -break ; + goto error;qlcnic_create_loopback_buff (skb->data, adapter->mac_addr);skb_put (skb,QLCNIC_ILB_PKT_SIZE ); adapter->ahw->diag_cnt =0 ;
@@ -1073,6 +1073,7 @@ int qlcnic_do_lb_test(struct qlcnic_adapter *adapter, u8 mode) cnt++; }if (cnt != i) { +error:dev_err (&adapter->pdev->dev,"LB Test: failed, TX[%d], RX[%d]\n" , i, cnt);if (mode !=QLCNIC_ILB_MODE )
drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c +4 -4
@@ -39,7 +39,7 @@ struct sunxi_priv_data {static int sun7i_gmac_init (struct platform_device *pdev,void *priv) {struct sunxi_priv_data *gmac = priv; -int ret; +int ret =0 ;if (gmac->regulator) { ret =regulator_enable (gmac->regulator);
@@ -60,11 +60,11 @@ static int sun7i_gmac_init(struct platform_device *pdev, void *priv) }else {clk_set_rate (gmac->tx_clk,SUN7I_GMAC_MII_RATE ); ret =clk_prepare (gmac->tx_clk); -if (ret) -return ret; +if (ret && gmac->regulator) +regulator_disable (gmac->regulator); } -return 0 ; +return ret; }static void sun7i_gmac_exit (struct platform_device *pdev,void *priv)
drivers/net/ethernet/sun/niu.c +20 -12
@@ -8145,10 +8145,10 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)"VPD_SCAN: Reading in property [%s] len[%d]\n" , namebuf, prop_len);for (i =0 ; i < prop_len; i++) { - err =niu_pci_eeprom_read (np, off + i); -if (err >=0 ) - *prop_buf = err; - ++prop_buf; + err =niu_pci_eeprom_read (np, off + i); +if (err <0 ) +return err; + *prop_buf++ = err; } }
@@ -8159,14 +8159,14 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end) }/* ESPC_PIO_EN_ENABLE must be set */ -static void niu_pci_vpd_fetch (struct niu *np,u32 start) +static int niu_pci_vpd_fetch (struct niu *np,u32 start) {u32 offset;int err; err =niu_pci_eeprom_read16_swp (np, start +1 );if (err <0 ) -return ; +return err; offset = err +3 ;
@@ -8175,12 +8175,14 @@ static void niu_pci_vpd_fetch(struct niu *np, u32 start)u32 end; err =niu_pci_eeprom_read (np, here); +if (err <0 ) +return err;if (err !=0x90 ) -return ; +return -EINVAL ; err =niu_pci_eeprom_read16_swp (np, here +1 );if (err <0 ) -return ; +return err; here = start + offset +3 ; end = start + offset + err;
@@ -8188,9 +8190,12 @@ static void niu_pci_vpd_fetch(struct niu *np, u32 start) offset += err; err =niu_pci_vpd_scan_props (np, here, end); -if (err <0 || err ==1 ) -return ; +if (err <0 ) +return err; +if (err ==1 ) +return -EINVAL ; } +return 0 ; }/* ESPC_PIO_EN_ENABLE must be set */
@@ -9281,8 +9286,11 @@ static int niu_get_invariants(struct niu *np) offset =niu_pci_vpd_offset (np);netif_printk (np, probe,KERN_DEBUG , np->dev,"%s() VPD offset [%08x]\n" , __func__, offset); -if (offset) -niu_pci_vpd_fetch (np, offset); +if (offset) { + err =niu_pci_vpd_fetch (np, offset); +if (err <0 ) +return err; + }nw64 (ESPC_PIO_EN ,0 );if (np->flags &NIU_FLAGS_VPD_VALID ) {
drivers/net/wireless/realtek/rtlwifi/base.c +9 -10
@@ -457,9 +457,14 @@ static void _rtl_init_mac80211(struct ieee80211_hw *hw) } } -static void _rtl_init_deferred_work (struct ieee80211_hw *hw) +static int _rtl_init_deferred_work (struct ieee80211_hw *hw) {struct rtl_priv *rtlpriv =rtl_priv (hw); +struct workqueue_struct *wq; + + wq =alloc_workqueue ("%s" ,0 ,0 , rtlpriv->cfg->name); +if (!wq) +return -ENOMEM ;/* <1> timer */ timer_setup(&rtlpriv->works.watchdog_timer,
@@ -468,11 +473,7 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw) rtl_easy_concurrent_retrytimer_callback, 0);/* <2> work queue */ rtlpriv->works.hw = hw; - rtlpriv->works.rtl_wq =alloc_workqueue ("%s" ,0 ,0 , rtlpriv->cfg->name); -if (unlikely (!rtlpriv->works.rtl_wq)) { -pr_err ("Failed to allocate work queue\n" ); -return ; - } + rtlpriv->works.rtl_wq = wq;INIT_DELAYED_WORK (&rtlpriv->works.watchdog_wq, (void *)rtl_watchdog_wq_callback);
@@ -486,7 +487,7 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw) (void *)rtl_fwevt_wq_callback);INIT_DELAYED_WORK (&rtlpriv->works.c2hcmd_wq, (void *)rtl_c2hcmd_wq_callback); - +return 0 ; }void rtl_deinit_deferred_work (struct ieee80211_hw *hw,bool ips_wq)
@@ -586,9 +587,7 @@ int rtl_init_core(struct ieee80211_hw *hw) rtlmac->link_state =MAC80211_NOLINK ;/* <6> init deferred work */ -_rtl_init_deferred_work (hw); - -return 0 ; +return _rtl_init_deferred_work (hw); }EXPORT_SYMBOL_GPL (rtl_init_core);
drivers/nvme/target/io-cmd-file.c +5 -3
@@ -38,9 +38,11 @@ int nvmet_file_ns_enable(struct nvmet_ns *ns) ns->file =filp_open (ns->device_path, flags,0 );if (IS_ERR (ns->file)) { -pr_err ("failed to open file %s: (%ld)\n" , - ns->device_path,PTR_ERR (ns->file)); -return PTR_ERR (ns->file); + ret =PTR_ERR (ns->file); +pr_err ("failed to open file %s: (%d)\n" , + ns->device_path, ret); + ns->file =NULL ; +return ret; } ret = vfs_getattr(&ns->file->f_path,
drivers/platform/x86/dell-smbios-wmi.c +2 -1
@@ -274,7 +274,8 @@ int init_dell_smbios_wmi(void)void exit_dell_smbios_wmi (void ) { -wmi_driver_unregister (&dell_smbios_wmi_driver); +if (wmi_supported) +wmi_driver_unregister (&dell_smbios_wmi_driver); }MODULE_ALIAS ("wmi:" DELL_WMI_SMBIOS_GUID );
drivers/rapidio/rio_cm.c +8 -9
@@ -2136,6 +2136,14 @@ static int riocm_add_mport(struct device *dev,return -ENODEV ; } + cm->rx_wq =create_workqueue (DRV_NAME "/rxq" ); +if (!cm->rx_wq) { +rio_release_inb_mbox (mport, cmbox); +rio_release_outb_mbox (mport, cmbox); +kfree (cm); +return -ENOMEM ; + } +/* * Allocate and register inbound messaging buffers to be ready * to receive channel and system management requests
@@ -2146,15 +2154,6 @@ static int riocm_add_mport(struct device *dev, cm->rx_slots =RIOCM_RX_RING_SIZE ;mutex_init (&cm->rx_lock);riocm_rx_fill (cm,RIOCM_RX_RING_SIZE ); - cm->rx_wq =create_workqueue (DRV_NAME "/rxq" ); -if (!cm->rx_wq) { -riocm_error ("failed to allocate IBMBOX_%d on %s" , - cmbox, mport->name); -rio_release_outb_mbox (mport, cmbox); -kfree (cm); -return -ENOMEM ; - } -INIT_WORK (&cm->rx_work, rio_ibmsg_handler); cm->tx_slot =0 ;
drivers/scsi/qla2xxx/qla_nx.c +2 -1
@@ -1107,7 +1107,8 @@ qla82xx_write_flash_dword(struct qla_hw_data *ha, uint32_t flashaddr,return ret; } -if (qla82xx_flash_set_write_enable (ha)) + ret =qla82xx_flash_set_write_enable (ha); +if (ret <0 ) goto done_write;qla82xx_wr_32 (ha,QLA82XX_ROMUSB_ROM_WDATA , data);
drivers/scsi/ufs/ufs-hisi.c +9 -6
@@ -543,21 +543,24 @@ static int ufs_hisi_init_common(struct ufs_hba *hba) host->hba = hba;ufshcd_set_variant (hba, host); - host->rst =devm_reset_control_get (dev,"rst" ); + host->rst =devm_reset_control_get (dev,"rst" );if (IS_ERR (host->rst)) {dev_err (dev,"%s: failed to get reset control\n" , __func__); -return PTR_ERR (host->rst); + err =PTR_ERR (host->rst); + goto error; }ufs_hisi_set_pm_lvl (hba); err =ufs_hisi_get_resource (host); -if (err) { -ufshcd_set_variant (hba,NULL ); -return err; - } +if (err) + goto error;return 0 ; + +error: +ufshcd_set_variant (hba,NULL ); +return err; }static int ufs_hi3660_init (struct ufs_hba *hba)
drivers/tty/serial/mvebu-uart.c +0 -3
@@ -807,9 +807,6 @@ static int mvebu_uart_probe(struct platform_device *pdev)return -EINVAL ; } -if (!match) -return -ENODEV ; -/* Assume that all UART ports have a DT alias or none has */ id =of_alias_get_id (pdev->dev.of_node,"serial" );if (!pdev->dev.of_node || id <0 )
drivers/tty/vt/vt.c +1 -1
@@ -1169,7 +1169,7 @@ static inline int resize_screen(struct vc_data *vc, int width, int height,/* Resizes the resolution of the display adapater */ int err =0 ; -if (vc->vc_mode !=KD_GRAPHICS && vc->vc_sw->con_resize) +if (vc->vc_sw->con_resize) err = vc->vc_sw->con_resize (vc, width, height, user);return err;
drivers/tty/vt/vt_ioctl.c +3 -3
@@ -895,17 +895,17 @@ int vt_ioctl(struct tty_struct *tty,if (vcp) {int ret;int save_scan_lines = vcp->vc_scan_lines; -int save_font_height = vcp->vc_font.height; +int save_cell_height = vcp->vc_cell_height;if (v.v_vlin) vcp->vc_scan_lines = v.v_vlin;if (v.v_clin) - vcp->vc_font.height = v.v_clin; + vcp->vc_cell_height = v.v_clin; vcp->vc_resize_user =1 ; ret =vc_resize (vcp, v.v_cols, v.v_rows);if (ret) { vcp->vc_scan_lines = save_scan_lines; - vcp->vc_font.height = save_font_height; + vcp->vc_cell_height = save_cell_height;console_unlock ();return ret; }
drivers/video/console/vgacon.c +32 -24
119 lines not on this page · raw message
drivers/video/fbdev/core/fbcon.c +1 -1
@@ -2025,7 +2025,7 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width,return -EINVAL ;DPRINTK ("resize now %ix%i\n" , var.xres, var.yres); -if (con_is_visible (vc)) { +if (con_is_visible (vc) && vc->vc_mode ==KD_TEXT ) { var.activate =FB_ACTIVATE_NOW |FB_ACTIVATE_FORCE ;fb_set_var (info, &var);
drivers/video/fbdev/hgafb.c +12 -9
@@ -286,7 +286,7 @@ static int hga_card_detect(void) hga_vram =ioremap (0xb0000 , hga_vram_len);if (!hga_vram) - goto error; +return -ENOMEM ;if (request_region (0x3b0 ,12 ,"hgafb" )) release_io_ports =1 ;
@@ -346,13 +346,18 @@ static int hga_card_detect(void) hga_type_name ="Hercules" ;break ; } -return 1 ; +return 0 ; error:if (release_io_ports)release_region (0x3b0 ,12 );if (release_io_port)release_region (0x3bf ,1 ); -return 0 ; + +iounmap (hga_vram); + +pr_err ("hgafb: HGA card not detected.\n" ); + +return -EINVAL ; }/**
@@ -550,13 +555,11 @@ static struct fb_ops hgafb_ops = {static int hgafb_probe (struct platform_device *pdev) {struct fb_info *info; +int ret; -if (!hga_card_detect ()) { -printk (KERN_INFO "hgafb: HGA card not detected.\n" ); -if (hga_vram) -iounmap (hga_vram); -return -EINVAL ; - } + ret =hga_card_detect (); +if (ret) +return ret;printk (KERN_INFO "hgafb: %s with %ldK of memory detected.\n" , hga_type_name, hga_vram_len/1024 );
drivers/video/fbdev/imsttfb.c +0 -5
@@ -1516,11 +1516,6 @@ static int imsttfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) info->fix.smem_start = addr; info->screen_base = (__u8 *)ioremap (addr, par->ramdac ==IBM ?0x400000 :0x800000 ); -if (!info->screen_base) { -release_mem_region (addr, size); -framebuffer_release (info); -return -ENOMEM ; - } info->fix.mmio_start = addr +0x800000 ; par->dc_regs =ioremap (addr +0x800000 ,0x1000 ); par->cmap_regs_phys = addr +0x840000 ;
drivers/xen/xen-pciback/xenbus.c +17 -5
@@ -358,7 +358,8 @@ static int xen_pcibk_publish_pci_root(struct xen_pcibk_device *pdev,return err; } -static int xen_pcibk_reconfigure (struct xen_pcibk_device *pdev) +static int xen_pcibk_reconfigure (struct xen_pcibk_device *pdev, +enum xenbus_state state) {int err =0 ;int num_devs;
@@ -372,9 +373,7 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev)dev_dbg (&pdev->xdev->dev,"Reconfiguring device ...\n" );mutex_lock (&pdev->dev_lock); -/* Make sure we only reconfigure once */ -if (xenbus_read_driver_state (pdev->xdev->nodename) != - XenbusStateReconfiguring) +if (xenbus_read_driver_state (pdev->xdev->nodename) != state) goto out; err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
@@ -499,6 +498,10 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev) } } +if (state != XenbusStateReconfiguring) +/* Make sure we only reconfigure once. */ + goto out; + err =xenbus_switch_state (pdev->xdev, XenbusStateReconfigured);if (err) { xenbus_dev_fatal(pdev->xdev, err,
@@ -524,7 +527,7 @@ static void xen_pcibk_frontend_changed(struct xenbus_device *xdev,break ;case XenbusStateReconfiguring: -xen_pcibk_reconfigure (pdev); +xen_pcibk_reconfigure (pdev, XenbusStateReconfiguring);break ;case XenbusStateConnected:
@@ -663,6 +666,15 @@ static void xen_pcibk_be_watch(struct xenbus_watch *watch,xen_pcibk_setup_backend (pdev);break ; +case XenbusStateInitialised: +/* +* We typically move to Initialised when the first device was +* added. Hence subsequent devices getting added may need +* reconfiguring. +*/ +xen_pcibk_reconfigure (pdev, XenbusStateInitialised); +break ; +default :break ; }
fs/cifs/smb2ops.c +2 -0
@@ -1174,6 +1174,8 @@ smb2_copychunk_range(const unsigned int xid,cpu_to_le32 (min_t (u32, len, tcon->max_bytes_chunk));/* Request server copy to target from src identified by key */ +kfree (retbuf); + retbuf =NULL ; rc = SMB2_ioctl(xid, tcon, trgtfile->fid.persistent_fid, trgtfile->fid.volatile_fid, FSCTL_SRV_COPYCHUNK_WRITE, true /* is_fsctl */, (char *)pcchunk,
fs/ecryptfs/crypto.c +2 -4
@@ -325,10 +325,8 @@ static int crypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat,struct extent_crypt_result ecr;int rc =0 ; -if (!crypt_stat || !crypt_stat->tfm - || !(crypt_stat->flags &ECRYPTFS_STRUCT_INITIALIZED )) -return -EINVAL ; - +BUG_ON (!crypt_stat || !crypt_stat->tfm + || !(crypt_stat->flags &ECRYPTFS_STRUCT_INITIALIZED ));if (unlikely (ecryptfs_verbosity >0 )) {ecryptfs_printk (KERN_DEBUG ,"Key size [%zd]; key:\n" , crypt_stat->key_size);
include/linux/console_struct.h +1 -0
@@ -62,6 +62,7 @@ struct vc_data {unsigned int vc_rows;unsigned int vc_size_row;/* Bytes per row */ unsigned int vc_scan_lines;/* # of scan lines */ +unsigned int vc_cell_height;/* CRTC character cell height */ unsigned long vc_origin;/* [!] Start of real screen */ unsigned long vc_scr_end;/* [!] End of real screen */ unsigned long vc_visible_origin;/* [!] Top of visible window */
kernel/locking/mutex-debug.c +2 -2
@@ -57,7 +57,7 @@ void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter, task->blocked_on = waiter; } -void mutex_remove_waiter (struct mutex *lock,struct mutex_waiter *waiter, +void debug_mutex_remove_waiter (struct mutex *lock,struct mutex_waiter *waiter,struct task_struct *task) {DEBUG_LOCKS_WARN_ON (list_empty (&waiter->list));
@@ -65,7 +65,7 @@ void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,DEBUG_LOCKS_WARN_ON (task->blocked_on != waiter); task->blocked_on =NULL ; -list_del_init (&waiter->list); +INIT_LIST_HEAD (&waiter->list); waiter->task =NULL ; }
kernel/locking/mutex-debug.h +1 -1
@@ -22,7 +22,7 @@ extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);extern void debug_mutex_add_waiter (struct mutex *lock,struct mutex_waiter *waiter,struct task_struct *task); -extern void mutex_remove_waiter (struct mutex *lock,struct mutex_waiter *waiter, +extern void debug_mutex_remove_waiter (struct mutex *lock,struct mutex_waiter *waiter,struct task_struct *task);extern void debug_mutex_unlock (struct mutex *lock); extern void debug_mutex_init(struct mutex *lock, const char *name,
kernel/locking/mutex.c +13 -5
@@ -177,7 +177,7 @@ static inline bool __mutex_waiter_is_first(struct mutex *lock, struct mutex_wait* Add @waiter to a given location in the lock wait_list and set the * FLAG_WAITERS flag if it's the first waiter. */ -static void __sched +static void __mutex_add_waiter (struct mutex *lock,struct mutex_waiter *waiter,struct list_head *list) {
@@ -188,6 +188,16 @@ __mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,__mutex_set_flag (lock,MUTEX_FLAG_WAITERS ); } +static void +__mutex_remove_waiter (struct mutex *lock,struct mutex_waiter *waiter) +{ +list_del (&waiter->list); +if (likely (list_empty (&lock->wait_list))) +__mutex_clear_flag (lock,MUTEX_FLAGS ); + +debug_mutex_remove_waiter (lock, waiter, current); +} +/* * Give up ownership to a specific task, when @task = NULL, this is equivalent * to a regular unlock. Sets PICKUP on a handoff, clears HANDOF, preserves
@@ -1040,9 +1050,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,__ww_mutex_check_waiters (lock, ww_ctx); } -mutex_remove_waiter (lock, &waiter, current); -if (likely (list_empty (&lock->wait_list))) -__mutex_clear_flag (lock,MUTEX_FLAGS ); +__mutex_remove_waiter (lock, &waiter);debug_mutex_free_waiter (&waiter);
@@ -1059,7 +1067,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, err:__set_current_state (TASK_RUNNING ); -mutex_remove_waiter (lock, &waiter, current); +__mutex_remove_waiter (lock, &waiter); err_early_kill:spin_unlock (&lock->wait_lock);debug_mutex_free_waiter (&waiter);
kernel/locking/mutex.h +1 -3
@@ -10,12 +10,10 @@* !CONFIG_DEBUG_MUTEXES case. Most of them are NOPs: */ -#define mutex_remove_waiter (lock, waiter, task) \ - __list_del((waiter)->list.prev, (waiter)->list.next) -#define debug_mutex_wake_waiter (lock, waiter) do { } while (0)#define debug_mutex_free_waiter (waiter) do { } while (0)#define debug_mutex_add_waiter (lock, waiter, ti) do { } while (0) +#define debug_mutex_remove_waiter (lock, waiter, ti) do { } while (0)#define debug_mutex_unlock (lock) do { } while (0)#define debug_mutex_init (lock, name, key) do { } while (0)
kernel/ptrace.c +17 -1
@@ -163,6 +163,21 @@ void __ptrace_unlink(struct task_struct *child)spin_unlock (&child->sighand->siglock); } +static bool looks_like_a_spurious_pid (struct task_struct *task) +{ +if (task->exit_code != ((PTRACE_EVENT_EXEC <<8 ) |SIGTRAP )) +return false; + +if (task_pid_vnr (task) == task->ptrace_message) +return false; +/* +* The tracee changed its pid but the PTRACE_EVENT_EXEC event +* was not wait()'ed, most probably debugger targets the old +* leader which was destroyed in de_thread(). +*/ +return true; +} +/* Ensure that nothing can wake it up, even SIGKILL */ static bool ptrace_freeze_traced (struct task_struct *task) {
@@ -173,7 +188,8 @@ static bool ptrace_freeze_traced(struct task_struct *task)return ret;spin_lock_irq (&task->sighand->siglock); -if (task_is_traced (task) && !__fatal_signal_pending (task)) { +if (task_is_traced (task) && !looks_like_a_spurious_pid (task) && + !__fatal_signal_pending (task)) { task->state = __TASK_TRACED; ret = true; }
net/bluetooth/smp.c +9 -0
@@ -2703,6 +2703,15 @@ static int smp_cmd_public_key(struct l2cap_conn *conn, struct sk_buff *skb)if (skb->len <sizeof (*key))return SMP_INVALID_PARAMS ; +/* Check if remote and local public keys are the same and debug key is +* not in use. +*/ +if (!test_bit (SMP_FLAG_DEBUG_KEY , &smp->flags) && + !crypto_memneq (key, smp->local_pk,64 )) { +bt_dev_err (hdev,"Remote and local public keys are identical" ); +return SMP_UNSPECIFIED ; + } +memcpy (smp->remote_pk, key,64 );if (test_bit (SMP_FLAG_REMOTE_OOB , &smp->flags)) {
sound/firewire/Kconfig +2 -2
@@ -37,7 +37,7 @@ config SND_OXFW * Mackie(Loud) Onyx 1640i (former model) * Mackie(Loud) Onyx Satellite * Mackie(Loud) Tapco Link.Firewire - * Mackie(Loud) d.2 pro/d.4 pro + * Mackie(Loud) d.4 pro * Mackie(Loud) U.420/U.420d * TASCAM FireOne * Stanton Controllers & Systems 1 Deck/Mixer
@@ -83,7 +83,7 @@ config SND_BEBOB * PreSonus FIREBOX/FIREPOD/FP10/Inspire1394 * BridgeCo RDAudio1/Audio5 * Mackie Onyx 1220/1620/1640 (FireWire I/O Card) - * Mackie d.2 (FireWire Option) + * Mackie d.2 (FireWire Option) and d.2 Pro * Stanton FinalScratch 2 (ScratchAmp) * Tascam IF-FW/DM * Behringer XENIX UFX 1204/1604
sound/firewire/bebob/bebob.c +1 -1
@@ -414,7 +414,7 @@ static const struct ieee1394_device_id bebob_id_table[] = {SND_BEBOB_DEV_ENTRY (VEN_BRIDGECO ,0x00010049 , &spec_normal),/* Mackie, Onyx 1220/1620/1640 (Firewire I/O Card) */ SND_BEBOB_DEV_ENTRY (VEN_MACKIE2 ,0x00010065 , &spec_normal), -/* Mackie, d.2 (Firewire Option) */ +// Mackie, d.2 (Firewire option card) and d.2 Pro (the card is built-in). SND_BEBOB_DEV_ENTRY (VEN_MACKIE1 ,0x00010067 , &spec_normal),/* Stanton, ScratchAmp */ SND_BEBOB_DEV_ENTRY(VEN_STANTON, 0x00000001, &spec_normal),
sound/firewire/dice/dice-alesis.c +1 -1
@@ -16,7 +16,7 @@ alesis_io14_tx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT] = {static const unsigned int alesis_io26_tx_pcm_chs[MAX_STREAMS ][SND_DICE_RATE_MODE_COUNT ] = { {10 ,10 ,4 },/* Tx0 = Analog + S/PDIF. */ - {16 ,8 ,0 },/* Tx1 = ADAT1 + ADAT2. */ + {16 ,4 ,0 },/* Tx1 = ADAT1 + ADAT2 (available at low rate). */ };int snd_dice_detect_alesis_formats (struct snd_dice *dice)
sound/firewire/dice/dice-tcelectronic.c +2 -2
@@ -38,8 +38,8 @@ static const struct dice_tc_spec konnekt_24d = { };static const struct dice_tc_spec konnekt_live = { - .tx_pcm_chs = {{16 ,16 ,16 }, {0 ,0 ,0 } }, - .rx_pcm_chs = {{16 ,16 ,16 }, {0 ,0 ,0 } }, + .tx_pcm_chs = {{16 ,16 ,6 }, {0 ,0 ,0 } }, + .rx_pcm_chs = {{16 ,16 ,6 }, {0 ,0 ,0 } }, .has_midi = true, };
sound/firewire/oxfw/oxfw.c +0 -1
@@ -400,7 +400,6 @@ static const struct ieee1394_device_id oxfw_id_table[] = {* Onyx-i series (former models): 0x081216 * Mackie Onyx Satellite: 0x00200f * Tapco LINK.firewire 4x6: 0x000460 -* d.2 pro: Unknown * d.4 pro: Unknown * U.420: Unknown * U.420d: Unknown
sound/isa/sb/sb8.c +0 -4
@@ -111,10 +111,6 @@ static int snd_sb8_probe(struct device *pdev, unsigned int dev)/* block the 0x388 port to avoid PnP conflicts */ acard->fm_res =request_region (0x388 ,4 ,"SoundBlaster FM" ); -if (!acard->fm_res) { - err = -EBUSY ; - goto _err; - } if (port[dev] != SNDRV_AUTO_PORT) { if ((err = snd_sbdsp_create(card, port[dev], irq[dev],
sound/pci/hda/patch_realtek.c +19 -1
@@ -388,7 +388,6 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)case 0x10ec0282 :case 0x10ec0283 :case 0x10ec0286 : -case 0x10ec0287 :case 0x10ec0288 :case 0x10ec0285 :case 0x10ec0298 :
@@ -399,6 +398,10 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)case 0x10ec0275 :alc_update_coef_idx (codec,0xe ,0 ,1 <<0 );break ; +case 0x10ec0287 : +alc_update_coef_idx (codec,0x10 ,1 <<9 ,0 ); +alc_write_coef_idx (codec,0x8 ,0x4ab7 ); +break ;case 0x10ec0293 :alc_update_coef_idx (codec,0xa ,1 <<13 ,0 );break ;
@@ -7166,12 +7169,19 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x1558 ,0x50b8 ,"Clevo NK50SZ" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x50d5 ,"Clevo NP50D5" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x50f0 ,"Clevo NH50A[CDF]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x50f2 ,"Clevo NH50E[PR]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x50f3 ,"Clevo NH58DPQ" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x50f5 ,"Clevo NH55EPY" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x50f6 ,"Clevo NH55DPQ" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x5101 ,"Clevo S510WU" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x5157 ,"Clevo W517GU1" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x51a1 ,"Clevo NS50MU" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x70a1 ,"Clevo NB70T[HJK]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x70b3 ,"Clevo NK70SB" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x70f2 ,"Clevo NH79EPY" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x70f3 ,"Clevo NH77DPQ" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x70f4 ,"Clevo NH77EPY" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x70f6 ,"Clevo NH77DPQ-Y" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x8228 ,"Clevo NR40BU" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x8520 ,"Clevo NH50D[CD]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), SND_PCI_QUIRK(0x1558, 0x8521, "Clevo NH77D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE),
@@ -7189,9 +7199,17 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x1558 ,0x8a51 ,"Clevo NH70RCQ-Y" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x8d50 ,"Clevo NH55RCQ-M" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x951d ,"Clevo N950T[CDF]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0x9600 ,"Clevo N960K[PR]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x961d ,"Clevo N960S[CDF]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0x971d ,"Clevo N970T[CDF]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x1558 ,0xa500 ,"Clevo NL53RU" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xa600 ,"Clevo NL5XNU" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xb018 ,"Clevo NP50D[BE]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xb019 ,"Clevo NH77D[BE]Q" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xb022 ,"Clevo NH77D[DC][QW]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xc018 ,"Clevo NP50D[BE]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xc019 ,"Clevo NH77D[BE]Q" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ), +SND_PCI_QUIRK (0x1558 ,0xc022 ,"Clevo NH77[DC][QW]" ,ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE ),SND_PCI_QUIRK (0x17aa ,0x1036 ,"Lenovo P520" ,ALC233_FIXUP_LENOVO_MULTI_CODECS ),SND_PCI_QUIRK (0x17aa ,0x1048 ,"ThinkCentre Station" ,ALC283_FIXUP_HEADSET_MIC ), SND_PCI_QUIRK(0x17aa, 0x20f2, "Thinkpad SL410/510", ALC269_FIXUP_SKU_IGNORE),
sound/usb/line6/driver.c +4 -0
@@ -705,6 +705,10 @@ static int line6_init_cap_control(struct usb_line6 *line6) line6->buffer_message =kmalloc (LINE6_MIDI_MESSAGE_MAXLEN ,GFP_KERNEL );if (!line6->buffer_message)return -ENOMEM ; + + ret =line6_init_midi (line6); +if (ret <0 ) +return ret; }else { ret =line6_hwdep_init (line6);if (ret <0 )
sound/usb/line6/pod.c +0 -5
@@ -420,11 +420,6 @@ static int pod_init(struct usb_line6 *line6,if (err <0 )return err; -/* initialize MIDI subsystem: */ - err =line6_init_midi (line6); -if (err <0 ) -return err; -/* initialize PCM subsystem: */ err =line6_init_pcm (line6, &pod_pcm_properties);if (err <0 )
sound/usb/line6/variax.c +0 -6
@@ -217,7 +217,6 @@ static int variax_init(struct usb_line6 *line6, const struct usb_device_id *id) {struct usb_line6_variax *variax = (struct usb_line6_variax *) line6; -int err; line6->process_message = line6_variax_process_message; line6->disconnect = line6_variax_disconnect;
@@ -233,11 +232,6 @@ static int variax_init(struct usb_line6 *line6,if (variax->buffer_activate ==NULL )return -ENOMEM ; -/* initialize MIDI subsystem: */ - err =line6_init_midi (&variax->line6); -if (err <0 ) -return err; -/* initiate startup procedure: */ variax_startup1 (variax);return 0 ;
sound/usb/midi.c +4 -0
@@ -1890,8 +1890,12 @@ static int snd_usbmidi_get_ms_info(struct snd_usb_midi *umidi, ms_ep =find_usb_ms_endpoint_descriptor (hostep);if (!ms_ep)continue ; +if (ms_ep->bLength <=sizeof (*ms_ep)) +continue ;if (ms_ep->bNumEmbMIDIJack >0x10 )continue ; +if (ms_ep->bLength <sizeof (*ms_ep) + ms_ep->bNumEmbMIDIJack) +continue ;if (usb_endpoint_dir_out (ep)) {if (endpoints[epidx].out_ep) {if (++epidx >=MIDI_MAX_ENDPOINTS ) {
Samuel Zou
Tested-by Hulk RobotQuoted 4 lines · Greg Kroah-Hartman
I'm announcing the release of the 4.19.192 kernel.
All users of the 4.19 kernel series must upgrade.
Quoted 9 lines
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitlinux-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=summarythanks,
greg k-h
Tested on arm64 and x86 for 4.19.192,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-4.19.y
Version: 4.19.192
Commit: 6b7b0056defc6eb5c87bbe4690ccda547b2891aa
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8855
passed: 8855
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8855
passed: 8855
failed: 0
timeout: 0
--------------------------------------------------------------------