diff options
| author | Alexandre Oliva <lxoliva@fsfla.org> | 2012-04-18 20:32:17 +0000 |
|---|---|---|
| committer | Alexandre Oliva <lxoliva@fsfla.org> | 2012-04-18 20:32:17 +0000 |
| commit | b82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b (patch) | |
| tree | 33879de14c8bc2d598f7e96a587461a3b3214780 /freed-ora/current/f15 | |
| parent | 87b302263368cf8087fd2c7ceb7c281f685a2701 (diff) | |
| download | linux-libre-raptor-b82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b.tar.gz linux-libre-raptor-b82c4eba9d3bc646fb3cbaf9d5ae8d3a60a89b3b.zip | |
2.6.43.2-2.fc15.gnu
Diffstat (limited to 'freed-ora/current/f15')
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; - } |

