summaryrefslogtreecommitdiffstats
path: root/freed-ora/current/f15
diff options
context:
space:
mode:
authorAlexandre Oliva <lxoliva@fsfla.org>2012-04-18 20:32:17 +0000
committerAlexandre Oliva <lxoliva@fsfla.org>2012-04-18 20:32:17 +0000
commitb82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b (patch)
tree33879de14c8bc2d598f7e96a587461a3b3214780 /freed-ora/current/f15
parent87b302263368cf8087fd2c7ceb7c281f685a2701 (diff)
downloadlinux-libre-raptor-b82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b.tar.gz
linux-libre-raptor-b82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b.zip
2.6.43.2-2.fc15.gnu
Diffstat (limited to 'freed-ora/current/f15')
-rw-r--r--freed-ora/current/f15/ACPICA-Fix-regression-in-FADT-revision-checks.patch58
-rw-r--r--freed-ora/current/f15/acpi-ensure-thermal-limits-match-cpu-freq.patch146
-rwxr-xr-xfreed-ora/current/f15/deblob-check13
-rw-r--r--freed-ora/current/f15/drivers-media-update.patch42
-rw-r--r--freed-ora/current/f15/hibernate-watermark.patch147
-rw-r--r--freed-ora/current/f15/iwlegacy-do-not-nulify-il-vif-on-reset.patch77
-rw-r--r--freed-ora/current/f15/kernel.spec51
-rw-r--r--freed-ora/current/f15/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch42
-rw-r--r--freed-ora/current/f15/nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch32
-rw-r--r--freed-ora/current/f15/patch-3.3-gnu-3.3.1-gnu.xz.sign7
-rw-r--r--freed-ora/current/f15/patch-3.3-gnu-3.3.2-gnu.xz.sign7
-rw-r--r--freed-ora/current/f15/sources2
-rw-r--r--freed-ora/current/f15/uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch113
13 files changed, 166 insertions, 571 deletions
diff --git a/freed-ora/current/f15/ACPICA-Fix-regression-in-FADT-revision-checks.patch b/freed-ora/current/f15/ACPICA-Fix-regression-in-FADT-revision-checks.patch
deleted file mode 100644
index d6b590389..000000000
--- a/freed-ora/current/f15/ACPICA-Fix-regression-in-FADT-revision-checks.patch
+++ /dev/null
@@ -1,58 +0,0 @@
- commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39),
-"Remove use of unreliable FADT revision field" causes regression
-for old P4 systems because now cst_control and other fields are
-not reset to 0.
-
- The effect is that acpi_processor_power_init will notice
-cst_control != 0 and a write to CST_CNT register is performed
-that should not happen. As result, the system oopses after the
-"No _CST, giving up" message, sometimes in acpi_ns_internalize_name,
-sometimes in acpi_ns_get_type, usually at random places. May be
-during migration to CPU 1 in acpi_processor_get_throttling.
-
- Every one of these settings help to avoid this problem:
- - acpi=off
- - processor.nocst=1
- - maxcpus=1
-
- The fix is to update acpi_gbl_FADT.header.length after
-the original value is used to check for old revisions.
-
-Signed-off-by: Julian Anastasov <ja@ssi.bg>
----
- drivers/acpi/acpica/tbfadt.c | 8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
-index c5d8704..4c9c760 100644
---- a/drivers/acpi/acpica/tbfadt.c
-+++ b/drivers/acpi/acpica/tbfadt.c
-@@ -363,10 +363,6 @@ static void acpi_tb_convert_fadt(void)
- u32 address32;
- u32 i;
-
-- /* Update the local FADT table header length */
--
-- acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
--
- /*
- * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
- * Later code will always use the X 64-bit field. Also, check for an
-@@ -408,6 +404,10 @@ static void acpi_tb_convert_fadt(void)
- acpi_gbl_FADT.boot_flags = 0;
- }
-
-+ /* Update the local FADT table header length */
-+
-+ acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
-+
- /*
- * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
- * generic address structures as necessary. Later code will always use
---
-1.7.3.4
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file
diff --git a/freed-ora/current/f15/acpi-ensure-thermal-limits-match-cpu-freq.patch b/freed-ora/current/f15/acpi-ensure-thermal-limits-match-cpu-freq.patch
deleted file mode 100644
index 9d97b6024..000000000
--- a/freed-ora/current/f15/acpi-ensure-thermal-limits-match-cpu-freq.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 9a056a5843ff83db987d6e18625f4a2ee64b5450 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg@redhat.com>
-Date: Tue, 30 Aug 2011 10:07:24 -0400
-Subject: [PATCH] ACPI: Ensure thermal limits match CPU frequencies
-
-The ACPI thermal management code supports slowing down a CPU when it's
-overheating. Right now that's done by choosing to run it at 100%, 75%, 50%
-or 25% of full speed. However, most CPUs do not allow an arbitrary
-frequency to be set and so will run at the first frequency below that value.
-This doesn't match the intent of the specification, which is to drop the
-frequency state by state until the temperature stabalises. Fix this up
-so it uses actual frequencies rather than percentages.
-
-Reported by: Gene Snider <snider6982@comcast.net>
-Signed-off-by: Matthew Garrett <mjg@redhat.com>
----
- drivers/acpi/Kconfig | 1 +
- drivers/acpi/processor_thermal.c | 45 +++++++++++++++++++++----------------
- 2 files changed, 26 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
-index de0e3df..7d1bdb5 100644
---- a/drivers/acpi/Kconfig
-+++ b/drivers/acpi/Kconfig
-@@ -185,6 +185,7 @@ config ACPI_PROCESSOR
- tristate "Processor"
- select THERMAL
- select CPU_IDLE
-+ select CPU_FREQ_TABLE
- default y
- help
- This driver installs ACPI as the idle handler for Linux and uses
-diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
-index 870550d..1c4eb60 100644
---- a/drivers/acpi/processor_thermal.c
-+++ b/drivers/acpi/processor_thermal.c
-@@ -52,10 +52,8 @@ ACPI_MODULE_NAME("processor_thermal");
- * _any_ cpufreq driver and not only the acpi-cpufreq driver.
- */
-
--#define CPUFREQ_THERMAL_MIN_STEP 0
--#define CPUFREQ_THERMAL_MAX_STEP 3
-
--static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_reduction_pctg);
-+static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_limit_state);
- static unsigned int acpi_thermal_cpufreq_is_init = 0;
-
- static int cpu_has_cpufreq(unsigned int cpu)
-@@ -70,19 +68,19 @@ static int acpi_thermal_cpufreq_notifier(struct notifier_block *nb,
- unsigned long event, void *data)
- {
- struct cpufreq_policy *policy = data;
-- unsigned long max_freq = 0;
-+ int state = per_cpu(cpufreq_thermal_limit_state, policy->cpu);
-+ struct cpufreq_frequency_table *table;
-
- if (event != CPUFREQ_ADJUST)
-- goto out;
-+ return 0;
-+
-+ table = cpufreq_frequency_get_table(policy->cpu);
-
-- max_freq = (
-- policy->cpuinfo.max_freq *
-- (100 - per_cpu(cpufreq_thermal_reduction_pctg, policy->cpu) * 20)
-- ) / 100;
-+ if (!table)
-+ return 0;
-
-- cpufreq_verify_within_limits(policy, 0, max_freq);
-+ cpufreq_verify_within_limits(policy, 0, table[state].frequency);
-
-- out:
- return 0;
- }
-
-@@ -92,10 +90,21 @@ static struct notifier_block acpi_thermal_cpufreq_notifier_block = {
-
- static int cpufreq_get_max_state(unsigned int cpu)
- {
-+ int count = 0;
-+ struct cpufreq_frequency_table *table;
-+
- if (!cpu_has_cpufreq(cpu))
- return 0;
-
-- return CPUFREQ_THERMAL_MAX_STEP;
-+ table = cpufreq_frequency_get_table(cpu);
-+
-+ if (!table)
-+ return 0;
-+
-+ while (table[count].frequency != CPUFREQ_TABLE_END)
-+ count++;
-+
-+ return count;
- }
-
- static int cpufreq_get_cur_state(unsigned int cpu)
-@@ -103,7 +112,7 @@ static int cpufreq_get_cur_state(unsigned int cpu)
- if (!cpu_has_cpufreq(cpu))
- return 0;
-
-- return per_cpu(cpufreq_thermal_reduction_pctg, cpu);
-+ return per_cpu(cpufreq_thermal_limit_state, cpu);
- }
-
- static int cpufreq_set_cur_state(unsigned int cpu, int state)
-@@ -111,7 +120,7 @@ static int cpufreq_set_cur_state(unsigned int cpu, int state)
- if (!cpu_has_cpufreq(cpu))
- return 0;
-
-- per_cpu(cpufreq_thermal_reduction_pctg, cpu) = state;
-+ per_cpu(cpufreq_thermal_limit_state, cpu) = state;
- cpufreq_update_policy(cpu);
- return 0;
- }
-@@ -122,7 +131,7 @@ void acpi_thermal_cpufreq_init(void)
-
- for (i = 0; i < nr_cpu_ids; i++)
- if (cpu_present(i))
-- per_cpu(cpufreq_thermal_reduction_pctg, i) = 0;
-+ per_cpu(cpufreq_thermal_limit_state, i) = 0;
-
- i = cpufreq_register_notifier(&acpi_thermal_cpufreq_notifier_block,
- CPUFREQ_POLICY_NOTIFIER);
-@@ -170,15 +179,11 @@ int acpi_processor_get_limit_info(struct acpi_processor *pr)
- return 0;
- }
-
--/* thermal coolign device callbacks */
-+/* thermal cooling device callbacks */
- static int acpi_processor_max_state(struct acpi_processor *pr)
- {
- int max_state = 0;
-
-- /*
-- * There exists four states according to
-- * cpufreq_thermal_reduction_ptg. 0, 1, 2, 3
-- */
- max_state += cpufreq_get_max_state(pr->id);
- if (pr->flags.throttling)
- max_state += (pr->throttling.state_count -1);
---
-1.7.6
-
diff --git a/freed-ora/current/f15/deblob-check b/freed-ora/current/f15/deblob-check
index a600a2c56..581bc8f6d 100755
--- a/freed-ora/current/f15/deblob-check
+++ b/freed-ora/current/f15/deblob-check
@@ -1,6 +1,6 @@
#! /bin/sh
-# deblob-check version 2012-04-14
+# deblob-check version 2012-04-16
# Inspired in gNewSense's find-firmware script.
# Written by Alexandre Oliva <lxoliva@fsfla.org>
@@ -1145,7 +1145,7 @@ set_except () {
accept '[ ]-[ ]move[ ]firmware[ ]loading[ ]to[ ]request_firmware[(][)]' drivers/staging/slicoss/README
accept 'config[ ]FIRMWARE_IN_KERNEL.*let[ ]firmware[ ]be[ ]loaded[ ]from[ ]userspace\.' drivers/base/Kconfig
accept '[ ]*and[ ]request_firmware[(][)][ ]in[ ]the[ ]source' drivers/base/Kconfig
- accept '\(static[ ]int[\n ]\)\?_request_firmware[(]const[ ]struct[ ]firmware[ ][*][*]firmware_p,[^{]*[\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*[\n]\+[}][\n]' drivers/base/firmware_class.c
+ accept '\(static[ ]\(int\|void\)[\n ]\)\?_request_firmware\(_prepare\|_cleanup\)\?[(]const[ ]struct[ ]firmware[ ][*][*]\?firmware\(_p\)\?[,)][^{]*[\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*[\n]\+[}][\n]' drivers/base/firmware_class.c
accept 'static[ ]int[\n ]request_firmware_work_func[(]void[ ][*]arg[)][\n][{]\([\n]\+[^\n}][^\n]*\)*ret[ ]=[ ]_request_firmware[(][^\n]*\([\n]\+[^\n}][^\n]*\)*[\n]\+[}][\n]' drivers/base/firmware_class.c
accept '[/][*][*][\n][ ][*][ ]request_firmware:[ ]-[ ]send[ ]firmware[ ][^{]*[\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*[\n]\+[}][\n]' drivers/base/firmware_class.c
accept '[/][*][*][\n][ ][*][ ]request_firmware_nowait\(:\|[ ]-\)[ ]asynchronous[ ]version[^{]*[\n][{]\([\n]\+[^\n}][^\n]*\)*[^\n]*[\n]\+[}][\n]' drivers/base/firmware_class.c
@@ -3008,6 +3008,15 @@ set_except () {
accept 'P[13]\([\n]#[^\n]*\)*[\n]*\([\n][0-9 ]*\)\+' drivers/video/logo/logo_libre_clut224.ppm
;;
+ */patch-3.3*gnu*)
+ # These patterns are *way* too broad for general use, but they're fine
+ # for patches between deblob-checked releases.
+ accept 'static[ ]\(int\|void\)[ ]_request_firmware' drivers/base/firmware_class.c
+ accept 'request_firmware[(]const' drivers/base/firmware_class.c
+ accept '[ ]*ret[ ]=[ ]_request_firmware' drivers/base/firmware_class.c
+ accept '[ ]*_request_firmware_cleanup' drivers/base/firmware_class.c
+ ;;
+
*/drivers-media-update.patch)
blobname 'dvb-usb-lme2510c\?-\(lg\|s7395\)\.fw' drivers/media/dvb/dvb-usb/lmedm04.c
blobname 'dvb-usb-lme2510c\?-s0194\.fw' drivers/media/dvb/dvb-usb/lmedm04.c
diff --git a/freed-ora/current/f15/drivers-media-update.patch b/freed-ora/current/f15/drivers-media-update.patch
index 016f93909..3558c325b 100644
--- a/freed-ora/current/f15/drivers-media-update.patch
+++ b/freed-ora/current/f15/drivers-media-update.patch
@@ -10441,51 +10441,15 @@ Index: linux-3.3.x86_64/drivers/media/dvb/dvb-core/dvb_frontend.c
===================================================================
--- linux-3.3.x86_64.orig/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ linux-3.3.x86_64/drivers/media/dvb/dvb-core/dvb_frontend.c
-@@ -143,10 +143,12 @@ struct dvb_frontend_private {
- static void dvb_frontend_wakeup(struct dvb_frontend *fe);
- static int dtv_get_frontend(struct dvb_frontend *fe,
- struct dvb_frontend_parameters *p_out);
-+static int dtv_property_legacy_params_sync(struct dvb_frontend *fe,
-+ struct dvb_frontend_parameters *p);
-
+@@ -148,7 +148,7 @@ static int dtv_property_legacy_params_sy
+
static bool has_get_frontend(struct dvb_frontend *fe)
{
- return fe->ops.get_frontend;
+ return fe->ops.get_frontend != NULL;
}
-
+
/*
-@@ -655,6 +657,8 @@ restart:
- dprintk("%s: Retune requested, FESTATE_RETUNE\n", __func__);
- re_tune = true;
- fepriv->state = FESTATE_TUNED;
-+ } else {
-+ re_tune = false;
- }
-
- if (fe->ops.tune)
-@@ -695,6 +699,7 @@ restart:
- fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
- fepriv->delay = HZ / 2;
- }
-+ dtv_property_legacy_params_sync(fe, &fepriv->parameters_out);
- fe->ops.read_status(fe, &s);
- if (s != fepriv->status) {
- dvb_frontend_add_event(fe, s); /* update event list */
-@@ -1831,6 +1836,13 @@ static int dtv_set_frontend(struct dvb_f
- return -EINVAL;
-
- /*
-+ * Initialize output parameters to match the values given by
-+ * the user. FE_SET_FRONTEND triggers an initial frontend event
-+ * with status = 0, which copies output parameters to userspace.
-+ */
-+ dtv_property_legacy_params_sync(fe, &fepriv->parameters_out);
-+
-+ /*
- * Be sure that the bandwidth will be filled for all
- * non-satellite systems, as tuners need to know what
- * low pass/Nyquist half filter should be applied, in
Index: linux-3.3.x86_64/drivers/media/common/tuners/xc5000.c
===================================================================
--- linux-3.3.x86_64.orig/drivers/media/common/tuners/xc5000.c
diff --git a/freed-ora/current/f15/hibernate-watermark.patch b/freed-ora/current/f15/hibernate-watermark.patch
index 2cb75e6ef..7031e167f 100644
--- a/freed-ora/current/f15/hibernate-watermark.patch
+++ b/freed-ora/current/f15/hibernate-watermark.patch
@@ -1,7 +1,40 @@
+Hi Rafael,
---- a/kernel/power/swap.c
-+++ a/kernel/power/swap.c
-@@ -6,7 +6,7 @@
+One more version. Heeding Per's suggestion to optimise when
+CONFIG_HIGHMEM is not configured.
+
+---------------------------------------
+Hibernation/thaw fixes/improvements:
+
+1. Calculate the number of required free pages based on non-high memory
+pages only, because that is where the buffers will come from.
+
+2. Do not allocate memory for buffers from emergency pools, unless
+absolutely required. Do not warn about and do not retry non-essential
+failed allocations.
+
+3. Do not check the amount of free pages left on every single page
+write, but wait until one map is completely populated and then check.
+
+4. Set maximum number of pages for read buffering consistently, instead
+of inadvertently depending on the size of the sector type.
+
+5. Fix copyright line, which I missed when I submitted the hibernation
+threading patch.
+
+6. Dispense with bit shifting arithmetic to improve readability.
+
+Signed-off-by: Bojan Smojver <bojan@rexursive.com>
+Signed-off-by: Per Olofsson <pelle@debian.org>
+---
+ kernel/power/swap.c | 76 +++++++++++++++++++++++++++++++++++++++------------
+ 1 files changed, 58 insertions(+), 18 deletions(-)
+
+diff --git a/kernel/power/swap.c b/kernel/power/swap.c
+index 8742fd0..8a1c293 100644
+--- a/kernel/power/swap.c
++++ b/kernel/power/swap.c
+@@ -6,7 +6,7 @@
*
* Copyright (C) 1998,2001-2005 Pavel Machek <pavel@ucw.cz>
* Copyright (C) 2006 Rafael J. Wysocki <rjw@sisk.pl>
@@ -10,23 +43,44 @@
*
* This file is released under the GPLv2.
*
-@@ -51,6 +51,15 @@
+@@ -51,6 +51,36 @@
#define MAP_PAGE_ENTRIES (PAGE_SIZE / sizeof(sector_t) - 1)
+/*
++ * Number of free pages that are not high.
++ */
++#ifdef CONFIG_HIGHMEM
++static unsigned long low_free_pages(void)
++{
++ struct zone *zone;
++ unsigned long free = 0;
++
++ for_each_populated_zone(zone)
++ if (!is_highmem(zone))
++ free += zone_page_state(zone, NR_FREE_PAGES);
++ return free;
++}
++#else
++static inline unsigned long low_free_pages(void)
++{
++ return nr_free_pages();
++}
++#endif
++
++/*
+ * Number of pages required to be kept free while writing the image. Always
-+ * three quarters of all available pages before the writing starts.
++ * half of all available low pages before the writing starts.
+ */
+static inline unsigned long reqd_free_pages(void)
+{
-+ return (nr_free_pages() / 4) * 3;
++ return low_free_pages() / 2;
+}
+
struct swap_map_page {
sector_t entries[MAP_PAGE_ENTRIES];
sector_t next_swap;
-@@ -72,7 +81,7 @@ struct swap_map_handle {
+@@ -72,7 +102,7 @@ struct swap_map_handle {
sector_t cur_swap;
sector_t first_sector;
unsigned int k;
@@ -35,7 +89,27 @@
u32 crc32;
};
-@@ -316,8 +325,7 @@ static int get_swap_writer(struct swap_map_handle *handle)
+@@ -265,14 +295,17 @@ static int write_page(void *buf, sector_t offset, struct bio **bio_chain)
+ return -ENOSPC;
+
+ if (bio_chain) {
+- src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH);
++ src = (void *)__get_free_page(__GFP_WAIT | __GFP_NOWARN |
++ __GFP_NORETRY);
+ if (src) {
+ copy_page(src, buf);
+ } else {
+ ret = hib_wait_on_bio_chain(bio_chain); /* Free pages */
+ if (ret)
+ return ret;
+- src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH);
++ src = (void *)__get_free_page(__GFP_WAIT |
++ __GFP_NOWARN |
++ __GFP_NORETRY);
+ if (src) {
+ copy_page(src, buf);
+ } else {
+@@ -316,8 +349,7 @@ static int get_swap_writer(struct swap_map_handle *handle)
goto err_rel;
}
handle->k = 0;
@@ -45,25 +119,31 @@
handle->first_sector = handle->cur_swap;
return 0;
err_rel:
-@@ -352,11 +360,15 @@ static int swap_write_page(struct swap_map_handle *handle, void *buf,
+@@ -351,12 +383,17 @@ static int swap_write_page(struct swap_map_handle *handle, void *buf,
+ clear_page(handle->cur);
handle->cur_swap = offset;
handle->k = 0;
- }
+- }
- if (bio_chain && ++handle->written > handle->nr_free_pages) {
-+ if (bio_chain && nr_free_pages() <= handle->reqd_free_pages) {
- error = hib_wait_on_bio_chain(bio_chain);
- if (error)
- goto out;
+- error = hib_wait_on_bio_chain(bio_chain);
+- if (error)
+- goto out;
- handle->written = 0;
-+ /*
-+ * Recalculate the number of required free pages, to make sure
-+ * we never take more than a quarter.
-+ */
-+ handle->reqd_free_pages = reqd_free_pages();
++
++ if (bio_chain && low_free_pages() <= handle->reqd_free_pages) {
++ error = hib_wait_on_bio_chain(bio_chain);
++ if (error)
++ goto out;
++ /*
++ * Recalculate the number of required free pages, to
++ * make sure we never take more than half.
++ */
++ handle->reqd_free_pages = reqd_free_pages();
++ }
}
out:
return error;
-@@ -404,7 +416,7 @@ static int swap_writer_finish(struct swap_map_handle *handle,
+@@ -404,7 +441,7 @@ static int swap_writer_finish(struct swap_map_handle *handle,
#define LZO_THREADS 3
/* Maximum number of pages for read buffering. */
@@ -72,7 +152,7 @@
/**
-@@ -615,10 +627,10 @@ static int save_image_lzo(struct swap_map_handle *handle,
+@@ -615,10 +652,10 @@ static int save_image_lzo(struct swap_map_handle *handle,
}
/*
@@ -86,14 +166,33 @@
/*
* Start the CRC32 thread.
-@@ -1129,8 +1141,9 @@ static int load_image_lzo(struct swap_map_handle *handle,
+@@ -1129,14 +1166,17 @@ static int load_image_lzo(struct swap_map_handle *handle,
/*
* Adjust number of pages for read buffering, in case we are short.
-+ * Never take more than a quarter of all available pages.
++ * Never take more than half of all available low pages.
*/
- read_pages = (nr_free_pages() - snapshot_get_image_size()) >> 1;
-+ read_pages = (nr_free_pages() - snapshot_get_image_size()) / 4;
++ read_pages = (low_free_pages() - snapshot_get_image_size()) / 2;
read_pages = clamp_val(read_pages, LZO_CMP_PAGES, LZO_READ_PAGES);
for (i = 0; i < read_pages; i++) {
+ page[i] = (void *)__get_free_page(i < LZO_CMP_PAGES ?
+ __GFP_WAIT | __GFP_HIGH :
+- __GFP_WAIT);
++ __GFP_WAIT | __GFP_NOWARN |
++ __GFP_NORETRY);
++
+ if (!page[i]) {
+ if (i < LZO_CMP_PAGES) {
+ ring_size = i;
+---------------------------------------
+
+--
+Bojan
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+Please read the FAQ at http://www.tux.org/lkml/ \ No newline at end of file
diff --git a/freed-ora/current/f15/iwlegacy-do-not-nulify-il-vif-on-reset.patch b/freed-ora/current/f15/iwlegacy-do-not-nulify-il-vif-on-reset.patch
deleted file mode 100644
index d1913d708..000000000
--- a/freed-ora/current/f15/iwlegacy-do-not-nulify-il-vif-on-reset.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-This il->vif is dereferenced in different part of iwlegacy code, so do
-not nullify it. This should fix random crashes observed in companion
-with microcode errors i.e. crash in il3945_config_ap().
-
-Additionally this should address also
-WARNING: at drivers/net/wireless/iwlegacy/common.c:4656 il_mac_remove_interface
-at least one of the possible reasons of that warning.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/iwlegacy/3945-mac.c | 2 --
- drivers/net/wireless/iwlegacy/4965-mac.c | 2 --
- drivers/net/wireless/iwlegacy/common.c | 15 ++++++++++++---
- 3 files changed, 12 insertions(+), 7 deletions(-)
-
---- linux-3.3.noarch.orig/drivers/net/wireless/iwlegacy/3945-mac.c
-+++ linux-3.3.noarch/drivers/net/wireless/iwlegacy/3945-mac.c
-@@ -2684,7 +2684,6 @@ il3945_bg_restart(struct work_struct *da
-
- if (test_and_clear_bit(S_FW_ERROR, &il->status)) {
- mutex_lock(&il->mutex);
-- il->ctx.vif = NULL;
- il->is_open = 0;
- mutex_unlock(&il->mutex);
- il3945_down(il);
---- linux-3.3.noarch.orig/drivers/net/wireless/iwlegacy/4965-mac.c
-+++ linux-3.3.noarch/drivers/net/wireless/iwlegacy/4965-mac.c
-@@ -5381,7 +5381,6 @@ il4965_bg_restart(struct work_struct *da
-
- if (test_and_clear_bit(S_FW_ERROR, &il->status)) {
- mutex_lock(&il->mutex);
-- il->ctx.vif = NULL;
- il->is_open = 0;
-
- __il4965_down(il);
---- linux-3.3.noarch.orig/drivers/net/wireless/iwlegacy/common.c
-+++ linux-3.3.noarch/drivers/net/wireless/iwlegacy/common.c
-@@ -4575,6 +4575,7 @@ il_mac_add_interface(struct ieee80211_hw
- struct il_priv *il = hw->priv;
- struct il_vif_priv *vif_priv = (void *)vif->drv_priv;
- int err;
-+ bool reset;
- u32 modes;
-
- D_MAC80211("enter: type %d, addr %pM\n", vif->type, vif->addr);
-@@ -4594,6 +4595,16 @@ il_mac_add_interface(struct ieee80211_hw
- goto out;
- }
-
-+ /*
-+ * We do not support multiple virtual interfaces, but on hardware reset
-+ * we have to add the same interface again.
-+ */
-+ reset = (il->ctx.vif == vif);
-+ if (il->ctx.vif && !reset) {
-+ err = -EOPNOTSUPP;
-+ goto out;
-+ }
-+
- modes = il->ctx.interface_modes | il->ctx.exclusive_interface_modes;
- if (!(modes & BIT(vif->type))) {
- err = -EOPNOTSUPP;
-@@ -4605,8 +4616,11 @@ il_mac_add_interface(struct ieee80211_hw
-
- err = il_setup_interface(il, &il->ctx);
- if (err) {
-- il->ctx.vif = NULL;
-- il->iw_mode = NL80211_IFTYPE_STATION;
-+ IL_WARN("Fail to set mode %d\n", vif->type);
-+ if (!reset) {
-+ il->ctx.vif = NULL;
-+ il->iw_mode = NL80211_IFTYPE_STATION;
-+ }
- }
-
- out:
diff --git a/freed-ora/current/f15/kernel.spec b/freed-ora/current/f15/kernel.spec
index 374aeee0f..7c37d2847 100644
--- a/freed-ora/current/f15/kernel.spec
+++ b/freed-ora/current/f15/kernel.spec
@@ -42,7 +42,7 @@ Summary: The Linux kernel
# When changing real_sublevel below, reset this by hand to 1
# (or to 0 and then use rpmdev-bumpspec).
#
-%global baserelease 5
+%global baserelease 2
%global fedora_build %{baserelease}
# real_sublevel is the 3.x kernel version we're starting with
@@ -89,7 +89,7 @@ Summary: The Linux kernel
%define libres .gnu%{?librev}
# Do we have a -stable update to apply?
-%define stable_update 1
+%define stable_update 2
# Is it a -stable RC?
%define stable_rc 0
# Set rpm version accordingly
@@ -638,7 +638,6 @@ Patch383: linux-2.6-defaults-aspm.patch
Patch390: linux-2.6-defaults-acpi-video.patch
Patch391: linux-2.6-acpi-video-dos.patch
Patch394: linux-2.6-acpi-debug-infinite-loop.patch
-Patch395: acpi-ensure-thermal-limits-match-cpu-freq.patch
Patch396: acpi-sony-nonvs-blacklist.patch
Patch450: linux-2.6-input-kill-stupid-messages.patch
@@ -728,25 +727,15 @@ Patch21232: rt2x00_fix_MCU_request_failures.patch
#rhbz 789644
Patch21237: mcelog-rcu-splat.patch
-#rhbz 727865 730007
-Patch21240: ACPICA-Fix-regression-in-FADT-revision-checks.patch
-
#rhbz 728478
Patch21242: sony-laptop-Enable-keyboard-backlight-by-default.patch
Patch21300: unhandled-irqs-switch-to-polling.patch
-#rhbz 804007
-Patch21305: mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch
-
#rhbz 804957 CVE-2012-1568
Patch21306: shlib_base_randomize.patch
-#rhbz 806433
-Patch21360: uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
-
#rhbz 770476
-Patch21370: iwlegacy-do-not-nulify-il-vif-on-reset.patch
Patch21371: iwlwifi-do-not-nulify-ctx-vif-on-reset.patch
#rhbz 808603
@@ -759,8 +748,6 @@ Patch21385: libata-disable-runtime-pm-for-hotpluggable-port.patch
Patch21390: x86-Use-correct-byte-sized-register-constraint-in-__xchg_op.patch
Patch21391: x86-Use-correct-byte-sized-register-constraint-in-__add.patch
-Patch21501: nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch
-
#rhbz 808207 CVE-2012-1601
Patch21520: KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch
@@ -1253,7 +1240,6 @@ ApplyPatch NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
ApplyPatch linux-2.6-defaults-acpi-video.patch
ApplyPatch linux-2.6-acpi-video-dos.patch
ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch
-ApplyPatch acpi-ensure-thermal-limits-match-cpu-freq.patch
ApplyPatch acpi-sony-nonvs-blacklist.patch
# force UTSNAME to show version 2.6.4X
@@ -1361,15 +1347,9 @@ ApplyPatch bcma-brcmsmac-compat.patch
#rhbz 789644
ApplyPatch mcelog-rcu-splat.patch
-#rhbz 727865 730007
-ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch
-
#rhbz 728478
ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch
-#rhbz 804007
-ApplyPatch mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch
-
#rhbz 804957 CVE-2012-1568
ApplyPatch shlib_base_randomize.patch
@@ -1377,18 +1357,12 @@ ApplyPatch unhandled-irqs-switch-to-polling.patch
ApplyPatch weird-root-dentry-name-debug.patch
-ApplyPatch nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch
-
#rhbz 808207 CVE-2012-1601
ApplyPatch KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch
#rhbz 770476
-ApplyPatch iwlegacy-do-not-nulify-il-vif-on-reset.patch
ApplyPatch iwlwifi-do-not-nulify-ctx-vif-on-reset.patch
-#rhbz 806433
-ApplyPatch uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
-
#rhbz 808603
ApplyPatch wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch
@@ -1512,7 +1486,12 @@ BuildKernel() {
echo USING ARCH=$Arch
make -s ARCH=$Arch oldnoconfig >/dev/null
+%ifarch %{arm}
+ # http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html
+ make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags} KALLSYMS_EXTRA_PASS=1
+%else
make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags}
+%endif
make -s ARCH=$Arch V=1 %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
# Start installing the results
@@ -2046,10 +2025,22 @@ fi
# and build.
%changelog
-* Sat Apr 14 2012 Alexandre Oliva <lxoliva@fsfla.org> -libre
+* Mon Apr 16 2012 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- GNU Linux-libre 3.3.2-gnu.
+
+* Fri Apr 13 2012 Josh Boyer <jwboyer@redhat.com>
+- Reapply rebased drivers-media-update.patch
+
+* Fri Apr 13 2012 Dave Jones <davej@redhat.com> 2.6.43.2-1
+- Linux 3.3.2
+
+* Thu Apr 12 2012 Dennis Gilmore <dennis@ausil.us>
+- KALLSYMS_EXTRA_PASS=1 has to be passed in on the command line so do so only for arm
+
+* Tue Apr 10 2012 Alexandre Oliva <lxoliva@fsfla.org> -libre Sat Apr 14
- Deblob and adjust drivers-media-update.patch.
-* Tue Apr 10 2012 Mauro Carvalho Chehab <mchehab@redhat.com> 3.3.1-5
+* Tue Apr 10 2012 Mauro Carvalho Chehab <mchehab@redhat.com>
- Backport dvb-core and a few driver fixes from media tree (rhbz808871)
* Tue Apr 10 2012 Josh Boyer <jwboyer@redhat.com>
diff --git a/freed-ora/current/f15/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch b/freed-ora/current/f15/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch
deleted file mode 100644
index accda8afc..000000000
--- a/freed-ora/current/f15/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Is possible that we will arm the tid_rx->reorder_timer after
-del_timer_sync() in ___ieee80211_stop_rx_ba_session(). We need to stop
-timer after RCU grace period finish, so move it to
-ieee80211_free_tid_rx(). Timer will not be armed again, as
-rcu_dereference(sta->ampdu_mlme.tid_rx[tid]) will return NULL.
-
-Debug object detected problem with the following warning:
-ODEBUG: free active (active state 0) object type: timer_list hint: sta_rx_agg_reorder_timer_expired+0x0/0xf0 [mac80211]
-
-Bug report (with all warning messages):
-https://bugzilla.redhat.com/show_bug.cgi?id=804007
-
-Reported-by: "jan p. springer" <jsd@igroup.org>
-Cc: stable@vger.kernel.org
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- net/mac80211/agg-rx.c | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
-index 1068f66..64d3ce5 100644
---- a/net/mac80211/agg-rx.c
-+++ b/net/mac80211/agg-rx.c
-@@ -49,6 +49,8 @@ static void ieee80211_free_tid_rx(struct rcu_head *h)
- container_of(h, struct tid_ampdu_rx, rcu_head);
- int i;
-
-+ del_timer_sync(&tid_rx->reorder_timer);
-+
- for (i = 0; i < tid_rx->buf_size; i++)
- dev_kfree_skb(tid_rx->reorder_buf[i]);
- kfree(tid_rx->reorder_buf);
-@@ -91,7 +93,6 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,
- tid, WLAN_BACK_RECIPIENT, reason);
-
- del_timer_sync(&tid_rx->session_timer);
-- del_timer_sync(&tid_rx->reorder_timer);
-
- call_rcu(&tid_rx->rcu_head, ieee80211_free_tid_rx);
- }
---
-1.7.1
diff --git a/freed-ora/current/f15/nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch b/freed-ora/current/f15/nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch
deleted file mode 100644
index 981f1f467..000000000
--- a/freed-ora/current/f15/nfs-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncached.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 20e0fa98b751facf9a1101edaefbc19c82616a68 Mon Sep 17 00:00:00 2001
-From: Sachin Prabhu <sprabhu@redhat.com>
-Date: Thu, 22 Mar 2012 16:46:28 +0000
-Subject: [PATCH] Fix length of buffer copied in __nfs4_get_acl_uncached
-
-_copy_from_pages() used to copy data from the temporary buffer to the
-user passed buffer is passed the wrong size parameter when copying
-data. res.acl_len contains both the bitmap and acl lenghts while
-acl_len contains the acl length after adjusting for the bitmap size.
-
-Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
----
- fs/nfs/nfs4proc.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index e809d23..45df7d4 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3712,7 +3712,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- if (acl_len > buflen)
- goto out_free;
- _copy_from_pages(buf, pages, res.acl_data_offset,
-- res.acl_len);
-+ acl_len);
- }
- ret = acl_len;
- out_free:
---
-1.7.7.6
-
diff --git a/freed-ora/current/f15/patch-3.3-gnu-3.3.1-gnu.xz.sign b/freed-ora/current/f15/patch-3.3-gnu-3.3.1-gnu.xz.sign
deleted file mode 100644
index 5a381d8b6..000000000
--- a/freed-ora/current/f15/patch-3.3-gnu-3.3.1-gnu.xz.sign
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.18 (GNU/Linux)
-
-iEYEABECAAYFAk96Kq0ACgkQvLfPh359R6fWHwCgmbnLsYJtRhVpSHsgT1jgHH/c
-m1IAn032sAFGOPOtI+87p92N6zB2raNP
-=mkLg
------END PGP SIGNATURE-----
diff --git a/freed-ora/current/f15/patch-3.3-gnu-3.3.2-gnu.xz.sign b/freed-ora/current/f15/patch-3.3-gnu-3.3.2-gnu.xz.sign
new file mode 100644
index 000000000..8dbc73c9b
--- /dev/null
+++ b/freed-ora/current/f15/patch-3.3-gnu-3.3.2-gnu.xz.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iEYEABECAAYFAk+I/DEACgkQvLfPh359R6dzfwCZAbx5rnBhFLMlRQY7a/oUmcyg
+1eMAn3fs82CqLZQny43hj5Mgy4kq0JtE
+=UZ3G
+-----END PGP SIGNATURE-----
diff --git a/freed-ora/current/f15/sources b/freed-ora/current/f15/sources
index d6aa1cab3..d079e1647 100644
--- a/freed-ora/current/f15/sources
+++ b/freed-ora/current/f15/sources
@@ -1,2 +1,2 @@
5487da14ca81715a469c7594d39722fa linux-libre-3.3-gnu.tar.xz
-58799da6f62daf1e54a256d02792b91f patch-3.3-gnu-3.3.1-gnu.xz
+b43d3bdecfa355bf45bd1154819e3687 patch-3.3-gnu-3.3.2-gnu.xz
diff --git a/freed-ora/current/f15/uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch b/freed-ora/current/f15/uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
deleted file mode 100644
index 5f2a1c006..000000000
--- a/freed-ora/current/f15/uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-@@ -, +, @@
- drivers/media/video/uvc/uvc_video.c | 50 ++++++++++++++++++++++------------
- 1 files changed, 32 insertions(+), 18 deletions(-)
---- a/drivers/media/video/uvc/uvc_video.c
-+++ a/drivers/media/video/uvc/uvc_video.c
-@@ -468,22 +468,30 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
- spin_unlock_irqrestore(&stream->clock.lock, flags);
- }
-
--static int uvc_video_clock_init(struct uvc_streaming *stream)
-+static void uvc_video_clock_reset(struct uvc_streaming *stream)
- {
- struct uvc_clock *clock = &stream->clock;
-
-- spin_lock_init(&clock->lock);
- clock->head = 0;
- clock->count = 0;
-- clock->size = 32;
- clock->last_sof = -1;
- clock->sof_offset = -1;
-+}
-+
-+static int uvc_video_clock_init(struct uvc_streaming *stream)
-+{
-+ struct uvc_clock *clock = &stream->clock;
-+
-+ spin_lock_init(&clock->lock);
-+ clock->size = 32;
-
- clock->samples = kmalloc(clock->size * sizeof(*clock->samples),
- GFP_KERNEL);
- if (clock->samples == NULL)
- return -ENOMEM;
-
-+ uvc_video_clock_reset(stream);
-+
- return 0;
- }
-
-@@ -1424,8 +1432,6 @@ static void uvc_uninit_video(struct uvc_streaming *stream, int free_buffers)
-
- if (free_buffers)
- uvc_free_urb_buffers(stream);
--
-- uvc_video_clock_cleanup(stream);
- }
-
- /*
-@@ -1555,10 +1561,6 @@ static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags)
-
- uvc_video_stats_start(stream);
-
-- ret = uvc_video_clock_init(stream);
-- if (ret < 0)
-- return ret;
--
- if (intf->num_altsetting > 1) {
- struct usb_host_endpoint *best_ep = NULL;
- unsigned int best_psize = 3 * 1024;
-@@ -1683,6 +1685,8 @@ int uvc_video_resume(struct uvc_streaming *stream, int reset)
-
- stream->frozen = 0;
-
-+ uvc_video_clock_reset(stream);
-+
- ret = uvc_commit_video(stream, &stream->ctrl);
- if (ret < 0) {
- uvc_queue_enable(&stream->queue, 0);
-@@ -1819,25 +1823,35 @@ int uvc_video_enable(struct uvc_streaming *stream, int enable)
- uvc_uninit_video(stream, 1);
- usb_set_interface(stream->dev->udev, stream->intfnum, 0);
- uvc_queue_enable(&stream->queue, 0);
-+ uvc_video_clock_cleanup(stream);
- return 0;
- }
-
-- ret = uvc_queue_enable(&stream->queue, 1);
-+ ret = uvc_video_clock_init(stream);
- if (ret < 0)
- return ret;
-
-+ ret = uvc_queue_enable(&stream->queue, 1);
-+ if (ret < 0)
-+ goto error_queue;
-+
- /* Commit the streaming parameters. */
- ret = uvc_commit_video(stream, &stream->ctrl);
-- if (ret < 0) {
-- uvc_queue_enable(&stream->queue, 0);
-- return ret;
-- }
-+ if (ret < 0)
-+ goto error_commit;
-
- ret = uvc_init_video(stream, GFP_KERNEL);
-- if (ret < 0) {
-- usb_set_interface(stream->dev->udev, stream->intfnum, 0);
-- uvc_queue_enable(&stream->queue, 0);
-- }
-+ if (ret < 0)
-+ goto error_video;
-+
-+ return 0;
-+
-+error_video:
-+ usb_set_interface(stream->dev->udev, stream->intfnum, 0);
-+error_commit:
-+ uvc_queue_enable(&stream->queue, 0);
-+error_queue:
-+ uvc_video_clock_cleanup(stream);
-
- return ret;
- }
OpenPOWER on IntegriCloud