From 3472dfdd752e2e37edd2b2dc477fe946922b5c7c Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Thu, 31 Mar 2011 17:04:46 -0400 Subject: [PATCH] update to 2.6.35.12 --- add-macbookair3-ids.patch | 263 ------------------ ...ix-can_beacon_sec_chan-reenable-ht40.patch | 46 --- config-x86-generic | 2 + config-x86_64-generic | 2 + ...rity_d_instantiate-in-d_obtain_alias.patch | 65 ----- ...function-called-from-invalid-context.patch | 76 ----- iwl3945-remove-plcp-check.patch | 36 --- kernel.spec | 46 +-- ...x-fs-gs-reload-oops-with-invalid-ldt.patch | 161 ----------- linux-2.6-upstream-reverts.patch | 193 +++++++++++++ ...synchronization-when-migrating-tasks.patch | 8 +- ...-sched_avg_update-to-update_cpu_load.patch | 58 ---- ...cache_nice_tries-only-on-periodic-lb.patch | 93 ------- sources | 2 +- tpm-fix-stall-on-boot.patch | 24 -- 15 files changed, 207 insertions(+), 868 deletions(-) delete mode 100644 add-macbookair3-ids.patch delete mode 100644 cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch delete mode 100644 fs-call-security_d_instantiate-in-d_obtain_alias.patch delete mode 100644 hostap_cs-fix-sleeping-function-called-from-invalid-context.patch delete mode 100644 iwl3945-remove-plcp-check.patch delete mode 100644 kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch delete mode 100644 sched-25-move-sched_avg_update-to-update_cpu_load.patch delete mode 100644 sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch delete mode 100644 tpm-fix-stall-on-boot.patch diff --git a/add-macbookair3-ids.patch b/add-macbookair3-ids.patch deleted file mode 100644 index e817c078e..000000000 --- a/add-macbookair3-ids.patch +++ /dev/null @@ -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 */ - }; - diff --git a/cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch b/cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch deleted file mode 100644 index 5ac9d2e6a..000000000 --- a/cfg80211-fix-can_beacon_sec_chan-reenable-ht40.patch +++ /dev/null @@ -1,46 +0,0 @@ -From sgruszka@redhat.com Wed Mar 16 09:53:12 2011 -From: Stanislaw Gruszka -To: kernel@lists.fedoraproject.org, Kyle McMartin -Cc: Stanislaw Gruszka , 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 - -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 -Cc: stable@kernel.org -Acked-by: Luis R. Rodriguez ---- - 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 - diff --git a/config-x86-generic b/config-x86-generic index f1686da59..65e788a08 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -492,3 +492,5 @@ CONFIG_LPC_SCH=m CONFIG_INTEL_IDLE=y CONFIG_PCI_CNB20LE_QUIRK=y + +CONFIG_IRQ_TIME_ACCOUNTING=y diff --git a/config-x86_64-generic b/config-x86_64-generic index 79b74c2af..4c4924ccb 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -409,3 +409,5 @@ CONFIG_I7300_IDLE=m CONFIG_PCI_CNB20LE_QUIRK=y CONFIG_HP_ILO=m + +CONFIG_IRQ_TIME_ACCOUNTING=y diff --git a/fs-call-security_d_instantiate-in-d_obtain_alias.patch b/fs-call-security_d_instantiate-in-d_obtain_alias.patch deleted file mode 100644 index b151c0a70..000000000 --- a/fs-call-security_d_instantiate-in-d_obtain_alias.patch +++ /dev/null @@ -1,65 +0,0 @@ -From linux-fsdevel-owner@vger.kernel.org Thu Nov 18 21:03:11 2010 -From: Josef Bacik -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 ---- -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 - diff --git a/hostap_cs-fix-sleeping-function-called-from-invalid-context.patch b/hostap_cs-fix-sleeping-function-called-from-invalid-context.patch deleted file mode 100644 index 5d3a91729..000000000 --- a/hostap_cs-fix-sleeping-function-called-from-invalid-context.patch +++ /dev/null @@ -1,76 +0,0 @@ -From sgruszka@redhat.com Mon Jan 17 08:03:52 2011 -From: Stanislaw Gruszka -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 ---- - 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 - diff --git a/iwl3945-remove-plcp-check.patch b/iwl3945-remove-plcp-check.patch deleted file mode 100644 index 822b247d7..000000000 --- a/iwl3945-remove-plcp-check.patch +++ /dev/null @@ -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 -Acked-by: Wey-Yi Guy -Signed-off-by: Stanislaw Gruszka ---- - 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, --- - diff --git a/kernel.spec b/kernel.spec index 06c837f15..0951de217 100644 --- a/kernel.spec +++ b/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 2.6.35.12-88 +- Update to longterm 2.6.35.12, drop upstream patches. + * Wed Mar 23 2011 Kyle McMartin - Backport 3e9d08e: "virtio_net: Add schedule check to napi_enable call" diff --git a/kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch b/kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch deleted file mode 100644 index 5b0f8036d..000000000 --- a/kvm-fix-fs-gs-reload-oops-with-invalid-ldt.patch +++ /dev/null @@ -1,161 +0,0 @@ -From: Avi Kivity -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 -Signed-off-by: Marcelo Tosatti ---- - -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); diff --git a/linux-2.6-upstream-reverts.patch b/linux-2.6-upstream-reverts.patch index 9eb484875..50f70fd31 100644 --- a/linux-2.6-upstream-reverts.patch +++ b/linux-2.6-upstream-reverts.patch @@ -137,3 +137,196 @@ Signed-off-by: Greg Kroah-Hartman /* 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 +Date: Sun Jan 16 10:09:13 2011 -0300 + + radio-aimslab.c needs #include + + 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 + Signed-off-by: Mauro Carvalho Chehab + Signed-off-by: Andi Kleen + Cc: dann frazier + Signed-off-by: Greg Kroah-Hartman + +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 /* Modules */ + #include /* Initdata */ + #include /* request_region */ ++#include /* msleep */ + #include /* kernel radio structs */ + #include /* for KERNEL_VERSION MACRO */ + #include /* outb, outb_p */ + +commit 9c198dad83c19a05a11b5a195242f3e8dcbe55f4 +Author: Mauro Carvalho Chehab +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 + Signed-off-by: Mauro Carvalho Chehab + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Andi Kleen + +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 /* Modules */ + #include /* Initdata */ + #include /* request_region */ +-#include /* udelay */ + #include /* kernel radio structs */ + #include /* for KERNEL_VERSION MACRO */ + #include /* 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 +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 + Signed-off-by: Mauro Carvalho Chehab + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Andi Kleen + +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 +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 + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Andi Kleen + +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] = { diff --git a/sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch b/sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch index 466dd2d33..bcdaac92a 100644 --- a/sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch +++ b/sched-20-fix-rq-clock-synchronization-when-migrating-tasks.patch @@ -24,15 +24,15 @@ Signed-off-by: Ingo Molnar --- 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); - diff --git a/sched-25-move-sched_avg_update-to-update_cpu_load.patch b/sched-25-move-sched_avg_update-to-update_cpu_load.patch deleted file mode 100644 index 556c8cee5..000000000 --- a/sched-25-move-sched_avg_update-to-update_cpu_load.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Suresh Siddha -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 -Signed-off-by: Peter Zijlstra -LKML-Reference: <1282596171.2694.3.camel@sbsiddha-MOBL3> -Signed-off-by: Ingo Molnar ---- - -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; - diff --git a/sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch b/sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch deleted file mode 100644 index 5277dc75d..000000000 --- a/sched-35-increment-cache_nice_tries-only-on-periodic-lb.patch +++ /dev/null @@ -1,93 +0,0 @@ -From: Venkatesh Pallipadi -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 -Signed-off-by: Peter Zijlstra -LKML-Reference: <1284167957-3675-1-git-send-email-venki@google.com> -Signed-off-by: Ingo Molnar ---- - -[ 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); diff --git a/sources b/sources index 5f397789f..3cdf6380f 100644 --- a/sources +++ b/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 diff --git a/tpm-fix-stall-on-boot.patch b/tpm-fix-stall-on-boot.patch deleted file mode 100644 index adba40a6e..000000000 --- a/tpm-fix-stall-on-boot.patch +++ /dev/null @@ -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); - -