This is a note to let you know that I've just added the patch titled
staging: bcm2835-audio: double free in init error path
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-testing branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will be merged to the staging-next branch sometime soon,
after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
>From 649496b603000135683ee76d7ea499456617bf17 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter(a)oracle.com>
Date: Mon, 17 Dec 2018 10:08:54 +0300
Subject: staging: bcm2835-audio: double free in init error path
We free instance here and in the caller. It should be only the caller
which handles it.
Fixes: d7ca3a71545b ("staging: bcm2835-audio: Operate non-atomic PCM ops")
Signed-off-by: Dan Carpenter <dan.carpenter(a)oracle.com>
Reviewed-by: Takashi Iwai <tiwai(a)suse.de>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 0db412fd7c55..c0debdbce26c 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -138,7 +138,6 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance,
dev_err(instance->dev,
"failed to open VCHI service connection (status=%d)\n",
status);
- kfree(instance);
return -EPERM;
}
--
2.20.1
From: Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
Old firmware versions don't support this command. Sending it
to any firmware before -41.ucode will crash the firmware.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201975
Fixes: 66e839030fd6 ("iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE")
CC: <stable(a)vger.kernel.org> #4.19+
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
Signed-off-by: Luca Coelho <luciano.coelho(a)intel.com>
---
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 2ba890445c35..1689bead1b4f 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -881,6 +881,15 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
int ret, i, j;
u16 cmd_wide_id = WIDE_ID(PHY_OPS_GROUP, GEO_TX_POWER_LIMIT);
+ /*
+ * This command is not supported on earlier firmware versions.
+ * Unfortunately, we don't have a TLV API flag to rely on, so
+ * rely on the major version which is in the first byte of
+ * ucode_ver.
+ */
+ if (IWL_UCODE_SERIAL(mvm->fw->ucode_ver) < 41)
+ return 0;
+
ret = iwl_mvm_sar_get_wgds_table(mvm);
if (ret < 0) {
IWL_DEBUG_RADIO(mvm,
--
2.19.2
This is a note to let you know that I've just added the patch titled
usb: roles: Add a description for the class to Kconfig
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-testing branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will be merged to the usb-next branch sometime soon,
after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
>From c3788cd9963eb2e77de3c24142fb7c67b61f1a26 Mon Sep 17 00:00:00 2001
From: Heikki Krogerus <heikki.krogerus(a)linux.intel.com>
Date: Wed, 12 Dec 2018 20:13:55 +0300
Subject: usb: roles: Add a description for the class to Kconfig
That makes the USB role switch support option visible and
selectable for the user. The class driver is also moved to
drivers/usb/roles/ directory.
This will fix an issue that we have with the Intel USB role
switch driver on systems that don't have USB Type-C connectors:
Intel USB role switch driver depends on the USB role switch
class as it should, but since there was no way for the user
to enable the USB role switch class, there was also no way
to select that driver. USB Type-C drivers select the USB
role switch class which makes the Intel USB role switch
driver available and therefore hides the problem.
So in practice Intel USB role switch driver was depending on
USB Type-C drivers.
Fixes: f6fb9ec02be1 ("usb: roles: Add Intel xHCI USB role switch driver")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Heikki Krogerus <heikki.krogerus(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/Kconfig | 4 ----
drivers/usb/common/Makefile | 1 -
drivers/usb/roles/Kconfig | 13 +++++++++++++
drivers/usb/roles/Makefile | 4 +++-
drivers/usb/{common/roles.c => roles/class.c} | 0
5 files changed, 16 insertions(+), 6 deletions(-)
rename drivers/usb/{common/roles.c => roles/class.c} (100%)
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 987fc5ba6321..70e6c956c23c 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -205,8 +205,4 @@ config USB_ULPI_BUS
To compile this driver as a module, choose M here: the module will
be called ulpi.
-config USB_ROLE_SWITCH
- tristate
- select USB_COMMON
-
endif # USB_SUPPORT
diff --git a/drivers/usb/common/Makefile b/drivers/usb/common/Makefile
index fb4d5ef4165c..0a7c45e85481 100644
--- a/drivers/usb/common/Makefile
+++ b/drivers/usb/common/Makefile
@@ -9,4 +9,3 @@ usb-common-$(CONFIG_USB_LED_TRIG) += led.o
obj-$(CONFIG_USB_OTG_FSM) += usb-otg-fsm.o
obj-$(CONFIG_USB_ULPI_BUS) += ulpi.o
-obj-$(CONFIG_USB_ROLE_SWITCH) += roles.o
diff --git a/drivers/usb/roles/Kconfig b/drivers/usb/roles/Kconfig
index f5a5e6f79f1b..e4194ac94510 100644
--- a/drivers/usb/roles/Kconfig
+++ b/drivers/usb/roles/Kconfig
@@ -1,3 +1,16 @@
+config USB_ROLE_SWITCH
+ tristate "USB Role Switch Support"
+ help
+ USB Role Switch is a device that can select the USB role - host or
+ device - for a USB port (connector). In most cases dual-role capable
+ USB controller will also represent the switch, but on some platforms
+ multiplexer/demultiplexer switch is used to route the data lines on
+ the USB connector between separate USB host and device controllers.
+
+ Say Y here if your USB connectors support both device and host roles.
+ To compile the driver as module, choose M here: the module will be
+ called roles.ko.
+
if USB_ROLE_SWITCH
config USB_ROLES_INTEL_XHCI
diff --git a/drivers/usb/roles/Makefile b/drivers/usb/roles/Makefile
index e44b179ba275..c02873206fc1 100644
--- a/drivers/usb/roles/Makefile
+++ b/drivers/usb/roles/Makefile
@@ -1 +1,3 @@
-obj-$(CONFIG_USB_ROLES_INTEL_XHCI) += intel-xhci-usb-role-switch.o
+obj-$(CONFIG_USB_ROLE_SWITCH) += roles.o
+roles-y := class.o
+obj-$(CONFIG_USB_ROLES_INTEL_XHCI) += intel-xhci-usb-role-switch.o
diff --git a/drivers/usb/common/roles.c b/drivers/usb/roles/class.c
similarity index 100%
rename from drivers/usb/common/roles.c
rename to drivers/usb/roles/class.c
--
2.20.1
Hi,
I'm not sure what the connection is exactly but commit dcd51305cd41
("ALSA: hda/realtek - fix the pop noise on headphone for lenovo
laptops") broke the mute button LED on my Lenovo X1 Extreme laptop.
I don't have any more info frankly and don't even know where to start
debugging. Other LEDs work fine. This mute button LED never had any
entry in /sys/class/leds, I'm not sure how it's handled.
Let me know if you need more debugging on my part.
Best regards,
Bartosz Golaszewski
After expanding i_mmap_rwsem use for better shared pmd and page fault/
truncation synchronization, remove code that is no longer necessary.
Cc: <stable(a)vger.kernel.org>
Fixes: ebed4bfc8da8 ("hugetlb: fix absurd HugePages_Rsvd")
Signed-off-by: Mike Kravetz <mike.kravetz(a)oracle.com>
---
fs/hugetlbfs/inode.c | 46 +++++++++++++++-----------------------------
mm/hugetlb.c | 21 ++++++++++----------
2 files changed, 25 insertions(+), 42 deletions(-)
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 3244147fc42b..a9c00c6ef80d 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -383,17 +383,16 @@ hugetlb_vmdelete_list(struct rb_root_cached *root, pgoff_t start, pgoff_t end)
* truncation is indicated by end of range being LLONG_MAX
* In this case, we first scan the range and release found pages.
* After releasing pages, hugetlb_unreserve_pages cleans up region/reserv
- * maps and global counts. Page faults can not race with truncation
- * in this routine. hugetlb_no_page() prevents page faults in the
- * truncated range. It checks i_size before allocation, and again after
- * with the page table lock for the page held. The same lock must be
- * acquired to unmap a page.
+ * maps and global counts.
* hole punch is indicated if end is not LLONG_MAX
* In the hole punch case we scan the range and release found pages.
* Only when releasing a page is the associated region/reserv map
* deleted. The region/reserv map for ranges without associated
- * pages are not modified. Page faults can race with hole punch.
- * This is indicated if we find a mapped page.
+ * pages are not modified.
+ *
+ * Callers of this routine must hold the i_mmap_rwsem in write mode to prevent
+ * races with page faults.
+ *
* Note: If the passed end of range value is beyond the end of file, but
* not LLONG_MAX this routine still performs a hole punch operation.
*/
@@ -423,32 +422,14 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
for (i = 0; i < pagevec_count(&pvec); ++i) {
struct page *page = pvec.pages[i];
- u32 hash;
index = page->index;
- hash = hugetlb_fault_mutex_hash(h, current->mm,
- &pseudo_vma,
- mapping, index, 0);
- mutex_lock(&hugetlb_fault_mutex_table[hash]);
-
/*
- * If page is mapped, it was faulted in after being
- * unmapped in caller. Unmap (again) now after taking
- * the fault mutex. The mutex will prevent faults
- * until we finish removing the page.
- *
- * This race can only happen in the hole punch case.
- * Getting here in a truncate operation is a bug.
+ * A mapped page is impossible as callers should unmap
+ * all references before calling. And, i_mmap_rwsem
+ * prevents the creation of additional mappings.
*/
- if (unlikely(page_mapped(page))) {
- BUG_ON(truncate_op);
-
- i_mmap_lock_write(mapping);
- hugetlb_vmdelete_list(&mapping->i_mmap,
- index * pages_per_huge_page(h),
- (index + 1) * pages_per_huge_page(h));
- i_mmap_unlock_write(mapping);
- }
+ VM_BUG_ON(page_mapped(page));
lock_page(page);
/*
@@ -470,7 +451,6 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
}
unlock_page(page);
- mutex_unlock(&hugetlb_fault_mutex_table[hash]);
}
huge_pagevec_release(&pvec);
cond_resched();
@@ -624,7 +604,11 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
/* addr is the offset within the file (zero based) */
addr = index * hpage_size;
- /* mutex taken here, fault path and hole punch */
+ /*
+ * fault mutex taken here, protects against fault path
+ * and hole punch. inode_lock previously taken protects
+ * against truncation.
+ */
hash = hugetlb_fault_mutex_hash(h, mm, &pseudo_vma, mapping,
index, addr);
mutex_lock(&hugetlb_fault_mutex_table[hash]);
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 362601b69c56..89e1a253a40b 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -3760,16 +3760,16 @@ static vm_fault_t hugetlb_no_page(struct mm_struct *mm,
}
/*
- * Use page lock to guard against racing truncation
- * before we get page_table_lock.
+ * We can not race with truncation due to holding i_mmap_rwsem.
+ * Check once here for faults beyond end of file.
*/
+ size = i_size_read(mapping->host) >> huge_page_shift(h);
+ if (idx >= size)
+ goto out;
+
retry:
page = find_lock_page(mapping, idx);
if (!page) {
- size = i_size_read(mapping->host) >> huge_page_shift(h);
- if (idx >= size)
- goto out;
-
/*
* Check for page in userfault range
*/
@@ -3859,9 +3859,6 @@ static vm_fault_t hugetlb_no_page(struct mm_struct *mm,
}
ptl = huge_pte_lock(h, mm, ptep);
- size = i_size_read(mapping->host) >> huge_page_shift(h);
- if (idx >= size)
- goto backout;
ret = 0;
if (!huge_pte_none(huge_ptep_get(ptep)))
@@ -3964,8 +3961,10 @@ vm_fault_t hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
/*
* Acquire i_mmap_rwsem before calling huge_pte_alloc and hold
- * until finished with ptep. This prevents huge_pmd_unshare from
- * being called elsewhere and making the ptep no longer valid.
+ * until finished with ptep. This serves two purposes:
+ * 1) It prevents huge_pmd_unshare from being called elsewhere
+ * and making the ptep no longer valid.
+ * 2) It synchronizes us with file truncation.
*
* ptep could have already be assigned via huge_pte_offset. That
* is OK, as huge_pte_alloc will return the same value unless
--
2.17.2
This is the start of the stable review cycle for the 4.9.146 release.
There are 51 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sun Dec 16 11:56:52 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.146-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.9.146-rc1
Guenter Roeck <linux(a)roeck-us.net>
staging: speakup: Replace strncpy with memcpy
Namhyung Kim <namhyung(a)kernel.org>
pstore: Convert console write to use ->write_buf
Pan Bian <bianpan2016(a)163.com>
ocfs2: fix potential use after free
Qian Cai <cai(a)gmx.us>
debugobjects: avoid recursive calls with kmemleak
Pan Bian <bianpan2016(a)163.com>
hfsplus: do not free node before using
Pan Bian <bianpan2016(a)163.com>
hfs: do not free node before using
Larry Chen <lchen(a)suse.com>
ocfs2: fix deadlock caused by ocfs2_defrag_extent()
Colin Ian King <colin.king(a)canonical.com>
fscache, cachefiles: remove redundant variable 'cache'
NeilBrown <neilb(a)suse.com>
fscache: fix race between enablement and dropping of object
Srikanth Boddepalli <boddepalli.srikanth(a)gmail.com>
xen: xlate_mmu: add missing header to fix 'W=1' warning
Y.C. Chen <yc_chen(a)aspeedtech.com>
drm/ast: fixed reading monitor EDID not stable issue
Pan Bian <bianpan2016(a)163.com>
net: hisilicon: remove unexpected free_netdev
Josh Elsasser <jelsasser(a)appneta.com>
ixgbe: recognize 1000BaseLX SFP modules as 1Gbps
Yunjian Wang <wangyunjian(a)huawei.com>
igb: fix uninitialized variables
Kiran Kumar Modukuri <kiran.modukuri(a)gmail.com>
cachefiles: Fix page leak in cachefiles_read_backing_file while vmscan is active
Lorenzo Bianconi <lorenzo.bianconi(a)redhat.com>
net: thunderx: fix NULL pointer dereference in nic_remove
Yi Wang <wang.yi59(a)zte.com.cn>
x86/kvm/vmx: fix old-style function declaration
Yi Wang <wang.yi59(a)zte.com.cn>
KVM: x86: fix empty-body warnings
Aaro Koskinen <aaro.koskinen(a)iki.fi>
USB: omap_udc: fix USB gadget functionality on Palm Tungsten E
Aaro Koskinen <aaro.koskinen(a)iki.fi>
USB: omap_udc: fix omap_udc_start() on 15xx machines
Aaro Koskinen <aaro.koskinen(a)iki.fi>
USB: omap_udc: fix crashes on probe error and module removal
Aaro Koskinen <aaro.koskinen(a)iki.fi>
USB: omap_udc: use devm_request_irq()
Xin Long <lucien.xin(a)gmail.com>
ipvs: call ip_vs_dst_notifier earlier than ipv6_dev_notf
Martynas Pumputis <m(a)lambda.lt>
bpf: fix check of allowed specifiers in bpf_trace_printk
Pan Bian <bianpan2016(a)163.com>
exportfs: do not read dentry after free
Peter Ujfalusi <peter.ujfalusi(a)ti.com>
ASoC: omap-dmic: Add pm_qos handling to avoid overruns with CPU_IDLE
Peter Ujfalusi <peter.ujfalusi(a)ti.com>
ASoC: omap-mcpdm: Add pm_qos handling to avoid under/overruns with CPU_IDLE
Majd Dibbiny <majd(a)mellanox.com>
RDMA/mlx5: Fix fence type for IB_WR_LOCAL_INV WR
Robbie Ko <robbieko(a)synology.com>
Btrfs: send, fix infinite loop due to directory rename dependencies
Artem Savkov <asavkov(a)redhat.com>
objtool: Fix segfault in .cold detection with -ffunction-sections
Artem Savkov <asavkov(a)redhat.com>
objtool: Fix double-free in .cold detection error path
Huacai Chen <chenhc(a)lemote.com>
hwmon: (w83795) temp4_type has writable permission
Tzung-Bi Shih <tzungbi(a)google.com>
ASoC: dapm: Recalculate audio map forcely when card instantiated
Peter Ujfalusi <peter.ujfalusi(a)ti.com>
ASoC: omap-abe-twl6040: Fix missing audio card caused by deferred probing
Nicolin Chen <nicoleotsuka(a)gmail.com>
hwmon: (ina2xx) Fix current value calculation
Thomas Richter <tmricht(a)linux.ibm.com>
s390/cpum_cf: Reject request for sampling in event initialization
Florian Westphal <fw(a)strlen.de>
selftests: add script to stress-test nft packet path vs. control plane
YueHaibing <yuehaibing(a)huawei.com>
sysv: return 'err' instead of 0 in __sysv_write_inode
Janusz Krzysztofik <jmkrzyszt(a)gmail.com>
ARM: OMAP1: ams-delta: Fix possible use of uninitialized field
Adam Ford <aford173(a)gmail.com>
ARM: dts: logicpd-somlv: Fix interrupt on mmc3_dat1
Nathan Chancellor <natechancellor(a)gmail.com>
ARM: OMAP2+: prm44xx: Fix section annotation on omap44xx_prm_enable_io_wakeup
Stefano Brivio <sbrivio(a)redhat.com>
neighbour: Avoid writing before skb->head in neigh_hh_output()
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
tun: forbid iface creation with rtnl ops
Yuchung Cheng <ycheng(a)google.com>
tcp: fix NULL ref in tail loss probe
Eric Dumazet <edumazet(a)google.com>
rtnetlink: ndo_dflt_fdb_dump() only work for ARPHRD_ETHER devices
Christoph Paasch <cpaasch(a)apple.com>
net: Prevent invalid access to skb->prev in __qdisc_drop_all
Heiner Kallweit <hkallweit1(a)gmail.com>
net: phy: don't allow __set_phy_supported to add unsupported modes
Tarick Bedeir <tarick(a)google.com>
net/mlx4_core: Correctly set PFC param if global pause is turned off.
Su Yanjun <suyj.fnst(a)cn.fujitsu.com>
net: 8139cp: fix a BUG triggered by changing mtu with network traffic
Stefano Brivio <sbrivio(a)redhat.com>
ipv6: Check available headroom in ip6_xmit() even without options
Jiri Wiesner <jwiesner(a)suse.com>
ipv4: ipv6: netfilter: Adjust the frag mem limit when truesize changes
-------------
Diffstat:
Makefile | 4 +-
arch/arm/boot/dts/logicpd-som-lv.dtsi | 2 +-
arch/arm/mach-omap1/board-ams-delta.c | 3 +
arch/arm/mach-omap2/prm44xx.c | 2 +-
arch/s390/kernel/perf_cpum_cf.c | 2 +
arch/x86/kvm/lapic.c | 2 +-
arch/x86/kvm/vmx.c | 8 +-
drivers/gpu/drm/ast/ast_mode.c | 36 +++++++--
drivers/hwmon/ina2xx.c | 2 +-
drivers/hwmon/w83795.c | 2 +-
drivers/infiniband/hw/mlx5/qp.c | 19 ++---
drivers/net/ethernet/cavium/thunder/nic_main.c | 3 +
drivers/net/ethernet/hisilicon/hip04_eth.c | 4 +-
drivers/net/ethernet/intel/igb/e1000_i210.c | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 4 +-
drivers/net/ethernet/realtek/8139cp.c | 5 ++
drivers/net/phy/phy_device.c | 19 ++---
drivers/net/tun.c | 6 +-
drivers/staging/speakup/kobjects.c | 4 +-
drivers/usb/gadget/udc/omap_udc.c | 87 ++++++++--------------
drivers/xen/xlate_mmu.c | 1 +
fs/btrfs/send.c | 11 ++-
fs/cachefiles/rdwr.c | 9 ++-
fs/exportfs/expfs.c | 2 +-
fs/fscache/object.c | 3 +
fs/hfs/btree.c | 3 +-
fs/hfsplus/btree.c | 3 +-
fs/ocfs2/export.c | 2 +-
fs/ocfs2/move_extents.c | 47 ++++++------
fs/pstore/platform.c | 4 +-
fs/sysv/inode.c | 2 +-
include/net/neighbour.h | 28 +++++--
kernel/trace/bpf_trace.c | 8 +-
lib/debugobjects.c | 3 +-
net/core/rtnetlink.c | 3 +
net/ipv4/ip_fragment.c | 7 ++
net/ipv4/tcp_output.c | 12 ++-
net/ipv6/ip6_output.c | 42 +++++------
net/ipv6/netfilter/nf_conntrack_reasm.c | 8 +-
net/ipv6/reassembly.c | 8 +-
net/netfilter/ipvs/ip_vs_ctl.c | 3 +
net/sched/sch_netem.c | 3 +
sound/soc/omap/omap-abe-twl6040.c | 67 ++++++++---------
sound/soc/omap/omap-dmic.c | 9 +++
sound/soc/omap/omap-mcpdm.c | 43 ++++++++++-
sound/soc/soc-core.c | 1 +
tools/objtool/elf.c | 19 ++++-
tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/netfilter/Makefile | 6 ++
tools/testing/selftests/netfilter/config | 2 +
.../selftests/netfilter/nft_trans_stress.sh | 78 +++++++++++++++++++
52 files changed, 439 insertions(+), 218 deletions(-)
Mr Gleixner,
I was upset when I compiled 4.14.87 found that SCHED_SMT had been
forced on. At the time, I just reported it to my blog, and posted a
question about it to a couple of forums, and stayed with an earlier
kernel.
However, when 4.14.88 came out, and still the same situation, alarm
bells went off, and I looked through the kernel changelog. Found it,
4.14.86:
"x86/Kconfig: Select SCHED_SMT if SMP enabled"
Then:
"CONFIG_SCHED_SMT is enabled by all distros, so there is not a real point to
have it configurable. ..."
...that is a lie. It would be correct to state that is true of the
distros you use, and presumably also for all of you guys who signed
off on it.
Puppy Linux is an example of a distro that has mostly not had
SCHED_SMT enabled. Ditto for most of the forks of Puppy. Two distros
that I currently maintain, Quirky and EasyOS (easyos.org) have SMP
enabled but not SCHED_SMT.
The difference between them is important, they should remain
independently settable. I am so surprised that all of you guys went
along with forcing it on.
For the record, my blog post:
http://bkhome.org/news/201812/kernel-41487-compiled.html
Regards,
Barry Kauler
Now MTD emulated by UBI volumn doesn't allocate wbuf_verify in
jffs2_ubivol_setup(), because UBI can do the verifcation itself,
so when CONFIG_JFFS2_FS_WBUF_VERIFY is enabled and a MTD device
emulated by UBI volumn is used, a Oops will occur as show in the
following trace:
general protection fault: 0000 [#1] SMP KASAN PTI
CPU: 6 PID: 404 Comm: kworker/6:1 Not tainted 4.19.0-rc8
Workqueue: events_long delayed_wbuf_sync
RIP: 0010:ubi_io_read+0x156/0x650
Call Trace:
ubi_eba_read_leb+0x57d/0xba0
ubi_leb_read+0xe5/0x1b0
gluebi_read+0x10c/0x1a0
mtd_read+0x112/0x340
jffs2_verify_write+0xef/0x440
__jffs2_flush_wbuf+0x3fa/0x3540
jffs2_flush_wbuf_gc+0x1b1/0x2e0
process_one_work+0x58b/0x11e0
worker_thread+0x8f/0xfe0
kthread+0x2ae/0x3a0
ret_from_fork+0x35/0x40
Fix the problem by checking the validity of wbuf_verify before
using it in jffs2_verify_write().
Cc: stable(a)vger.kernel.org
Fixes: 0029da3bf430 ("JFFS2: add UBI support")
Signed-off-by: Hou Tao <houtao1(a)huawei.com>
---
fs/jffs2/wbuf.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
index c6821a509481..3de45f4559d1 100644
--- a/fs/jffs2/wbuf.c
+++ b/fs/jffs2/wbuf.c
@@ -234,6 +234,13 @@ static int jffs2_verify_write(struct jffs2_sb_info *c, unsigned char *buf,
size_t retlen;
char *eccstr;
+ /*
+ * MTD emulated by UBI volume doesn't allocate wbuf_verify,
+ * because it can do the verification itself.
+ */
+ if (!c->wbuf_verify)
+ return 0;
+
ret = mtd_read(c->mtd, ofs, c->wbuf_pagesize, &retlen, c->wbuf_verify);
if (ret && ret != -EUCLEAN && ret != -EBADMSG) {
pr_warn("%s(): Read back of page at %08x failed: %d\n",
--
2.16.2.dirty
commit 1f82de10d6 ("PCI/x86: don't assume prefetchable ranges are
64bit") added probing of bridge support for 64 bit memory
each time bridge is re-enumerated.
Unfortunately this probing is destructive if any device behind
the bridge is in use at this time.
There's no real need to re-probe the bridge features as the
regiters in question never change - detect that using
the memory flag being set and skip the probing.
Avoiding repeated calls to pci_bridge_check_ranges might be even nicer
would be a bigger patch and probably not appropriate on stable.
Reported-by: xuyandong <xuyandong2(a)huawei.com>
Cc: stable(a)vger.kernel.org
Cc: Yinghai Lu <yinghai(a)kernel.org>
Cc: Jesse Barnes <jbarnes(a)virtuousgeek.org>
Signed-off-by: Michael S. Tsirkin <mst(a)redhat.com>
---
This issue has been reported on upstream Linux and Centos.
drivers/pci/setup-bus.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index ed960436df5e..7ab42f76579e 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -741,6 +741,13 @@ static void pci_bridge_check_ranges(struct pci_bus *bus)
struct resource *b_res;
b_res = &bridge->resource[PCI_BRIDGE_RESOURCES];
+
+ /* Don't re-check after this was called once already:
+ * important since bridge might be in use.
+ */
+ if (b_res[1].flags & IORESOURCE_MEM)
+ return;
+
b_res[1].flags |= IORESOURCE_MEM;
pci_read_config_word(bridge, PCI_IO_BASE, &io);
--
MST
According to my memo at hand and saved records, writing 0x00000001 to
SND_FF_REG_FETCH_PCM_FRAMES disables fetching PCM frames in corresponding
channel, however current implement uses reversed logic. This results in
muted volume in device side during playback.
This commit corrects the bug.
Cc: <stable(a)vger.kernel.org> # v4.12+
Fixes: 76fdb3a9e13a ('ALSA: fireface: add support for Fireface 400')
Signed-off-by: Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
---
sound/firewire/fireface/ff-protocol-ff400.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/firewire/fireface/ff-protocol-ff400.c b/sound/firewire/fireface/ff-protocol-ff400.c
index 8f34174ee813..fd257051d4a4 100644
--- a/sound/firewire/fireface/ff-protocol-ff400.c
+++ b/sound/firewire/fireface/ff-protocol-ff400.c
@@ -86,7 +86,7 @@ static int ff400_switch_fetching_mode(struct snd_ff *ff, bool enable)
if (reg == NULL)
return -ENOMEM;
- if (enable) {
+ if (!enable) {
/*
* Each quadlet is corresponding to data channels in a data
* blocks in reverse order. Precisely, quadlets for available
--
2.19.1