X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-small_fixes.patch;h=19cf3c8744f075a2d0774b4b99b385b962dd7c8b;hb=87367c2edc424e4001b75b6d75827baa855060c5;hp=0b54725165ea253e99e0d6a29d5b252cbb610f06;hpb=59e60efc6eb3bfba55674d3f3b9b4c7c4ae6c798;p=packages%2Fkernel.git diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch index 0b547251..19cf3c87 100644 --- a/kernel-small_fixes.patch +++ b/kernel-small_fixes.patch @@ -11,103 +11,6 @@ /* Some toolchains use a `_' prefix for all user symbols. */ -From: Stephen Hemminger - -Some BIOS's don't setup power management correctly (what else is -new) and don't allow use of PCI Express power control. Add a special -exception module parameter to allow working around this issue. -Based on slightly different patch by Knut Petersen. - -Reported-by: Arkadiusz Miskiewicz -Signed-off-by: Stephen Hemminger ---- -Patch against -net (ie. 3.3.0) - ---- a/drivers/net/ethernet/marvell/sky2.c 2012-01-10 10:56:56.855156017 -0800 -+++ b/drivers/net/ethernet/marvell/sky2.c 2012-03-21 08:25:52.400929532 -0700 -@@ -95,6 +95,10 @@ static int disable_msi = 0; - module_param(disable_msi, int, 0); - MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); - -+static int legacy_pme = 0; -+module_param(legacy_pme, int, 0); -+MODULE_PARM_DESC(legacy_pme, "Legacy power management"); -+ - static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = { - { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */ - { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */ -@@ -867,6 +871,13 @@ static void sky2_wol_init(struct sky2_po - /* Disable PiG firmware */ - sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF); - -+ /* Needed by some broken BIOSes, use PCI rather than PCI-e for WOL */ -+ if (legacy_pme) { -+ u32 reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); -+ reg1 |= PCI_Y2_PME_LEGACY; -+ sky2_pci_write32(hw, PCI_DEV_REG1, reg1); -+ } -+ - /* block receiver */ - sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET); - sky2_read32(hw, B0_CTST); - - -The RCU problem is likely to be a separate issue. It might even be a -result of the use-after-free problem with the elevator. - -At any rate, it's clear that the crash in the refcounting log you -posted occurred because scsi_setup_blk_pc_cmnd() called -scsi_prep_state_check(), which tried to dereference the NULL pointer. - -Would you like to try this patch to see if it fixes the problem? As I -said before, I'm not certain it's the best thing to do, but it worked -on my system. - -Alan Stern - - -Index: usb-3.0/drivers/scsi/scsi_lib.c -=================================================================== ---- usb-3.0.orig/drivers/scsi/scsi_lib.c -+++ usb-3.0/drivers/scsi/scsi_lib.c -@@ -1247,6 +1247,8 @@ int scsi_prep_fn(struct request_queue *q - struct scsi_device *sdev = q->queuedata; - int ret = BLKPREP_KILL; - -+ if (!sdev) -+ return ret; - if (req->cmd_type == REQ_TYPE_BLOCK_PC) - ret = scsi_setup_blk_pc_cmnd(sdev, req); - return scsi_prep_return(q, req, ret); -Index: usb-3.0/drivers/scsi/scsi_sysfs.c -=================================================================== ---- usb-3.0.orig/drivers/scsi/scsi_sysfs.c -+++ usb-3.0/drivers/scsi/scsi_sysfs.c -@@ -322,6 +322,8 @@ static void scsi_device_dev_release_user - kfree(evt); - } - -+ /* Freeing the queue signals to block that we're done */ -+ scsi_free_queue(sdev->request_queue); - blk_put_queue(sdev->request_queue); - /* NULL queue means the device can't be used */ - sdev->request_queue = NULL; -@@ -936,8 +938,6 @@ void __scsi_remove_device(struct scsi_de - /* cause the request function to reject all I/O requests */ - sdev->request_queue->queuedata = NULL; - -- /* Freeing the queue signals to block that we're done */ -- scsi_free_queue(sdev->request_queue); - put_device(dev); - } - - - --- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~ 2011-07-22 04:17:23.000000000 +0200 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh 2011-08-25 21:26:04.799150642 +0200 @@ -9,6 +9,12 @@ @@ -123,70 +26,50 @@ Please read the FAQ at http://www.tux.org/lkml/ exit fi done - - - - -From: Vasiliy Kulikov -Date: Fri, 23 Mar 2012 20:56:42 +0400 -Subject: [PATCH] proc: fix mount -t proc -o AAA - -proc_parse_options() inside of proc_mount() runs only once at the boot -time without any given options. So, following umount(2)+mount(2) ignore -mount options: proc_parse_options() is not called as ->s_root is already -initialized. To fix that parse mount options unconditionally. - -Signed-off-by: Vasiliy Kulikov -Reported-by: Arkadiusz Miśkiewicz ---- - fs/proc/root.c | 9 +++++---- - 1 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/fs/proc/root.c b/fs/proc/root.c -index 46a15d8..eed44bf 100644 ---- a/fs/proc/root.c -+++ b/fs/proc/root.c -@@ -115,12 +115,13 @@ static struct dentry *proc_mount(struct file_system_type *fs_type, - if (IS_ERR(sb)) - return ERR_CAST(sb); +--- a/Makefile 2016-11-10 20:41:43.646224629 +0100 ++++ b/Makefile 2016-11-10 20:40:35.640323501 +0100 +@@ -784,6 +774,9 @@ + # Prohibit date/time macros, which would make the build non-deterministic + KBUILD_CFLAGS += $(call cc-option,-Werror=date-time) -+ if (!proc_parse_options(options, ns)) { -+ deactivate_locked_super(sb); -+ return ERR_PTR(-EINVAL); -+ } ++# enforce correct pointer usage ++KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) + - if (!sb->s_root) { - sb->s_flags = flags; -- if (!proc_parse_options(options, ns)) { -- deactivate_locked_super(sb); -- return ERR_PTR(-EINVAL); -- } - err = proc_fill_super(sb); - if (err) { - deactivate_locked_super(sb); --- -1.7.0.4 - -diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c -index 7a0c800..ec5ebbb 100644 ---- a/drivers/net/ethernet/realtek/r8169.c -+++ b/drivers/net/ethernet/realtek/r8169.c -@@ -4103,6 +4103,14 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) - /* Get MAC address */ - for (i = 0; i < ETH_ALEN; i++) - dev->dev_addr[i] = RTL_R8(MAC0 + i); -+ -+ if (!is_valid_ether_addr(dev->dev_addr)) { -+ /* Report it and use a random ethernet address instead */ -+ netdev_err(dev, "Invalid MAC address: %pM\n", dev->dev_addr); -+ random_ether_addr(dev->dev_addr); -+ netdev_info(dev, "Using random MAC address: %pM\n", -+ dev->dev_addr); -+ } - memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); + # use the deterministic mode of AR if available + KBUILD_ARFLAGS := $(call ar-option,D) + +From 5d12f71723762a39435d054d02bbf5fb87c5cd14 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= +Date: Mon, 6 Feb 2017 14:45:15 +0100 +Subject: [PATCH] mac80211: Print text for disassociation reason +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When disassociation happens only numeric reason is printed +in ieee80211_rx_mgmt_disassoc(). Add text variant, too. + +Signed-off-by: Arkadiusz Miśkiewicz +--- + net/mac80211/mlme.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c +index 098ce9b179ee..fcf8d0aa66ec 100644 +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -2801,8 +2801,9 @@ static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata, + + reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code); + +- sdata_info(sdata, "disassociated from %pM (Reason: %u)\n", +- mgmt->sa, reason_code); ++ sdata_info(sdata, "disassociated from %pM (Reason: %u=%s)\n", ++ mgmt->sa, reason_code, ++ ieee80211_get_reason_code_string(reason_code)); + + ieee80211_set_disassoc(sdata, 0, 0, false, NULL); - SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops); -- -1.7.7.3 +2.11.0 - \ No newline at end of file