Merge branch 'master' into baytrail

This commit is contained in:
Adam Williamson 2014-11-22 08:26:24 -08:00
commit 87f9785b43
17 changed files with 5087 additions and 2050 deletions

View File

@ -0,0 +1,84 @@
From: Alan Wu <alan.c.wu@gmail.com>
Date: Mon, 3 Nov 2014 18:26:12 -0800
Subject: [PATCH] HID: add support for MS Surface Pro 3 Type Cover
Surface Pro 3 Type Cover that works with Ubuntu (and possibly Arch) from this thread. Both trackpad and keyboard work after compiling my own kernel.
http://ubuntuforums.org/showthread.php?t=2231207&page=2&s=44910e0c56047e4f93dfd9fea58121ef
Also includes Jarrad Whitaker's message which sources
http://winaero.com/blog/how-to-install-linux-on-surface-pro-3/
which he says is sourced from a Russian site
Signed-off-by: Alan Wu <alan.c.wu@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
drivers/hid/hid-core.c | 6 ++++++
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-microsoft.c | 2 ++
drivers/hid/usbhid/hid-quirks.c | 1 +
4 files changed, 10 insertions(+)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 3402033fa52a..3d3820ecaa49 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -702,6 +702,11 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
if (((parser->global.usage_page << 16) == HID_UP_SENSOR) &&
type == HID_COLLECTION_PHYSICAL)
hid->group = HID_GROUP_SENSOR_HUB;
+
+ if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
+ hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 &&
+ hid->group == HID_GROUP_MULTITOUCH)
+ hid->group = HID_GROUP_GENERIC;
}
static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)
@@ -1862,6 +1867,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K) },
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0) },
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_OFFICE_KB) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3) },
{ HID_USB_DEVICE(USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E) },
{ HID_USB_DEVICE(USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_TOUCH_SCREEN) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 7c863738e419..ab562f41c00c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -649,6 +649,7 @@
#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
+#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc
#define USB_VENDOR_ID_MOJO 0x8282
#define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
index 8ba17a946f2a..cacda43f6a6f 100644
--- a/drivers/hid/hid-microsoft.c
+++ b/drivers/hid/hid-microsoft.c
@@ -274,6 +274,8 @@ static const struct hid_device_id ms_devices[] = {
.driver_data = MS_NOGET },
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),
.driver_data = MS_DUPLICATE_USAGES },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
+ .driver_data = MS_HIDINPUT },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT),
.driver_data = MS_PRESENTER },
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 552671ee7c5d..41814fced1cc 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -78,6 +78,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS },
--
1.9.3

View File

@ -21,10 +21,10 @@ Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
create mode 100644 drivers/input/touchscreen/goodix.c
diff --git a/MAINTAINERS b/MAINTAINERS
index ea4d0058fd1b..b9fb1cdad014 100644
index c444907ccd69..766848ecf8f5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4140,6 +4140,12 @@ L: linux-media@vger.kernel.org
@@ -4154,6 +4154,12 @@ L: linux-media@vger.kernel.org
S: Maintained
F: drivers/media/usb/go7007/

View File

@ -1,67 +0,0 @@
From: Tejun Heo <tj@kernel.org>
Date: Mon, 27 Oct 2014 10:30:52 -0400
Subject: [PATCH] ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on
macbooks
From 44aecdabc85087e7c299d7a28e095e2b91894a51 Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@kernel.org>
Date: Mon, 27 Oct 2014 10:22:56 -0400
Samsung pci-e SSDs on macbooks failed miserably on NCQ commands, so
67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
disabled NCQ on them. It turns out that NCQ is fine as long as MSI is
not used, so let's turn off MSI and leave NCQ on.
Signed-off-by: Tejun Heo <tj@kernel.org>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=60731
Tested-by: <dorin@i51.org>
Tested-by: Imre Kaloz <kaloz@openwrt.org>
Cc: stable@vger.kernel.org
Fixes: 67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
---
drivers/ata/ahci.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 5f039f191067..ef4b647b3ed2 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -60,6 +60,7 @@ enum board_ids {
/* board IDs by feature in alphabetical order */
board_ahci,
board_ahci_ign_iferr,
+ board_ahci_nomsi,
board_ahci_noncq,
board_ahci_nosntf,
board_ahci_yes_fbs,
@@ -121,6 +122,13 @@ static const struct ata_port_info ahci_port_info[] = {
.udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops,
},
+ [board_ahci_nomsi] = {
+ AHCI_HFLAGS (AHCI_HFLAG_NO_MSI),
+ .flags = AHCI_FLAG_COMMON,
+ .pio_mask = ATA_PIO4,
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &ahci_ops,
+ },
[board_ahci_noncq] = {
AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ),
.flags = AHCI_FLAG_COMMON,
@@ -475,10 +483,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */
/*
- * Samsung SSDs found on some macbooks. NCQ times out.
- * https://bugzilla.kernel.org/show_bug.cgi?id=60731
+ * Samsung SSDs found on some macbooks. NCQ times out if MSI is
+ * enabled. https://bugzilla.kernel.org/show_bug.cgi?id=60731
*/
- { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_noncq },
+ { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_nomsi },
/* Enmotus */
{ PCI_DEVICE(0x1c44, 0x8000), board_ahci },
--
1.9.3

View File

@ -71,7 +71,6 @@ CONFIG_POWER_RESET_VERSATILE=y
# CONFIG_ARM_CHARLCD is not set
# Power/Thermal/Cpufreq
CONFIG_GENERIC_CPUFREQ_CPU0=m
# CONFIG_ARM_DT_BL_CPUFREQ is not set
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set

View File

@ -134,5 +134,9 @@ CONFIG_AMD_XGBE_PHY=m
# CONFIG_IMX_THERMAL is not set
# temporary 2014-10-21
# still? 2014-11-11
# CONFIG_BPF_JIT is not set
CONFIG_DMI=y
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=y

View File

@ -371,6 +371,10 @@ CONFIG_REGMAP_SPMI=m
CONFIG_REGMAP_MMIO=m
CONFIG_REGMAP_IRQ=y
# Power management
CONFIG_PM_OPP=y
CONFIG_ARM_CPU_SUSPEND=y
# usb
CONFIG_USB_OHCI_HCD_PLATFORM=m
CONFIG_USB_EHCI_HCD_PLATFORM=m

View File

@ -706,8 +706,6 @@ CONFIG_FIREWIRE_NOSY=m
#
CONFIG_NET=y
CONFIG_NET_DMA=y
CONFIG_NETLINK_MMAP=y
CONFIG_NETLINK_DIAG=m
@ -1417,7 +1415,7 @@ CONFIG_IXGBE_HWMON=y
CONFIG_I40E=m
# CONFIG_I40E_VXLAN is not set
# CONFIG_I40E_DCB is not set
# CONFIG_I40EVF is not set
CONFIG_I40EVF=m
CONFIG_FM10K=m
# CONFIG_FM10K_VXLAN is not set
@ -2762,13 +2760,8 @@ CONFIG_KXCJK1013=m
# CONFIG_AD7816 is not set
# CONFIG_AD7192 is not set
# CONFIG_AD7280 is not set
# CONFIG_AD5930 is not set
# CONFIG_AD9832 is not set
# CONFIG_AD9834 is not set
# CONFIG_AD9850 is not set
# CONFIG_AD9852 is not set
# CONFIG_AD9910 is not set
# CONFIG_AD9951 is not set
# CONFIG_ADIS16060 is not set
# CONFIG_ADE7753 is not set
# CONFIG_ADE7754 is not set
@ -3544,7 +3537,7 @@ CONFIG_SND_FIREWIRE_SPEAKERS=m
CONFIG_SND_ISIGHT=m
CONFIG_SND_SCS1X=m
CONFIG_SND_DICE=m
# CONFIG_SND_FIREWORKS is not set
CONFIG_SND_FIREWORKS=m
# CONFIG_SND_BEBOB is not set
#
@ -3884,7 +3877,6 @@ CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
# CONFIG_USB_SERIAL_WISHBONE is not set
# CONFIG_USB_SERIAL_ZTE is not set
CONFIG_USB_SERIAL_MOS7840=m
# CONFIG_USB_SERIAL_MXUPORT is not set
CONFIG_USB_SERIAL_NAVMAN=m
@ -5033,9 +5025,6 @@ CONFIG_RTL8192E=m
# CONFIG_INPUT_GPIO is not set
# CONFIG_VIDEO_CX25821 is not set
# CONFIG_R8188EU is not set
# Larry Finger maintains (rhbz 1113422)
CONFIG_R8192EE=m
# CONFIG_R8821AE is not set
# CONFIG_RTL8192U is not set
CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162)
# CONFIG_8723AU_AP_MODE is not set
@ -5064,7 +5053,6 @@ CONFIG_ALTERA_STAPL=m
# CONFIG_DGNC is not set
# CONFIG_RTS5208 is not set
# CONFIG_GS_FPGABOOT is not set
# CONFIG_BT_NOKIA_H4P is not set
# CONFIG_UNISYSSPAR is not set
# CONFIG_MEDIA_TUNER_MSI001 is not set
# END OF STAGING
@ -5281,3 +5269,6 @@ CONFIG_FMC_CHARDEV=m
# CONFIG_SBSAUART_TTY is not set
# CONFIG_SERIAL_8250_FINTEK is not set
# set in x86-generic presently
# CONFIG_TOUCHSCREEN_GOODIX is not set

View File

@ -233,6 +233,7 @@ CONFIG_HOTPLUG_PCI_S390=y
# CONFIG_HID is not set
# CONFIG_MTD is not set
# CONFIG_SERIAL_8250 is not set
# CONFIG_PARPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set

View File

@ -78,7 +78,6 @@ CONFIG_X86_SPEEDSTEP_LIB=y
CONFIG_X86_LONGRUN=y
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
# e_powersaver is dangerous
# CONFIG_X86_E_POWERSAVER is not set

View File

@ -575,7 +575,6 @@ CONFIG_PINCTRL_BAYTRAIL=y
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_ACPI_INT3403_THERMAL=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
CONFIG_INT340X_THERMAL=m

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ Summary: The Linux kernel
# be 0.
%global released_kernel 0
%global aarch64patches 0
%global aarch64patches 1
# Sign modules on x86. Make sure the config files match this setting if more
# architectures are added.
@ -43,7 +43,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
%global baserelease 1
%global baserelease 3
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@ -68,7 +68,7 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
%define rcrev 4
%define rcrev 5
# The git snapshot level
%define gitrev 0
# Set rpm version accordingly
@ -603,22 +603,17 @@ Patch22000: weird-root-dentry-name-debug.patch
# Patch series from Hans for various backlight and platform driver fixes
Patch26002: samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
Patch26057: virtio_console-move-early-VQ-enablement.patch
Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
#rhbz 1111138
Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
#rhbz 1158204 1157157
Patch26063: x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
Patch26064: Input-add-driver-for-the-Goodix-touchpanel.patch
Patch26065: sched-Remove-lockdep-check-in-sched_move_task.patch
#rhbz 1161805
Patch26066: ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch
#rhbz 1135338
Patch26070: HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
Patch30000: kernel-arm64.patch
@ -1356,22 +1351,17 @@ ApplyPatch ath9k-rx-dma-stop-check.patch
# Patch series from Hans for various backlight and platform driver fixes
ApplyPatch samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
ApplyPatch virtio_console-move-early-VQ-enablement.patch
ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
#rhbz 1111138
ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
#rhbz 1158204 1157157
ApplyPatch x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
ApplyPatch Input-add-driver-for-the-Goodix-touchpanel.patch
ApplyPatch sched-Remove-lockdep-check-in-sched_move_task.patch
#rhbz 1161805
ApplyPatch ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch
#rhbz 1135338
ApplyPatch HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
%if 0%{?aarch64patches}
ApplyPatch kernel-arm64.patch
@ -2252,6 +2242,39 @@ fi
# ||----w |
# || ||
%changelog
* Fri Nov 21 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Move TPM drivers to main kernel package (rhbz 1164937)
* Wed Nov 19 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Disable SERIAL_8250 on s390x (rhbz 1158848)
* Mon Nov 17 2014 Kyle McMartin <kyle@fedoraproject.org> - 3.18.0-0.rc5.git0.2
- Re-merge kernel-arm64.patch
* Mon Nov 17 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc5.git0.1
- Linux v3.18-rc5
- Disable debugging options.
* Fri Nov 14 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Enable I40EVF driver (rhbz 1164029)
* Fri Nov 14 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc4.git2.1
- Linux v3.18-rc4-184-gb23dc5a7cc6e
* Thu Nov 13 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Add patch for MS Surface Pro 3 Type Cover (rhbz 1135338)
- CVE-2014-7843 aarch64: copying from /dev/zero causes local DoS (rhbz 1163744 1163745)
* Thu Nov 13 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc4.git1.1
- Linux v3.18-rc4-52-g04689e749b7e
- Reenable debugging options.
* Wed Nov 12 2014 Josh Boyer <jwboyer@fedoraproject.org>
- CVE-2014-7841 sctp: NULL ptr deref on malformed packet (rhbz 1163087 1163095)
* Tue Nov 11 2014 Kyle McMartin <kyle@fedoraproject.org> - 3.18.0-0.rc4.git0.2
- Re-enable kernel-arm64.patch, and fix up merge conflicts with 3.18-rc4
* Mon Nov 10 2014 Josh Boyer <jwboyer@fedoraproject.org>
- Fix Samsung pci-e SSD handling on some macbooks (rhbz 1161805)

View File

@ -164,10 +164,6 @@ ksdazzle-sir.ko
ma600-sir.ko
mcp2120-sir.ko
toim3232-sir.ko
tpm_atmel.ko
tpm_infineon.ko
tpm_nsc.ko
tpm_tis.ko
slip.ko
nilfs2.ko
batman-adv.ko

83
scripts/check-configs.pl Normal file
View File

@ -0,0 +1,83 @@
# By Paul Bolle October 2014.
#
# Contributed to the public domain by its author.
use 5.016;
use warnings;
use autodie;
use File::Find;
my @Kconfigs;
my $Kconfigre = qr/Kconfig.*/;
my $configre = qr/^\s*(menu)?config\s+(?<config>(\w+))$/;
my $CONFIG_re = qr/\bCONFIG_(?<CONFIG_>(\w+))/;
sub match {
push( @Kconfigs, $File::Find::name ) if ($_ =~ $Kconfigre);
}
sub parse_kconfig {
my ($path) = @_;
my @ret;
open( my $kconfig, "<", $path );
my $slurp = do { local $/ = undef; <$kconfig> };
close( $kconfig );
my @lines = split ( /\n/, $slurp );
foreach my $line (@lines) {
if ($line =~ /$configre/) {
push( @ret, $+{config} );
}
}
@ret;
}
sub parse_shipped {
my ($path) = @_;
my @ret;
open( my $shipped, "<", $path );
my $slurp = do { local $/ = undef; <$shipped> };
close( $shipped );
my @lines = split ( /\n/, $slurp );
my $i = 1;
foreach my $line (@lines) {
if ($line =~ /$CONFIG_re/) {
push( @ret, [$i, $+{CONFIG_}] );
}
$i++;
}
@ret;
}
exit main ( @ARGV );
sub main {
my %configs;
find( \&match, @_ );
foreach my $Kconfig (@Kconfigs) {
my (@tmp) = parse_kconfig( $Kconfig );
foreach my $config ( @tmp ) {
$configs{ $config }++;
}
}
foreach my $shipped (glob("config-*")) {
my (@tmp) = parse_shipped( $shipped );
foreach my $ref ( @tmp ) {
say( STDERR "$shipped:$ref->[0]: No Kconfig symbol matches 'CONFIG_$ref->[1]'" )
unless (grep( /$ref->[1]/, keys( %configs )));
}
}
0;
}

View File

@ -1,3 +1,3 @@
fb30d0f29214d75cddd2faa94f73d5cf linux-3.17.tar.xz
159e969cbc27201d8e2fa0f609dc722f perf-man-3.17.tar.gz
587ecff959eff7392c4977c513580f44 patch-3.18-rc4.xz
852725a732b5e21318324296f1940dfd patch-3.18-rc5.xz

View File

@ -1,46 +0,0 @@
From: Cornelia Huck <cornelia.huck@de.ibm.com>
Date: Mon, 20 Oct 2014 15:58:49 +0200
Subject: [PATCH] virtio_console: move early VQ enablement
Commit f5866db6 (virtio_console: enable VQs early) tried to make
sure that DRIVER_OK was set when virtio_console started using its
virtqueues. Doing this in add_port(), however, means that we try
to set DRIVER_OK again when when a port is dynamically added after
the probe function is done.
Let's move virtio_device_ready() to the probe function just before
trying to use the virtqueues instead. This is fine as nothing can
fail inbetween.
Reported-by: Thomas Graf <tgraf@suug.ch>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
drivers/char/virtio_console.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index bfa640023e64..cf7a561fad7c 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1449,8 +1449,6 @@ static int add_port(struct ports_device *portdev, u32 id)
spin_lock_init(&port->outvq_lock);
init_waitqueue_head(&port->waitqueue);
- virtio_device_ready(portdev->vdev);
-
/* Fill the in_vq with buffers so the host can send us data. */
nr_added_bufs = fill_queue(port->in_vq, &port->inbuf_lock);
if (!nr_added_bufs) {
@@ -2026,6 +2024,8 @@ static int virtcons_probe(struct virtio_device *vdev)
spin_lock_init(&portdev->ports_lock);
INIT_LIST_HEAD(&portdev->ports);
+ virtio_device_ready(portdev->vdev);
+
if (multiport) {
unsigned int nr_added_bufs;
--
1.9.3

View File

@ -1,55 +0,0 @@
From: Borislav Petkov <bp@alien8.de>
Date: Sat, 1 Nov 2014 11:01:00 +0100
Subject: [PATCH] x86, microcode, AMD: Fix early ucode loading on 32-bit
Hi guys,
please queue this for the next batch to Linus.
Thanks.
---
arch/x86/kernel/cpu/microcode/amd_early.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/cpu/microcode/amd_early.c b/arch/x86/kernel/cpu/microcode/amd_early.c
index 7aa1acc79789..8b75f7050129 100644
--- a/arch/x86/kernel/cpu/microcode/amd_early.c
+++ b/arch/x86/kernel/cpu/microcode/amd_early.c
@@ -348,6 +348,7 @@ int __init save_microcode_in_initrd_amd(void)
{
unsigned long cont;
enum ucode_state ret;
+ u8 *cont_va;
u32 eax;
if (!container)
@@ -355,13 +356,15 @@ int __init save_microcode_in_initrd_amd(void)
#ifdef CONFIG_X86_32
get_bsp_sig();
- cont = (unsigned long)container;
+ cont = (unsigned long)container;
+ cont_va = __va(container);
#else
/*
* We need the physical address of the container for both bitness since
* boot_params.hdr.ramdisk_image is a physical address.
*/
- cont = __pa(container);
+ cont = __pa(container);
+ cont_va = container;
#endif
/*
@@ -372,6 +375,8 @@ int __init save_microcode_in_initrd_amd(void)
if (relocated_ramdisk)
container = (u8 *)(__va(relocated_ramdisk) +
(cont - boot_params.hdr.ramdisk_image));
+ else
+ container = cont_va;
if (ucode_new_rev)
pr_info("microcode: updated early to new patch_level=0x%08x\n",
--
1.9.3