update to 2.6.35.12
This commit is contained in:
parent
21c6036496
commit
3472dfdd75
|
@ -1,263 +0,0 @@
|
|||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/bluetooth/btusb.c kernel-2.6.35.fc14.new/drivers/bluetooth/btusb.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/bluetooth/btusb.c 2010-11-12 12:35:49.390791080 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/bluetooth/btusb.c 2010-11-12 12:48:22.090611963 +0100
|
||||
@@ -68,6 +68,9 @@ static struct usb_device_id btusb_table[
|
||||
/* Apple MacBookPro6,2 */
|
||||
{ USB_DEVICE(0x05ac, 0x8218) },
|
||||
|
||||
+ /* Apple MacBookAir3,1, MacBookAir3,2 */
|
||||
+ { USB_DEVICE(0x05ac, 0x821b) },
|
||||
+
|
||||
/* AVM BlueFRITZ! USB v2.0 */
|
||||
{ USB_DEVICE(0x057c, 0x3800) },
|
||||
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/hid/hid-apple.c kernel-2.6.35.fc14.new/drivers/hid/hid-apple.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/hid/hid-apple.c 2010-11-12 12:35:49.153805968 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/hid/hid-apple.c 2010-11-12 12:48:35.689816431 +0100
|
||||
@@ -59,6 +59,27 @@ struct apple_key_translation {
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
+static const struct apple_key_translation macbookair_fn_keys[] = {
|
||||
+ { KEY_BACKSPACE, KEY_DELETE },
|
||||
+ { KEY_ENTER, KEY_INSERT },
|
||||
+ { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F4, KEY_DASHBOARD, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F6, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F7, KEY_PLAYPAUSE, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F8, KEY_NEXTSONG, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F9, KEY_MUTE, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F10, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F11, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
|
||||
+ { KEY_F12, KEY_EJECTCD, APPLE_FLAG_FKEY },
|
||||
+ { KEY_UP, KEY_PAGEUP },
|
||||
+ { KEY_DOWN, KEY_PAGEDOWN },
|
||||
+ { KEY_LEFT, KEY_HOME },
|
||||
+ { KEY_RIGHT, KEY_END },
|
||||
+ { }
|
||||
+};
|
||||
+
|
||||
static const struct apple_key_translation apple_fn_keys[] = {
|
||||
{ KEY_BACKSPACE, KEY_DELETE },
|
||||
{ KEY_ENTER, KEY_INSERT },
|
||||
@@ -157,10 +178,14 @@ static int hidinput_apple_event(struct h
|
||||
if (fnmode) {
|
||||
int do_translate;
|
||||
|
||||
- trans = apple_find_translation((hid->product < 0x21d ||
|
||||
+ if(hid->product >= 0x023f && hid->product <= 0x0244 ) {
|
||||
+ trans = apple_find_translation(macbookair_fn_keys, usage->code);
|
||||
+ } else {
|
||||
+ trans = apple_find_translation((hid->product < 0x21d ||
|
||||
hid->product >= 0x300) ?
|
||||
powerbook_fn_keys : apple_fn_keys,
|
||||
usage->code);
|
||||
+ }
|
||||
if (trans) {
|
||||
if (test_bit(usage->code, asc->pressed_fn))
|
||||
do_translate = 1;
|
||||
@@ -435,6 +460,18 @@ static const struct hid_device_id apple_
|
||||
.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
|
||||
.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI),
|
||||
+ .driver_data = APPLE_HAS_FN },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI),
|
||||
+ .driver_data = APPLE_HAS_FN },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),
|
||||
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
|
||||
.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/hid/hid-core.c kernel-2.6.35.fc14.new/drivers/hid/hid-core.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/hid/hid-core.c 2010-11-12 12:35:49.153805968 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/hid/hid-core.c 2010-11-12 12:48:35.690816373 +0100
|
||||
@@ -1273,6 +1273,12 @@ static const struct hid_device_id hid_bl
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
|
||||
@@ -1738,6 +1744,12 @@ static const struct hid_device_id hid_mo
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
|
||||
{ }
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/hid/hid-ids.h kernel-2.6.35.fc14.new/drivers/hid/hid-ids.h
|
||||
--- kernel-2.6.35.fc14.orig/drivers/hid/hid-ids.h 2010-11-12 12:35:49.153805968 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/hid/hid-ids.h 2010-11-12 12:48:35.691816314 +0100
|
||||
@@ -93,6 +93,12 @@
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI 0x023f
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ISO 0x0240
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_JIS 0x0241
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244
|
||||
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239
|
||||
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a
|
||||
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/hwmon/applesmc.c kernel-2.6.35.fc14.new/drivers/hwmon/applesmc.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/hwmon/applesmc.c 2010-11-12 12:35:49.618776754 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/hwmon/applesmc.c 2010-11-13 12:25:05.810472278 +0100
|
||||
@@ -162,6 +162,10 @@ static const char *temperature_sensors_s
|
||||
/* Set 22: MacBook Pro 7,1 */
|
||||
{ "TB0T", "TB1T", "TB2T", "TC0D", "TC0P", "TN0D", "TN0P", "TN0S",
|
||||
"TN1D", "TN1F", "TN1G", "TN1S", "Th1H", "Ts0P", "Ts0S", NULL },
|
||||
+/* Set 23: MacBook Air 3,1 */
|
||||
+ { "TB0T", "TB1T", "TB2T", "TC0D", "TC0E", "TC0P", "TC1E", "TCZ3",
|
||||
+ "TCZ4", "TCZ5", "TG0E", "TG1E", "TG2E", "TGZ3", "TGZ4", "TGZ5",
|
||||
+ "TH0F", "TH0O", "TM0P" },
|
||||
};
|
||||
|
||||
/* List of keys used to read/write fan speeds */
|
||||
@@ -1524,11 +1528,21 @@ static __initdata struct dmi_match_data
|
||||
{ .accelerometer = 1, .light = 1, .temperature_set = 21 },
|
||||
/* MacBook Pro 7,1: accelerometer, backlight and temperature set 22 */
|
||||
{ .accelerometer = 1, .light = 1, .temperature_set = 22 },
|
||||
+/* MacBook Air 3,1: accelerometer, backlight and temperature set 15 */
|
||||
+ { .accelerometer = 0, .light = 0, .temperature_set = 23 },
|
||||
};
|
||||
|
||||
/* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1".
|
||||
* So we need to put "Apple MacBook Pro" before "Apple MacBook". */
|
||||
static __initdata struct dmi_system_id applesmc_whitelist[] = {
|
||||
+ { applesmc_dmi_match, "Apple MacBook Air 3", {
|
||||
+ DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,2") },
|
||||
+ &applesmc_dmi_data[23]},
|
||||
+ { applesmc_dmi_match, "Apple MacBook Air 3", {
|
||||
+ DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,1") },
|
||||
+ &applesmc_dmi_data[23]},
|
||||
{ applesmc_dmi_match, "Apple MacBook Air 2", {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir2") },
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/input/mouse/bcm5974.c kernel-2.6.35.fc14.new/drivers/input/mouse/bcm5974.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/input/mouse/bcm5974.c 2010-11-12 12:35:50.004752503 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/input/mouse/bcm5974.c 2010-11-12 12:48:13.140136374 +0100
|
||||
@@ -55,6 +55,14 @@
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
|
||||
#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
|
||||
+/* MacbookAir3,2 (unibody), aka wellspring5 */
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI 0x023f
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ISO 0x0240
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_JIS 0x0241
|
||||
+/* MacbookAir3,1 (unibody), aka wellspring4 */
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243
|
||||
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244
|
||||
|
||||
#define BCM5974_DEVICE(prod) { \
|
||||
.match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \
|
||||
@@ -80,6 +88,14 @@ static const struct usb_device_id bcm597
|
||||
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI),
|
||||
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ISO),
|
||||
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
|
||||
+ /* MacbookAir3,2 */
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI),
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_ISO),
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_JIS),
|
||||
+ /* MacbookAir3,1 */
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI),
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO),
|
||||
+ BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),
|
||||
/* Terminating entry */
|
||||
{}
|
||||
};
|
||||
@@ -234,6 +250,30 @@ static const struct bcm5974_config bcm59
|
||||
{ DIM_X, DIM_X / SN_COORD, -4460, 5166 },
|
||||
{ DIM_Y, DIM_Y / SN_COORD, -75, 6700 }
|
||||
},
|
||||
+ {
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI,
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4_ISO,
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4_JIS,
|
||||
+ HAS_INTEGRATED_BUTTON,
|
||||
+ 0x84, sizeof(struct bt_data),
|
||||
+ 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS,
|
||||
+ { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 },
|
||||
+ { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
|
||||
+ { DIM_X, DIM_X / SN_COORD, -4460, 5166 },
|
||||
+ { DIM_Y, DIM_Y / SN_COORD, -75, 6700 }
|
||||
+ },
|
||||
+ {
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI,
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO,
|
||||
+ USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS,
|
||||
+ HAS_INTEGRATED_BUTTON,
|
||||
+ 0x84, sizeof(struct bt_data),
|
||||
+ 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS,
|
||||
+ { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 },
|
||||
+ { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
|
||||
+ { DIM_X, DIM_X / SN_COORD, -4460, 5166 },
|
||||
+ { DIM_Y, DIM_Y / SN_COORD, -75, 6700 }
|
||||
+ },
|
||||
{}
|
||||
};
|
||||
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/drivers/video/backlight/mbp_nvidia_bl.c kernel-2.6.35.fc14.new/drivers/video/backlight/mbp_nvidia_bl.c
|
||||
--- kernel-2.6.35.fc14.orig/drivers/video/backlight/mbp_nvidia_bl.c 2010-11-12 12:35:49.159805591 +0100
|
||||
+++ kernel-2.6.35.fc14.new/drivers/video/backlight/mbp_nvidia_bl.c 2010-11-12 12:48:47.412131884 +0100
|
||||
@@ -335,6 +335,24 @@ static const struct dmi_system_id __init
|
||||
},
|
||||
.driver_data = (void *)&nvidia_chipset_data,
|
||||
},
|
||||
+ {
|
||||
+ .callback = mbp_dmi_match,
|
||||
+ .ident = "MacBookAir 3,1",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,1"),
|
||||
+ },
|
||||
+ .driver_data = (void *)&nvidia_chipset_data,
|
||||
+ },
|
||||
+ {
|
||||
+ .callback = mbp_dmi_match,
|
||||
+ .ident = "MacBookAir 3,2",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir3,2"),
|
||||
+ },
|
||||
+ .driver_data = (void *)&nvidia_chipset_data,
|
||||
+ },
|
||||
{ }
|
||||
};
|
||||
|
||||
diff -uNrp kernel-2.6.35.fc14.orig/sound/pci/hda/patch_cirrus.c kernel-2.6.35.fc14.new/sound/pci/hda/patch_cirrus.c
|
||||
--- kernel-2.6.35.fc14.orig/sound/pci/hda/patch_cirrus.c 2010-11-12 12:35:49.005815268 +0100
|
||||
+++ kernel-2.6.35.fc14.new/sound/pci/hda/patch_cirrus.c 2010-11-12 12:48:40.379542432 +0100
|
||||
@@ -1139,6 +1139,7 @@ static const char *cs420x_models[CS420X_
|
||||
static struct snd_pci_quirk cs420x_cfg_tbl[] = {
|
||||
SND_PCI_QUIRK(0x10de, 0xcb79, "MacBookPro 5,5", CS420X_MBP55),
|
||||
SND_PCI_QUIRK(0x8086, 0x7270, "IMac 27 Inch", CS420X_IMAC27),
|
||||
+ SND_PCI_QUIRK(0x10de, 0x0d94, "MacBookAir 3,1(2)", CS420X_MBP55),
|
||||
{} /* terminator */
|
||||
};
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From sgruszka@redhat.com Wed Mar 16 09:53:12 2011
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
To: kernel@lists.fedoraproject.org, Kyle McMartin <kmcmartin@redhat.com>
|
||||
Cc: Stanislaw Gruszka <sgruszka@redhat.com>, stable@kernel.org
|
||||
Subject: [PATCH 2.6.35] cfg80211: fix can_beacon_sec_chan, reenable HT40
|
||||
Date: Wed, 16 Mar 2011 14:52:53 +0100
|
||||
Message-Id: <1300283573-3151-1-git-send-email-sgruszka@redhat.com>
|
||||
|
||||
From: Mark Mentovai <mark@moxienet.com>
|
||||
|
||||
commit 09a02fdb919876c01e8f05960750a418b3f7fa48 upstream.
|
||||
|
||||
Fixes 2.6.35.9 -> 2.6.35.11 regression:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=671514
|
||||
|
||||
This follows wireless-testing 9236d838c920e90708570d9bbd7bb82d30a38130
|
||||
("cfg80211: fix extension channel checks to initiate communication") and
|
||||
fixes accidental case fall-through. Without this fix, HT40 is entirely
|
||||
blocked.
|
||||
|
||||
Signed-off-by: Mark Mentovai <mark@moxienet.com>
|
||||
Cc: stable@kernel.org
|
||||
Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/wireless/chan.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
|
||||
index c8d190d..17cd0c0 100644
|
||||
--- a/net/wireless/chan.c
|
||||
+++ b/net/wireless/chan.c
|
||||
@@ -54,8 +54,10 @@ static bool can_beacon_sec_chan(struct wiphy *wiphy,
|
||||
switch (channel_type) {
|
||||
case NL80211_CHAN_HT40PLUS:
|
||||
diff = 20;
|
||||
+ break;
|
||||
case NL80211_CHAN_HT40MINUS:
|
||||
diff = -20;
|
||||
+ break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -492,3 +492,5 @@ CONFIG_LPC_SCH=m
|
|||
CONFIG_INTEL_IDLE=y
|
||||
|
||||
CONFIG_PCI_CNB20LE_QUIRK=y
|
||||
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
|
|
|
@ -409,3 +409,5 @@ CONFIG_I7300_IDLE=m
|
|||
CONFIG_PCI_CNB20LE_QUIRK=y
|
||||
|
||||
CONFIG_HP_ILO=m
|
||||
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
From linux-fsdevel-owner@vger.kernel.org Thu Nov 18 21:03:11 2010
|
||||
From: Josef Bacik <josef@redhat.com>
|
||||
To: linux-fsdevel@vger.kernel.org, eparis@redhat.com,
|
||||
linux-kernel@vger.kernel.org, sds@tycho.nsa.gov,
|
||||
selinux@tycho.nsa.gov, bfields@fieldses.org
|
||||
Subject: [PATCH] fs: call security_d_instantiate in d_obtain_alias V2
|
||||
Date: Thu, 18 Nov 2010 20:52:55 -0500
|
||||
Message-Id: <1290131575-2489-1-git-send-email-josef@redhat.com>
|
||||
X-Mailing-List: linux-fsdevel@vger.kernel.org
|
||||
|
||||
While trying to track down some NFS problems with BTRFS, I kept noticing I was
|
||||
getting -EACCESS for no apparent reason. Eric Paris and printk() helped me
|
||||
figure out that it was SELinux that was giving me grief, with the following
|
||||
denial
|
||||
|
||||
type=AVC msg=audit(1290013638.413:95): avc: denied { 0x800000 } for pid=1772
|
||||
comm="nfsd" name="" dev=sda1 ino=256 scontext=system_u:system_r:kernel_t:s0
|
||||
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
|
||||
|
||||
Turns out this is because in d_obtain_alias if we can't find an alias we create
|
||||
one and do all the normal instantiation stuff, but we don't do the
|
||||
security_d_instantiate.
|
||||
|
||||
Usually we are protected from getting a hashed dentry that hasn't yet run
|
||||
security_d_instantiate() by the parent's i_mutex, but obviously this isn't an
|
||||
option there, so in order to deal with the case that a second thread comes in
|
||||
and finds our new dentry before we get to run security_d_instantiate(), we go
|
||||
ahead and call it if we find a dentry already. Eric assures me that this is ok
|
||||
as the code checks to see if the dentry has been initialized already so calling
|
||||
security_d_instantiate() against the same dentry multiple times is ok. With
|
||||
this patch I'm no longer getting errant -EACCESS values.
|
||||
|
||||
Signed-off-by: Josef Bacik <josef@redhat.com>
|
||||
---
|
||||
V1->V2:
|
||||
-added second security_d_instantiate() call
|
||||
|
||||
fs/dcache.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 23702a9..119d489 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -1201,9 +1201,12 @@ struct dentry *d_obtain_alias(struct inode *inode)
|
||||
spin_unlock(&tmp->d_lock);
|
||||
|
||||
spin_unlock(&dcache_lock);
|
||||
+ security_d_instantiate(tmp, inode);
|
||||
return tmp;
|
||||
|
||||
out_iput:
|
||||
+ if (res && !IS_ERR(res))
|
||||
+ security_d_instantiate(res, inode);
|
||||
iput(inode);
|
||||
return res;
|
||||
}
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
From sgruszka@redhat.com Mon Jan 17 08:03:52 2011
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
To: stable@kernel.org, kernel@lists.fedoraproject.org
|
||||
Subject: [PATCH 2.6.35.y] hostap_cs: fix sleeping function called from invalid context
|
||||
Date: Mon, 17 Jan 2011 14:03:36 +0100
|
||||
Message-Id: <1295269416-4870-1-git-send-email-sgruszka@redhat.com>
|
||||
|
||||
commit 4e5518ca53be29c1ec3c00089c97bef36bfed515 upstream.
|
||||
|
||||
pcmcia_request_irq() and pcmcia_enable_device() are intended
|
||||
to be called from process context (first function allocate memory
|
||||
with GFP_KERNEL, second take a mutex). We can not take spin lock
|
||||
and call them.
|
||||
|
||||
It's safe to move spin lock after pcmcia_enable_device() as we
|
||||
still hold off IRQ until dev->base_addr is 0 and driver will
|
||||
not proceed with interrupts when is not ready.
|
||||
|
||||
Patch resolves:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=643758
|
||||
|
||||
Reported-and-tested-by: rbugz@biobind.com
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
---
|
||||
drivers/net/wireless/hostap/hostap_cs.c | 15 ++++++---------
|
||||
1 files changed, 6 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
|
||||
index 29b31a6..4ebf63d 100644
|
||||
--- a/drivers/net/wireless/hostap/hostap_cs.c
|
||||
+++ b/drivers/net/wireless/hostap/hostap_cs.c
|
||||
@@ -627,14 +627,13 @@ static int prism2_config(struct pcmcia_device *link)
|
||||
hw_priv->link = link;
|
||||
|
||||
/*
|
||||
- * Make sure the IRQ handler cannot proceed until at least
|
||||
- * dev->base_addr is initialized.
|
||||
+ * We enable IRQ here, but IRQ handler will not proceed
|
||||
+ * until dev->base_addr is set below. This protect us from
|
||||
+ * receive interrupts when driver is not initialized.
|
||||
*/
|
||||
- spin_lock_irqsave(&local->irq_init_lock, flags);
|
||||
-
|
||||
ret = pcmcia_request_irq(link, prism2_interrupt);
|
||||
if (ret)
|
||||
- goto failed_unlock;
|
||||
+ goto failed;
|
||||
|
||||
/*
|
||||
* This actually configures the PCMCIA socket -- setting up
|
||||
@@ -643,11 +642,11 @@ static int prism2_config(struct pcmcia_device *link)
|
||||
*/
|
||||
ret = pcmcia_request_configuration(link, &link->conf);
|
||||
if (ret)
|
||||
- goto failed_unlock;
|
||||
+ goto failed;
|
||||
|
||||
+ spin_lock_irqsave(&local->irq_init_lock, flags);
|
||||
dev->irq = link->irq;
|
||||
dev->base_addr = link->io.BasePort1;
|
||||
-
|
||||
spin_unlock_irqrestore(&local->irq_init_lock, flags);
|
||||
|
||||
/* Finally, report what we've done */
|
||||
@@ -676,8 +675,6 @@ static int prism2_config(struct pcmcia_device *link)
|
||||
|
||||
return ret;
|
||||
|
||||
- failed_unlock:
|
||||
- spin_unlock_irqrestore(&local->irq_init_lock, flags);
|
||||
failed:
|
||||
kfree(hw_priv);
|
||||
prism2_release((u_long)link);
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
commit c91d01556f52255a31575be0cb1981c92a2a5028 upstream.
|
||||
|
||||
Patch fixes:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=654599
|
||||
|
||||
Many users report very low speed problem on 3945 devices,
|
||||
this patch fixes problem, but only for some of them.
|
||||
|
||||
For unknown reason, sometimes after hw scanning, device is not able
|
||||
to receive frames at high rate. Since plcp health check may request
|
||||
hw scan to "reset radio", performance problem start to be observable
|
||||
after update kernel to .35, where plcp check was introduced.
|
||||
|
||||
Bug reporter confirmed that removing plcp check fixed problem for him.
|
||||
|
||||
Reported-and-tested-by: SilvioTO <silviotoya@yahoo.it>
|
||||
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-3945.c | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
|
||||
index 2a9480d..7b4fc94 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
|
||||
@@ -2837,7 +2837,6 @@ static struct iwl_lib_ops iwl3945_lib = {
|
||||
.config_ap = iwl3945_config_ap,
|
||||
.manage_ibss_station = iwl3945_manage_ibss_station,
|
||||
.recover_from_tx_stall = iwl_bg_monitor_recover,
|
||||
- .check_plcp_health = iwl3945_good_plcp_health,
|
||||
|
||||
.debugfs_ops = {
|
||||
.rx_stats_read = iwl3945_ucode_rx_stats_read,
|
||||
--
|
||||
|
46
kernel.spec
46
kernel.spec
|
@ -48,7 +48,7 @@ Summary: The Linux kernel
|
|||
# reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
|
||||
# scripts/rebase.sh should be made to do that for you, actually.
|
||||
#
|
||||
%global baserelease 87
|
||||
%global baserelease 88
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -60,7 +60,7 @@ Summary: The Linux kernel
|
|||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 11
|
||||
%define stable_update 12
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
|
@ -763,13 +763,10 @@ Patch12565: sched-05-avoid-side-effect-of-tickless-idle-on-update_cpu_load.patch
|
|||
Patch12570: sched-10-change-nohz-idle-load-balancing-logic-to-push-model.patch
|
||||
Patch12575: sched-15-update-rq-clock-for-nohz-balanced-cpus.patch
|
||||
Patch12580: sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch
|
||||
Patch12585: sched-25-move-sched_avg_update-to-update_cpu_load.patch
|
||||
Patch12590: sched-30-sched-fix-nohz-balance-kick.patch
|
||||
Patch12595: sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch
|
||||
|
||||
Patch13600: btusb-macbookpro-6-2.patch
|
||||
Patch13601: btusb-macbookpro-7-1.patch
|
||||
Patch13602: add-macbookair3-ids.patch
|
||||
|
||||
Patch13610: libata-it821x-dump-stack-on-cache-flush.patch
|
||||
|
||||
|
@ -784,9 +781,6 @@ Patch13641: mmc-make-sdhci-work-with-ricoh-mmc-controller.patch
|
|||
Patch13642: mmc-add-ricoh-e822-pci-id.patch
|
||||
|
||||
Patch13645: tpm-autodetect-itpm-devices.patch
|
||||
Patch13646: tpm-fix-stall-on-boot.patch
|
||||
|
||||
Patch13651: kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch
|
||||
|
||||
Patch13652: fix-i8k-inline-asm.patch
|
||||
|
||||
|
@ -810,8 +804,6 @@ Patch13694: btrfs-fix-error-handling-in-btrfs_get_sub.patch
|
|||
Patch13695: btrfs-setup-blank-root-and-fs_info-for-mount-time.patch
|
||||
Patch13696: btrfs-fix-race-between-btrfs_get_sb-and-unmount.patch
|
||||
|
||||
Patch13697: fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
||||
|
||||
Patch13698: net-AF_PACKET-vmalloc.patch
|
||||
|
||||
# rhbz#652744
|
||||
|
@ -824,9 +816,6 @@ Patch13702: block-check-for-proper-length-of-iov-entries-earlier-in-blk_rq_map_u
|
|||
# RHBZ #669511
|
||||
Patch13703: btrfs-fix-typo-in-fallocate-to-make-it-honor-actual-size.patch
|
||||
|
||||
# rhbz#643758
|
||||
Patch13704: hostap_cs-fix-sleeping-function-called-from-invalid-context.patch
|
||||
|
||||
# rhbz #673207
|
||||
Patch13705: sunrpc-kernel-panic-when-mount-nfsv4.patch
|
||||
|
||||
|
@ -839,18 +828,12 @@ Patch13707: kvm-mmu-fix-32-bit-legacy-paging-with-npt.patch
|
|||
# rhbz#676860
|
||||
Patch13708: hid-force-feedback-support-for-logitech-rumblepad-gamepad.patch
|
||||
|
||||
# rhbz#654599
|
||||
Patch13709: iwl3945-remove-plcp-check.patch
|
||||
|
||||
# rhbz#604630
|
||||
Patch13710: linux-2.6-bonding-sysfs-warning.patch
|
||||
|
||||
# rhbz#680791
|
||||
Patch13711: md-fix-regression-resulting-in-delays-in-clearing-bits-in-a-bitmap.patch
|
||||
|
||||
# rhbz#671514
|
||||
Patch13712: cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch
|
||||
|
||||
Patch13713: virtio_net-add-schedule-check-to-napi_enable-call.patch
|
||||
|
||||
%endif
|
||||
|
@ -1314,9 +1297,6 @@ ApplyPatch linux-2.6-32bit-mmap-exec-randomization.patch
|
|||
# bugfixes to drivers and filesystems
|
||||
#
|
||||
|
||||
# rhbz#662344,600690
|
||||
ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
||||
|
||||
# ext4
|
||||
|
||||
# rhbz#578674
|
||||
|
@ -1519,16 +1499,11 @@ ApplyPatch sched-05-avoid-side-effect-of-tickless-idle-on-update_cpu_load.patch
|
|||
ApplyPatch sched-10-change-nohz-idle-load-balancing-logic-to-push-model.patch
|
||||
ApplyPatch sched-15-update-rq-clock-for-nohz-balanced-cpus.patch
|
||||
ApplyPatch sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch
|
||||
ApplyPatch sched-25-move-sched_avg_update-to-update_cpu_load.patch
|
||||
ApplyPatch sched-30-sched-fix-nohz-balance-kick.patch
|
||||
ApplyPatch sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch
|
||||
|
||||
ApplyPatch btusb-macbookpro-7-1.patch
|
||||
ApplyPatch btusb-macbookpro-6-2.patch
|
||||
|
||||
# rhbz#651019
|
||||
ApplyPatch add-macbookair3-ids.patch
|
||||
|
||||
# temporary patch, dump stack on failed it821x commands
|
||||
ApplyPatch libata-it821x-dump-stack-on-cache-flush.patch
|
||||
|
||||
|
@ -1546,11 +1521,6 @@ ApplyPatch mmc-make-sdhci-work-with-ricoh-mmc-controller.patch
|
|||
ApplyPatch mmc-add-ricoh-e822-pci-id.patch
|
||||
|
||||
ApplyPatch tpm-autodetect-itpm-devices.patch
|
||||
# rhbz#530393
|
||||
ApplyPatch tpm-fix-stall-on-boot.patch
|
||||
|
||||
# CVE-2010-3698
|
||||
ApplyPatch kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch
|
||||
|
||||
ApplyPatch fix-i8k-inline-asm.patch
|
||||
|
||||
|
@ -1582,9 +1552,6 @@ ApplyPatch e1000e-82566DC-fails-to-get-link.patch
|
|||
# CVE-2010-4668
|
||||
ApplyPatch block-check-for-proper-length-of-iov-entries-earlier-in-blk_rq_map_user_iov.patch
|
||||
|
||||
# rhbz#643758
|
||||
ApplyPatch hostap_cs-fix-sleeping-function-called-from-invalid-context.patch
|
||||
|
||||
# rhbz #673207
|
||||
ApplyPatch sunrpc-kernel-panic-when-mount-nfsv4.patch
|
||||
|
||||
|
@ -1597,18 +1564,12 @@ ApplyPatch kvm-mmu-fix-32-bit-legacy-paging-with-npt.patch
|
|||
# rhbz#676860
|
||||
ApplyPatch hid-force-feedback-support-for-logitech-rumblepad-gamepad.patch
|
||||
|
||||
# rhbz#654599
|
||||
ApplyPatch iwl3945-remove-plcp-check.patch
|
||||
|
||||
# rhbz#604630
|
||||
ApplyPatch linux-2.6-bonding-sysfs-warning.patch
|
||||
|
||||
# rhbz#680791
|
||||
ApplyPatch md-fix-regression-resulting-in-delays-in-clearing-bits-in-a-bitmap.patch
|
||||
|
||||
# rhbz#671514
|
||||
ApplyPatch cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch
|
||||
|
||||
ApplyPatch virtio_net-add-schedule-check-to-napi_enable-call.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
@ -2197,6 +2158,9 @@ fi
|
|||
# and build.
|
||||
|
||||
%changelog
|
||||
* Thu Mar 31 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.35.12-88
|
||||
- Update to longterm 2.6.35.12, drop upstream patches.
|
||||
|
||||
* Wed Mar 23 2011 Kyle McMartin <kmcmartin@redhat.com>
|
||||
- Backport 3e9d08e: "virtio_net: Add schedule check to napi_enable call"
|
||||
|
||||
|
|
|
@ -1,161 +0,0 @@
|
|||
From: Avi Kivity <avi@redhat.com>
|
||||
Date: Tue, 19 Oct 2010 14:46:55 +0000 (+0200)
|
||||
Subject: KVM: Fix fs/gs reload oops with invalid ldt
|
||||
X-Git-Tag: v2.6.36~4^2
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9581d442b9058d3699b4be568b6e5eae38a41493
|
||||
|
||||
KVM: Fix fs/gs reload oops with invalid ldt
|
||||
|
||||
kvm reloads the host's fs and gs blindly, however the underlying segment
|
||||
descriptors may be invalid due to the user modifying the ldt after loading
|
||||
them.
|
||||
|
||||
Fix by using the safe accessors (loadsegment() and load_gs_index()) instead
|
||||
of home grown unsafe versions.
|
||||
|
||||
This is CVE-2010-3698.
|
||||
|
||||
KVM-Stable-Tag.
|
||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
||||
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
||||
---
|
||||
|
||||
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
|
||||
index 502e53f..c52e2eb 100644
|
||||
--- a/arch/x86/include/asm/kvm_host.h
|
||||
+++ b/arch/x86/include/asm/kvm_host.h
|
||||
@@ -652,20 +652,6 @@ static inline struct kvm_mmu_page *page_header(hpa_t shadow_page)
|
||||
return (struct kvm_mmu_page *)page_private(page);
|
||||
}
|
||||
|
||||
-static inline u16 kvm_read_fs(void)
|
||||
-{
|
||||
- u16 seg;
|
||||
- asm("mov %%fs, %0" : "=g"(seg));
|
||||
- return seg;
|
||||
-}
|
||||
-
|
||||
-static inline u16 kvm_read_gs(void)
|
||||
-{
|
||||
- u16 seg;
|
||||
- asm("mov %%gs, %0" : "=g"(seg));
|
||||
- return seg;
|
||||
-}
|
||||
-
|
||||
static inline u16 kvm_read_ldt(void)
|
||||
{
|
||||
u16 ldt;
|
||||
@@ -673,16 +659,6 @@ static inline u16 kvm_read_ldt(void)
|
||||
return ldt;
|
||||
}
|
||||
|
||||
-static inline void kvm_load_fs(u16 sel)
|
||||
-{
|
||||
- asm("mov %0, %%fs" : : "rm"(sel));
|
||||
-}
|
||||
-
|
||||
-static inline void kvm_load_gs(u16 sel)
|
||||
-{
|
||||
- asm("mov %0, %%gs" : : "rm"(sel));
|
||||
-}
|
||||
-
|
||||
static inline void kvm_load_ldt(u16 sel)
|
||||
{
|
||||
asm("lldt %0" : : "rm"(sel));
|
||||
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
|
||||
index 81ed28c..8a3f9f6 100644
|
||||
--- a/arch/x86/kvm/svm.c
|
||||
+++ b/arch/x86/kvm/svm.c
|
||||
@@ -3163,8 +3163,8 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
sync_lapic_to_cr8(vcpu);
|
||||
|
||||
save_host_msrs(vcpu);
|
||||
- fs_selector = kvm_read_fs();
|
||||
- gs_selector = kvm_read_gs();
|
||||
+ savesegment(fs, fs_selector);
|
||||
+ savesegment(gs, gs_selector);
|
||||
ldt_selector = kvm_read_ldt();
|
||||
svm->vmcb->save.cr2 = vcpu->arch.cr2;
|
||||
/* required for live migration with NPT */
|
||||
@@ -3251,10 +3251,15 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
||||
vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp;
|
||||
vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip;
|
||||
|
||||
- kvm_load_ldt(ldt_selector);
|
||||
- kvm_load_fs(fs_selector);
|
||||
- kvm_load_gs(gs_selector);
|
||||
load_host_msrs(vcpu);
|
||||
+ kvm_load_ldt(ldt_selector);
|
||||
+ loadsegment(fs, fs_selector);
|
||||
+#ifdef CONFIG_X86_64
|
||||
+ load_gs_index(gs_selector);
|
||||
+ wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs);
|
||||
+#else
|
||||
+ loadsegment(gs, gs_selector);
|
||||
+#endif
|
||||
|
||||
reload_tss(vcpu);
|
||||
|
||||
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
||||
index 49b25ee..7bddfab 100644
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -803,7 +803,7 @@ static void vmx_save_host_state(struct kvm_vcpu *vcpu)
|
||||
*/
|
||||
vmx->host_state.ldt_sel = kvm_read_ldt();
|
||||
vmx->host_state.gs_ldt_reload_needed = vmx->host_state.ldt_sel;
|
||||
- vmx->host_state.fs_sel = kvm_read_fs();
|
||||
+ savesegment(fs, vmx->host_state.fs_sel);
|
||||
if (!(vmx->host_state.fs_sel & 7)) {
|
||||
vmcs_write16(HOST_FS_SELECTOR, vmx->host_state.fs_sel);
|
||||
vmx->host_state.fs_reload_needed = 0;
|
||||
@@ -811,7 +811,7 @@ static void vmx_save_host_state(struct kvm_vcpu *vcpu)
|
||||
vmcs_write16(HOST_FS_SELECTOR, 0);
|
||||
vmx->host_state.fs_reload_needed = 1;
|
||||
}
|
||||
- vmx->host_state.gs_sel = kvm_read_gs();
|
||||
+ savesegment(gs, vmx->host_state.gs_sel);
|
||||
if (!(vmx->host_state.gs_sel & 7))
|
||||
vmcs_write16(HOST_GS_SELECTOR, vmx->host_state.gs_sel);
|
||||
else {
|
||||
@@ -841,25 +841,19 @@ static void vmx_save_host_state(struct kvm_vcpu *vcpu)
|
||||
|
||||
static void __vmx_load_host_state(struct vcpu_vmx *vmx)
|
||||
{
|
||||
- unsigned long flags;
|
||||
-
|
||||
if (!vmx->host_state.loaded)
|
||||
return;
|
||||
|
||||
++vmx->vcpu.stat.host_state_reload;
|
||||
vmx->host_state.loaded = 0;
|
||||
if (vmx->host_state.gs_ldt_reload_needed) {
|
||||
kvm_load_ldt(vmx->host_state.ldt_sel);
|
||||
- /*
|
||||
- * If we have to reload gs, we must take care to
|
||||
- * preserve our gs base.
|
||||
- */
|
||||
- local_irq_save(flags);
|
||||
- kvm_load_gs(vmx->host_state.gs_sel);
|
||||
#ifdef CONFIG_X86_64
|
||||
- wrmsrl(MSR_GS_BASE, vmcs_readl(HOST_GS_BASE));
|
||||
+ load_gs_index(vmx->host_state.gs_sel);
|
||||
+ wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs);
|
||||
+#else
|
||||
+ loadsegment(gs, vmx->host_state.gs_sel);
|
||||
#endif
|
||||
- local_irq_restore(flags);
|
||||
}
|
||||
if (vmx->host_state.fs_reload_needed)
|
||||
loadsegment(fs, vmx->host_state.fs_sel);
|
||||
@@ -2589,8 +2583,8 @@ static int vmx_vcpu_setup(struct vcpu_vmx *vmx)
|
||||
vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */
|
||||
vmcs_write16(HOST_DS_SELECTOR, __KERNEL_DS); /* 22.2.4 */
|
||||
vmcs_write16(HOST_ES_SELECTOR, __KERNEL_DS); /* 22.2.4 */
|
||||
- vmcs_write16(HOST_FS_SELECTOR, kvm_read_fs()); /* 22.2.4 */
|
||||
- vmcs_write16(HOST_GS_SELECTOR, kvm_read_gs()); /* 22.2.4 */
|
||||
+ vmcs_write16(HOST_FS_SELECTOR, 0); /* 22.2.4 */
|
||||
+ vmcs_write16(HOST_GS_SELECTOR, 0); /* 22.2.4 */
|
||||
vmcs_write16(HOST_SS_SELECTOR, __KERNEL_DS); /* 22.2.4 */
|
||||
#ifdef CONFIG_X86_64
|
||||
rdmsrl(MSR_FS_BASE, a);
|
|
@ -137,3 +137,196 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|||
/* Channel's PRAMIN object + heap */
|
||||
ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0,
|
||||
NULL, &chan->ramin);
|
||||
|
||||
commit 6f1b1e1384b23cfab30c2bc02a8f94927274c10d
|
||||
Author: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Date: Sun Jan 16 10:09:13 2011 -0300
|
||||
|
||||
radio-aimslab.c needs #include <linux/delay.h>
|
||||
|
||||
commit 2400982a2e8a8e4e95f0a0e1517bbe63cc88038f upstream.
|
||||
|
||||
Commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f ("[media] radio-aimslab.c: Fix
|
||||
gcc 4.5+ bug") removed the include, but introduced new callers of msleep():
|
||||
|
||||
| drivers/media/radio/radio-aimslab.c: In function ‘rt_decvol’:
|
||||
| drivers/media/radio/radio-aimslab.c:76: error: implicit declaration of function ‘msleep’
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||||
Cc: dann frazier <dannf@debian.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
|
||||
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
|
||||
index 1944814..a91642c 100644
|
||||
--- a/drivers/media/radio/radio-aimslab.c
|
||||
+++ b/drivers/media/radio/radio-aimslab.c
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <linux/module.h> /* Modules */
|
||||
#include <linux/init.h> /* Initdata */
|
||||
#include <linux/ioport.h> /* request_region */
|
||||
+#include <linux/delay.h> /* msleep */
|
||||
#include <linux/videodev2.h> /* kernel radio structs */
|
||||
#include <linux/version.h> /* for KERNEL_VERSION MACRO */
|
||||
#include <linux/io.h> /* outb, outb_p */
|
||||
|
||||
commit 9c198dad83c19a05a11b5a195242f3e8dcbe55f4
|
||||
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Date: Thu Jan 6 08:16:04 2011 -0200
|
||||
|
||||
radio-aimslab.c: Fix gcc 4.5+ bug
|
||||
|
||||
commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f upstream.
|
||||
|
||||
gcc 4.5+ doesn't properly evaluate some inlined expressions.
|
||||
A previous patch were proposed by Andrew Morton using noinline.
|
||||
However, the entire inlined function is bogus, so let's just
|
||||
remove it and be happy.
|
||||
|
||||
Reported-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
|
||||
index 5bf4985..1944814 100644
|
||||
--- a/drivers/media/radio/radio-aimslab.c
|
||||
+++ b/drivers/media/radio/radio-aimslab.c
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <linux/module.h> /* Modules */
|
||||
#include <linux/init.h> /* Initdata */
|
||||
#include <linux/ioport.h> /* request_region */
|
||||
-#include <linux/delay.h> /* udelay */
|
||||
#include <linux/videodev2.h> /* kernel radio structs */
|
||||
#include <linux/version.h> /* for KERNEL_VERSION MACRO */
|
||||
#include <linux/io.h> /* outb, outb_p */
|
||||
@@ -71,27 +70,17 @@ static struct rtrack rtrack_card;
|
||||
|
||||
/* local things */
|
||||
|
||||
-static void sleep_delay(long n)
|
||||
-{
|
||||
- /* Sleep nicely for 'n' uS */
|
||||
- int d = n / msecs_to_jiffies(1000);
|
||||
- if (!d)
|
||||
- udelay(n);
|
||||
- else
|
||||
- msleep(jiffies_to_msecs(d));
|
||||
-}
|
||||
-
|
||||
static void rt_decvol(struct rtrack *rt)
|
||||
{
|
||||
outb(0x58, rt->io); /* volume down + sigstr + on */
|
||||
- sleep_delay(100000);
|
||||
+ msleep(100);
|
||||
outb(0xd8, rt->io); /* volume steady + sigstr + on */
|
||||
}
|
||||
|
||||
static void rt_incvol(struct rtrack *rt)
|
||||
{
|
||||
outb(0x98, rt->io); /* volume up + sigstr + on */
|
||||
- sleep_delay(100000);
|
||||
+ msleep(100);
|
||||
outb(0xd8, rt->io); /* volume steady + sigstr + on */
|
||||
}
|
||||
|
||||
@@ -120,7 +109,7 @@ static int rt_setvol(struct rtrack *rt, int vol)
|
||||
|
||||
if (vol == 0) { /* volume = 0 means mute the card */
|
||||
outb(0x48, rt->io); /* volume down but still "on" */
|
||||
- sleep_delay(2000000); /* make sure it's totally down */
|
||||
+ msleep(2000); /* make sure it's totally down */
|
||||
outb(0xd0, rt->io); /* volume steady, off */
|
||||
rt->curvol = 0; /* track the volume state! */
|
||||
mutex_unlock(&rt->lock);
|
||||
@@ -155,7 +144,7 @@ static void send_0_byte(struct rtrack *rt)
|
||||
outb_p(128+64+16+8+ 1, rt->io); /* on + wr-enable + data low */
|
||||
outb_p(128+64+16+8+2+1, rt->io); /* clock */
|
||||
}
|
||||
- sleep_delay(1000);
|
||||
+ msleep(1);
|
||||
}
|
||||
|
||||
static void send_1_byte(struct rtrack *rt)
|
||||
@@ -169,7 +158,7 @@ static void send_1_byte(struct rtrack *rt)
|
||||
outb_p(128+64+16+8+4+2+1, rt->io); /* clock */
|
||||
}
|
||||
|
||||
- sleep_delay(1000);
|
||||
+ msleep(1);
|
||||
}
|
||||
|
||||
static int rt_setfreq(struct rtrack *rt, unsigned long freq)
|
||||
@@ -427,7 +416,7 @@ static int __init rtrack_init(void)
|
||||
|
||||
/* this ensures that the volume is all the way down */
|
||||
outb(0x48, rt->io); /* volume down but still "on" */
|
||||
- sleep_delay(2000000); /* make sure it's totally down */
|
||||
+ msleep(2000); /* make sure it's totally down */
|
||||
outb(0xc0, rt->io); /* steady volume, mute card */
|
||||
|
||||
return 0;
|
||||
|
||||
commit 515884e98dc4f1c99387000d420394c3bc47c0d7
|
||||
Author: Dan Carpenter <error27@gmail.com>
|
||||
Date: Fri Jan 7 16:41:54 2011 -0300
|
||||
|
||||
av7110: check for negative array offset
|
||||
|
||||
commit cb26a24ee9706473f31d34cc259f4dcf45cd0644 upstream.
|
||||
|
||||
info->num comes from the user. It's type int. If the user passes
|
||||
in a negative value that would cause memory corruption.
|
||||
|
||||
Signed-off-by: Dan Carpenter <error27@gmail.com>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
diff --git a/drivers/media/dvb/ttpci/av7110_ca.c b/drivers/media/dvb/ttpci/av7110_ca.c
|
||||
index 4eba35a..c38dd67 100644
|
||||
--- a/drivers/media/dvb/ttpci/av7110_ca.c
|
||||
+++ b/drivers/media/dvb/ttpci/av7110_ca.c
|
||||
@@ -277,7 +277,7 @@ static int dvb_ca_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||||
{
|
||||
ca_slot_info_t *info=(ca_slot_info_t *)parg;
|
||||
|
||||
- if (info->num > 1)
|
||||
+ if (info->num < 0 || info->num > 1)
|
||||
return -EINVAL;
|
||||
av7110->ci_slot[info->num].num = info->num;
|
||||
av7110->ci_slot[info->num].type = FW_CI_LL_SUPPORT(av7110->arm_app) ?
|
||||
|
||||
commit 9e5ad61f8d81da0b58535ac2cf60d36e26ca567a
|
||||
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Date: Mon Oct 25 17:51:15 2010 -0300
|
||||
|
||||
em28xx: Fix audio input for Terratec Grabby
|
||||
|
||||
commit a3fa904ec79b94f0db7faed010ff94d42f7d1d47 upstream.
|
||||
|
||||
The audio input line was wrong. Fix it.
|
||||
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
|
||||
index 3a4fd85..2fa5bb4 100644
|
||||
--- a/drivers/media/video/em28xx/em28xx-cards.c
|
||||
+++ b/drivers/media/video/em28xx/em28xx-cards.c
|
||||
@@ -1605,11 +1605,11 @@ struct em28xx_board em28xx_boards[] = {
|
||||
.input = { {
|
||||
.type = EM28XX_VMUX_COMPOSITE1,
|
||||
.vmux = SAA7115_COMPOSITE0,
|
||||
- .amux = EM28XX_AMUX_VIDEO2,
|
||||
+ .amux = EM28XX_AMUX_LINE_IN,
|
||||
}, {
|
||||
.type = EM28XX_VMUX_SVIDEO,
|
||||
.vmux = SAA7115_SVIDEO3,
|
||||
- .amux = EM28XX_AMUX_VIDEO2,
|
||||
+ .amux = EM28XX_AMUX_LINE_IN,
|
||||
} },
|
||||
},
|
||||
[EM2860_BOARD_TERRATEC_AV350] = {
|
||||
|
|
|
@ -24,15 +24,15 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|||
---
|
||||
|
||||
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
|
||||
index 806d1b2..ab661eb 100644
|
||||
index 09a9811..6cebdf8 100644
|
||||
--- a/kernel/sched_fair.c
|
||||
+++ b/kernel/sched_fair.c
|
||||
@@ -3752,6 +3752,8 @@ static void task_fork_fair(struct task_struct *p)
|
||||
@@ -3609,6 +3609,8 @@ static void task_fork_fair(struct task_struct *p)
|
||||
|
||||
raw_spin_lock_irqsave(&rq->lock, flags);
|
||||
|
||||
+ update_rq_clock(rq);
|
||||
+
|
||||
if (unlikely(task_cpu(p) != this_cpu))
|
||||
if (unlikely(task_cpu(p) != this_cpu)) {
|
||||
rcu_read_lock();
|
||||
__set_task_cpu(p, this_cpu);
|
||||
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
From: Suresh Siddha <suresh.b.siddha@intel.com>
|
||||
Date: Mon, 23 Aug 2010 20:42:51 +0000 (-0700)
|
||||
Subject: sched: Move sched_avg_update() to update_cpu_load()
|
||||
X-Git-Tag: v2.6.36-rc4~8^2~1
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=da2b71edd8a7db44fe1746261410a981f3e03632
|
||||
|
||||
sched: Move sched_avg_update() to update_cpu_load()
|
||||
|
||||
Currently sched_avg_update() (which updates rt_avg stats in the rq)
|
||||
is getting called from scale_rt_power() (in the load balance context)
|
||||
which doesn't take rq->lock.
|
||||
|
||||
Fix it by moving the sched_avg_update() to more appropriate
|
||||
update_cpu_load() where the CFS load gets updated as well.
|
||||
|
||||
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
|
||||
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
LKML-Reference: <1282596171.2694.3.camel@sbsiddha-MOBL3>
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
---
|
||||
|
||||
diff --git a/kernel/sched.c b/kernel/sched.c
|
||||
index 09b574e..ed09d4f 100644
|
||||
--- a/kernel/sched.c
|
||||
+++ b/kernel/sched.c
|
||||
@@ -1294,6 +1294,10 @@ static void resched_task(struct task_struct *p)
|
||||
static void sched_rt_avg_update(struct rq *rq, u64 rt_delta)
|
||||
{
|
||||
}
|
||||
+
|
||||
+static void sched_avg_update(struct rq *rq)
|
||||
+{
|
||||
+}
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
#if BITS_PER_LONG == 32
|
||||
@@ -3182,6 +3186,8 @@ static void update_cpu_load(struct rq *this_rq)
|
||||
|
||||
this_rq->cpu_load[i] = (old_load * (scale - 1) + new_load) >> i;
|
||||
}
|
||||
+
|
||||
+ sched_avg_update(this_rq);
|
||||
}
|
||||
|
||||
static void update_cpu_load_active(struct rq *this_rq)
|
||||
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
|
||||
index ab661eb..f53ec75 100644
|
||||
--- a/kernel/sched_fair.c
|
||||
+++ b/kernel/sched_fair.c
|
||||
@@ -2268,8 +2268,6 @@ unsigned long scale_rt_power(int cpu)
|
||||
struct rq *rq = cpu_rq(cpu);
|
||||
u64 total, available;
|
||||
|
||||
- sched_avg_update(rq);
|
||||
-
|
||||
total = sched_avg_period() + (rq->clock - rq->age_stamp);
|
||||
available = total - rq->rt_avg;
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
From: Venkatesh Pallipadi <venki@google.com>
|
||||
Date: Sat, 11 Sep 2010 01:19:17 +0000 (-0700)
|
||||
Subject: sched: Increment cache_nice_tries only on periodic lb
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fmingo%2Flinux-2.6-x86.git;a=commitdiff_plain;h=58b26c4c025778c09c7a1438ff185080e11b7d0a
|
||||
|
||||
sched: Increment cache_nice_tries only on periodic lb
|
||||
|
||||
scheduler uses cache_nice_tries as an indicator to do cache_hot and
|
||||
active load balance, when normal load balance fails. Currently,
|
||||
this value is changed on any failed load balance attempt. That ends
|
||||
up being not so nice to workloads that enter/exit idle often, as
|
||||
they do more frequent new_idle balance and that pretty soon results
|
||||
in cache hot tasks being pulled in.
|
||||
|
||||
Making the cache_nice_tries ignore failed new_idle balance seems to
|
||||
make better sense. With that only the failed load balance in
|
||||
periodic load balance gets accounted and the rate of accumulation
|
||||
of cache_nice_tries will not depend on idle entry/exit (short
|
||||
running sleep-wakeup kind of tasks). This reduces movement of
|
||||
cache_hot tasks.
|
||||
|
||||
schedstat diff (after-before) excerpt from a workload that has
|
||||
frequent and short wakeup-idle pattern (:2 in cpu col below refers
|
||||
to NEWIDLE idx) This snapshot was across ~400 seconds.
|
||||
|
||||
Without this change:
|
||||
domainstats: domain0
|
||||
cpu cnt bln fld imb gain hgain nobusyq nobusyg
|
||||
0:2 306487 219575 73167 110069413 44583 19070 1172 218403
|
||||
1:2 292139 194853 81421 120893383 50745 21902 1259 193594
|
||||
2:2 283166 174607 91359 129699642 54931 23688 1287 173320
|
||||
3:2 273998 161788 93991 132757146 57122 24351 1366 160422
|
||||
4:2 289851 215692 62190 83398383 36377 13680 851 214841
|
||||
5:2 316312 222146 77605 117582154 49948 20281 988 221158
|
||||
6:2 297172 195596 83623 122133390 52801 21301 929 194667
|
||||
7:2 283391 178078 86378 126622761 55122 22239 928 177150
|
||||
8:2 297655 210359 72995 110246694 45798 19777 1125 209234
|
||||
9:2 297357 202011 79363 119753474 50953 22088 1089 200922
|
||||
10:2 278797 178703 83180 122514385 52969 22726 1128 177575
|
||||
11:2 272661 167669 86978 127342327 55857 24342 1195 166474
|
||||
12:2 293039 204031 73211 110282059 47285 19651 948 203083
|
||||
13:2 289502 196762 76803 114712942 49339 20547 1016 195746
|
||||
14:2 264446 169609 78292 115715605 50459 21017 982 168627
|
||||
15:2 260968 163660 80142 116811793 51483 21281 1064 162596
|
||||
|
||||
With this change:
|
||||
domainstats: domain0
|
||||
cpu cnt bln fld imb gain hgain nobusyq nobusyg
|
||||
0:2 272347 187380 77455 105420270 24975 1 953 186427
|
||||
1:2 267276 172360 86234 116242264 28087 6 1028 171332
|
||||
2:2 259769 156777 93281 123243134 30555 1 1043 155734
|
||||
3:2 250870 143129 97627 127370868 32026 6 1188 141941
|
||||
4:2 248422 177116 64096 78261112 22202 2 757 176359
|
||||
5:2 275595 180683 84950 116075022 29400 6 778 179905
|
||||
6:2 262418 162609 88944 119256898 31056 4 817 161792
|
||||
7:2 252204 147946 92646 122388300 32879 4 824 147122
|
||||
8:2 262335 172239 81631 110477214 26599 4 864 171375
|
||||
9:2 261563 164775 88016 117203621 28331 3 849 163926
|
||||
10:2 243389 140949 93379 121353071 29585 2 909 140040
|
||||
11:2 242795 134651 98310 124768957 30895 2 1016 133635
|
||||
12:2 255234 166622 79843 104696912 26483 4 746 165876
|
||||
13:2 244944 151595 83855 109808099 27787 3 801 150794
|
||||
14:2 241301 140982 89935 116954383 30403 6 845 140137
|
||||
15:2 232271 128564 92821 119185207 31207 4 1416 127148
|
||||
|
||||
Signed-off-by: Venkatesh Pallipadi <venki@google.com>
|
||||
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
LKML-Reference: <1284167957-3675-1-git-send-email-venki@google.com>
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
---
|
||||
|
||||
[ 2.6.35.x backport ]
|
||||
|
||||
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
|
||||
index a171138..aa16cf1 100644
|
||||
--- a/kernel/sched_fair.c
|
||||
+++ b/kernel/sched_fair.c
|
||||
@@ -3031,7 +3031,14 @@ redo:
|
||||
|
||||
if (!ld_moved) {
|
||||
schedstat_inc(sd, lb_failed[idle]);
|
||||
- sd->nr_balance_failed++;
|
||||
+ /*
|
||||
+ * Increment the failure counter only on periodic balance.
|
||||
+ * We do not want newidle balance, which can be very
|
||||
+ * frequent, pollute the failure counter causing
|
||||
+ * excessive cache_hot migrations and active balances.
|
||||
+ */
|
||||
+ if (idle != CPU_NEWLY_IDLE)
|
||||
+ sd->nr_balance_failed++;
|
||||
|
||||
if (need_active_balance(sd, sd_idle, idle)) {
|
||||
raw_spin_lock_irqsave(&busiest->lock, flags);
|
2
sources
2
sources
|
@ -1,2 +1,2 @@
|
|||
091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2
|
||||
573170b7d56d30d06d26b705d4794615 patch-2.6.35.11.bz2
|
||||
c835a799c89c296b332077a5390fcc68 patch-2.6.35.12.bz2
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
Fix TPM timeouts on boot (#530393)
|
||||
|
||||
--- a/drivers/char/tpm/tpm.c
|
||||
+++ a/drivers/char/tpm/tpm.c
|
||||
@@ -354,12 +354,14 @@ unsigned long tpm_calc_ordinal_duration(struct tpm_chip *chip,
|
||||
tpm_protected_ordinal_duration[ordinal &
|
||||
TPM_PROTECTED_ORDINAL_MASK];
|
||||
|
||||
- if (duration_idx != TPM_UNDEFINED)
|
||||
+ if (duration_idx != TPM_UNDEFINED) {
|
||||
duration = chip->vendor.duration[duration_idx];
|
||||
- if (duration <= 0)
|
||||
+ /* if duration is 0, it's because chip->vendor.duration wasn't */
|
||||
+ /* filled yet, so we set the lowest timeout just to give enough */
|
||||
+ /* time to tpm_get_timeouts() succeed */
|
||||
+ return (duration <= 0 ? HZ : duration);
|
||||
+ } else
|
||||
return 2 * 60 * HZ;
|
||||
- else
|
||||
- return duration;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tpm_calc_ordinal_duration);
|
||||
|
||||
|
Loading…
Reference in New Issue