packages (LINUX_2_6_38): kernel/kernel-tuxonice.patch, kernel/kernel-vserve...

arekm arekm at pld-linux.org
Sun May 22 08:18:47 CEST 2011


Author: arekm                        Date: Sun May 22 06:18:47 2011 GMT
Module: packages                      Tag: LINUX_2_6_38
---- Log message:
- partial 2.6.38.7 update (tuxonice updated to 3.2 final; vserver patch fixed; no new grsec)

---- Files affected:
packages/kernel:
   kernel-tuxonice.patch (1.23 -> 1.23.2.1) , kernel-vserver-2.3.patch (1.65 -> 1.65.2.1) , kernel.spec (1.924 -> 1.924.2.1) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-tuxonice.patch
diff -u packages/kernel/kernel-tuxonice.patch:1.23 packages/kernel/kernel-tuxonice.patch:1.23.2.1
--- packages/kernel/kernel-tuxonice.patch:1.23	Fri Mar 25 15:33:15 2011
+++ packages/kernel/kernel-tuxonice.patch	Sun May 22 08:18:41 2011
@@ -1450,10 +1450,10 @@
 +   testing. His efforts have contributed as much to TuxOnIce as any of the
 +   names above.
 diff --git a/MAINTAINERS b/MAINTAINERS
-index f1bc3dc..04365d6 100644
+index 80540e3..f0785ed 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -6208,6 +6208,13 @@ S:	Maintained
+@@ -6207,6 +6207,13 @@ S:	Maintained
  F:	drivers/tc/
  F:	include/linux/tc.h
  
@@ -2595,7 +2595,7 @@
  /**
   * pm_get_wakeup_count - Read the number of registered wakeup events.
 diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
-index ea1c4b0..625abb0 100644
+index c3c78ee..b5b66e9 100644
 --- a/drivers/gpu/drm/drm_gem.c
 +++ b/drivers/gpu/drm/drm_gem.c
 @@ -137,7 +137,8 @@ int drm_gem_object_init(struct drm_device *dev,
@@ -2684,6 +2684,87 @@
  	if (mddev->bitmap)
  		bitmap_daemon_work(mddev);
  
+diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
+index 4bd8cbd..d2f1012 100644
+--- a/drivers/staging/zram/zram_drv.c
++++ b/drivers/staging/zram/zram_drv.c
+@@ -28,6 +28,7 @@
+ #include <linux/lzo.h>
+ #include <linux/string.h>
+ #include <linux/vmalloc.h>
++#include <linux/tuxonice.h>
+ 
+ #include "zram_drv.h"
+ 
+@@ -661,6 +662,50 @@ static void destroy_device(struct zram *zram)
+ 		blk_cleanup_queue(zram->queue);
+ }
+ 
++#ifdef CONFIG_TOI
++static int zram_toi_flag_disk(struct zram *zram)
++{
++	int index, t = 0;
++
++	for (index = 0; index < zram->disksize >> PAGE_SHIFT; index++) {
++		struct page *page = zram->table[index].page;
++
++		if (page) {
++			SetPagePrecompressed(page);
++			t++;
++		}
++	}
++
++	return t;
++}
++
++int zram_toi_flag_disks(void)
++{
++	int i, t = 0;
++	struct zram *zram;
++
++	for (i = 0; i < num_devices; i++) {
++		zram = &devices[i];
++
++		t += zram_toi_flag_disk(zram);
++	}
++
++	return t;
++}
++
++void set_toi_hook(void)
++{
++	toi_flag_zram_disks = zram_toi_flag_disks;
++}
++
++void clear_toi_hook(void)
++{
++	toi_flag_zram_disks = NULL;
++}
++#else
++#define set_toi_hook() { }
++#define clear_toi_hook() { }
++#endif
+ static int __init zram_init(void)
+ {
+ 	int ret, dev_id;
+@@ -698,6 +743,8 @@ static int __init zram_init(void)
+ 			goto free_devices;
+ 	}
+ 
++	set_toi_hook();
++
+ 	return 0;
+ 
+ free_devices:
+@@ -715,6 +762,8 @@ static void __exit zram_exit(void)
+ 	int i;
+ 	struct zram *zram;
+ 
++	clear_toi_hook();
++
+ 	for (i = 0; i < num_devices; i++) {
+ 		zram = &devices[i];
+ 
 diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
 index 147ede3..c454da5 100644
 --- a/drivers/tty/vt/vt.c
@@ -3156,10 +3237,10 @@
  
  static inline int register_fuseblk(void)
 diff --git a/fs/namei.c b/fs/namei.c
-index a4689eb..97e4f22 100644
+index 3095ca8..1000e50 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
-@@ -2924,6 +2924,8 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
+@@ -2925,6 +2925,8 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
  	if (!dir->i_op->unlink)
  		return -EPERM;
  
@@ -3169,7 +3250,7 @@
  	if (d_mountpoint(dentry))
  		error = -EBUSY;
 diff --git a/fs/super.c b/fs/super.c
-index 7e9dd4c..84010bb 100644
+index 0d89e93..715ddb7 100644
 --- a/fs/super.c
 +++ b/fs/super.c
 @@ -35,6 +35,8 @@
@@ -3337,10 +3418,10 @@
 +struct block_device *next_bdev_of_type(struct block_device *last,
 +	const char *key);
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index f6385fc..f6470fc 100644
+index c67adb4..435f43f 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -855,7 +855,8 @@ extern void pagefault_out_of_memory(void);
+@@ -862,7 +862,8 @@ extern void pagefault_out_of_memory(void);
  extern void show_free_areas(void);
  
  int shmem_lock(struct file *file, int lock, struct user_struct *user);
@@ -3350,7 +3431,7 @@
  int shmem_zero_setup(struct vm_area_struct *);
  
  #ifndef CONFIG_MMU
-@@ -1581,6 +1582,7 @@ int drop_caches_sysctl_handler(struct ctl_table *, int,
+@@ -1588,6 +1589,7 @@ int drop_caches_sysctl_handler(struct ctl_table *, int,
  					void __user *, size_t *, loff_t *);
  unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
  			unsigned long lru_pages);
@@ -3483,6 +3564,39 @@
  
  /* linux/mm/thrash.c */
  extern struct mm_struct *swap_token_mm;
+diff --git a/include/linux/tuxonice.h b/include/linux/tuxonice.h
+new file mode 100644
+index 0000000..72a87c9
+--- /dev/null
++++ b/include/linux/tuxonice.h
+@@ -0,0 +1,27 @@
++/*
++ * include/linux/tuxonice.h
++ *
++ * Copyright (C) 2011 Nigel Cunningham (nigel at tuxonice net)
++ *
++ * This file is released under the GPLv2.
++ */
++
++#ifndef LINUX_TUXONICE_H
++#define LINUX_TUXONICE_H
++
++extern struct memory_bitmap *precompressed_map;
++
++#ifdef CONFIG_TOI_ZRAM_SUPPORT
++extern void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn);
++#define PagePrecompressed(page) (precompressed_map ? \
++		memory_bm_test_bit(precompressed_map, page_to_pfn(page)) : 0)
++#define SetPagePrecompressed(page) \
++	(memory_bm_set_bit(precompressed_map, page_to_pfn(page)))
++#define ClearPagePrecompressed(page) \
++	(memory_bm_clear_bit(precompressed_map, page_to_pfn(page)))
++extern int (*toi_flag_zram_disks) (void);
++#else
++#define PagePrecompressed(page) (0)
++#define toi_flag_zram_disks (0)
++#endif
++#endif
 diff --git a/init/do_mounts.c b/init/do_mounts.c
 index 2b54bef..aa4b723 100644
 --- a/init/do_mounts.c
@@ -3594,10 +3708,10 @@
  static void helper_lock(void)
  {
 diff --git a/kernel/pid.c b/kernel/pid.c
-index 39b65b6..38e2c1a 100644
+index 6aeebc2..efe6dd2 100644
 --- a/kernel/pid.c
 +++ b/kernel/pid.c
-@@ -419,6 +419,7 @@ struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
+@@ -422,6 +422,7 @@ struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
  	rcu_lockdep_assert(rcu_read_lock_held());
  	return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
  }
@@ -3606,7 +3720,7 @@
  struct task_struct *find_task_by_vpid(pid_t vnr)
  {
 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
-index 2657299..b5a856e 100644
+index 2657299..51acc70 100644
 --- a/kernel/power/Kconfig
 +++ b/kernel/power/Kconfig
 @@ -47,6 +47,13 @@ config CAN_PM_TRACE
@@ -3623,7 +3737,18 @@
  config PM_TRACE
  	bool
  	help
-@@ -196,6 +203,238 @@ config PM_STD_PARTITION
+@@ -90,6 +97,10 @@ config PM_SLEEP_SMP
+ 	select HOTPLUG_CPU
+ 	default y
+ 
++config TOI_ZRAM_SUPPORT
++	def_bool y
++	depends on TOI && ZRAM!=n
++
+ config PM_SLEEP
+ 	bool
+ 	depends on SUSPEND || HIBERNATION || XEN_SAVE_RESTORE
+@@ -196,6 +207,247 @@ config PM_STD_PARTITION
  	  suspended image to. It will simply pick the first available swap 
  	  device.
  
@@ -3693,6 +3818,15 @@
 +		---help---
 +		  This entry allows you to specify a default path to the userui binary.
 +
++	config TOI_DEFAULT_IMAGE_SIZE_LIMIT
++		int "Default image size limit"
++		range -2 65536 
++		default "-2"
++		depends on TOI_CORE
++		---help---
++		  This entry allows you to specify a default image size limit. It can
++		  be overridden at run-time using /sys/power/tuxonice/image_size_limit.
++
 +	config TOI_KEEP_IMAGE
 +		bool "Allow Keep Image Mode"
 +		depends on TOI_CORE
@@ -4362,7 +4496,7 @@
 + */
 +EXPORT_SYMBOL_GPL(thaw_kernel_threads);
 diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
-index 64db648..8ac0199 100644
+index 64db648..08755d5 100644
 --- a/kernel/power/snapshot.c
 +++ b/kernel/power/snapshot.c
 @@ -35,6 +35,8 @@
@@ -4636,7 +4770,7 @@
  
  static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn)
  {
-@@ -557,43 +612,184 @@ static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn)
+@@ -557,43 +612,185 @@ static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn)
   *	this function.
   */
  
@@ -4734,6 +4868,7 @@
 +DEFINE_MEMORY_BITMAP(io_map);
 +DEFINE_MEMORY_BITMAP(nosave_map);
 +DEFINE_MEMORY_BITMAP(free_map);
++DEFINE_MEMORY_BITMAP(precompressed_map);
 +
 +int memory_bm_write(struct memory_bitmap *bm, int (*rw_chunk)
 +	(int rw, struct toi_module_ops *owner, char *buffer, int buffer_size))
@@ -4838,7 +4973,7 @@
  
  /**
   *	register_nosave_region - register a range of page frames the contents
-@@ -829,7 +1025,7 @@ static unsigned int count_free_highmem_pages(void)
+@@ -829,7 +1026,7 @@ static unsigned int count_free_highmem_pages(void)
   *	We should save the page if it isn't Nosave or NosaveFree, or Reserved,
   *	and it isn't a part of a free chunk of pages.
   */
@@ -4847,7 +4982,7 @@
  {
  	struct page *page;
  
-@@ -848,6 +1044,7 @@ static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn)
+@@ -848,6 +1045,7 @@ static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn)
  
  	return page;
  }
@@ -4855,7 +4990,7 @@
  
  /**
   *	count_highmem_pages - compute the total number of saveable highmem
-@@ -873,11 +1070,6 @@ static unsigned int count_highmem_pages(void)
+@@ -873,11 +1071,6 @@ static unsigned int count_highmem_pages(void)
  	}
  	return n;
  }
@@ -4867,7 +5002,7 @@
  #endif /* CONFIG_HIGHMEM */
  
  /**
-@@ -888,7 +1080,7 @@ static inline void *saveable_highmem_page(struct zone *z, unsigned long p)
+@@ -888,7 +1081,7 @@ static inline void *saveable_highmem_page(struct zone *z, unsigned long p)
   *	of pages statically defined as 'unsaveable', and it isn't a part of
   *	a free chunk of pages.
   */
@@ -4876,7 +5011,7 @@
  {
  	struct page *page;
  
-@@ -910,6 +1102,7 @@ static struct page *saveable_page(struct zone *zone, unsigned long pfn)
+@@ -910,6 +1103,7 @@ static struct page *saveable_page(struct zone *zone, unsigned long pfn)
  
  	return page;
  }
@@ -4884,7 +5019,7 @@
  
  /**
   *	count_data_pages - compute the total number of saveable non-highmem
-@@ -1550,6 +1743,9 @@ asmlinkage int swsusp_save(void)
+@@ -1550,6 +1744,9 @@ asmlinkage int swsusp_save(void)
  {
  	unsigned int nr_pages, nr_highmem;
  
@@ -4894,7 +5029,7 @@
  	printk(KERN_INFO "PM: Creating hibernation image:\n");
  
  	drain_local_pages(NULL);
-@@ -1590,14 +1786,14 @@ asmlinkage int swsusp_save(void)
+@@ -1590,14 +1787,14 @@ asmlinkage int swsusp_save(void)
  }
  
  #ifndef CONFIG_ARCH_HIBERNATION_HEADER
@@ -4911,7 +5046,7 @@
  {
  	if (info->version_code != LINUX_VERSION_CODE)
  		return "kernel version";
-@@ -1611,6 +1807,7 @@ static char *check_image_kernel(struct swsusp_info *info)
+@@ -1611,6 +1808,7 @@ static char *check_image_kernel(struct swsusp_info *info)
  		return "machine";
  	return NULL;
  }
@@ -4919,7 +5054,7 @@
  #endif /* CONFIG_ARCH_HIBERNATION_HEADER */
  
  unsigned long snapshot_get_image_size(void)
-@@ -1618,7 +1815,7 @@ unsigned long snapshot_get_image_size(void)
+@@ -1618,7 +1816,7 @@ unsigned long snapshot_get_image_size(void)
  	return nr_copy_pages + nr_meta_pages + 1;
  }
  
@@ -4928,7 +5063,7 @@
  {
  	memset(info, 0, sizeof(struct swsusp_info));
  	info->num_physpages = num_physpages;
-@@ -1628,6 +1825,7 @@ static int init_header(struct swsusp_info *info)
+@@ -1628,6 +1826,7 @@ static int init_header(struct swsusp_info *info)
  	info->size <<= PAGE_SHIFT;
  	return init_header_complete(info);
  }
@@ -4950,10 +5085,10 @@
   *	suspend_finish - Do final work before exiting suspend sequence.
 diff --git a/kernel/power/tuxonice.h b/kernel/power/tuxonice.h
 new file mode 100644
-index 0000000..f6ffff3
+index 0000000..b6409cf
 --- /dev/null
 +++ b/kernel/power/tuxonice.h
-@@ -0,0 +1,219 @@
+@@ -0,0 +1,220 @@
 +/*
 + * kernel/power/tuxonice.h
 + *
@@ -4973,11 +5108,12 @@
 +#include <linux/suspend.h>
 +#include <linux/fs.h>
 +#include <linux/kmod.h>
++#include <linux/tuxonice.h>
 +#include <asm/setup.h>
 +#include "tuxonice_pageflags.h"
 +#include "power.h"
 +
-+#define TOI_CORE_VERSION "3.2-rc2"
++#define TOI_CORE_VERSION "3.2"
 +#define	TOI_HEADER_VERSION 3
 +#define MY_BOOT_KERNEL_DATA_VERSION 3
 +
@@ -9525,10 +9661,10 @@
 +}
 diff --git a/kernel/power/tuxonice_builtin.c b/kernel/power/tuxonice_builtin.c
 new file mode 100644
-index 0000000..c0c6d30
+index 0000000..53fd49f
 --- /dev/null
 +++ b/kernel/power/tuxonice_builtin.c
-@@ -0,0 +1,432 @@
+@@ -0,0 +1,443 @@
 +/*
 + * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net)
 + *
@@ -9847,6 +9983,17 @@
 +}
 +EXPORT_SYMBOL_GPL(toi_read_unlock_tasklist);
 +
++#ifdef CONFIG_TOI_ZRAM_SUPPORT
++int (*toi_flag_zram_disks) (void);
++EXPORT_SYMBOL_GPL(toi_flag_zram_disks);
++
++int toi_do_flag_zram_disks(void)
++{
++	return toi_flag_zram_disks ? (*toi_flag_zram_disks)() : 0;
++}
++EXPORT_SYMBOL_GPL(toi_do_flag_zram_disks);
++#endif
++
 +static int __init toi_wait_setup(char *str)
 +{
 +	int value;
@@ -9963,10 +10110,10 @@
 +__setup("toi_no_readahead", toi_disable_readahead_setup);
 diff --git a/kernel/power/tuxonice_builtin.h b/kernel/power/tuxonice_builtin.h
 new file mode 100644
-index 0000000..ab67d31
+index 0000000..3179bfa
 --- /dev/null
 +++ b/kernel/power/tuxonice_builtin.h
-@@ -0,0 +1,32 @@
+@@ -0,0 +1,38 @@
 +/*
 + * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net)
 + *
@@ -9999,6 +10146,12 @@
 +extern int toi_force_no_multithreaded;
 +extern void toi_read_lock_tasklist(void);
 +extern void toi_read_unlock_tasklist(void);
++
++#ifdef CONFIG_TOI_ZRAM_SUPPORT
++extern int toi_do_flag_zram_disks(void);
++#else
++#define toi_do_flag_zram_disks() (0)
++#endif
 diff --git a/kernel/power/tuxonice_checksum.c b/kernel/power/tuxonice_checksum.c
 new file mode 100644
 index 0000000..2d7b2f1
@@ -11527,10 +11680,10 @@
 +
 diff --git a/kernel/power/tuxonice_compress.c b/kernel/power/tuxonice_compress.c
 new file mode 100644
-index 0000000..fb40e1b
+index 0000000..4f06ab6
 --- /dev/null
 +++ b/kernel/power/tuxonice_compress.c
-@@ -0,0 +1,454 @@
+@@ -0,0 +1,455 @@
 +/*
 + * kernel/power/compression.c
 + *
@@ -11546,6 +11699,7 @@
 +#include <linux/highmem.h>
 +#include <linux/vmalloc.h>
 +#include <linux/crypto.h>
++#include <linux/tuxonice.h>
 +
 +#include "tuxonice_builtin.h"
 +#include "tuxonice.h"
@@ -11707,7 +11861,7 @@
 +	int ret, cpu = smp_processor_id();
 +	struct cpu_context *ctx = &per_cpu(contexts, cpu);
 +
-+	if (!ctx->transform)
++	if (!ctx->transform || PagePrecompressed((struct page *) buffer_page))
 +		return next_driver->write_page(index, TOI_PAGE, buffer_page,
 +				buf_size);
 +
@@ -12669,10 +12823,10 @@
 +#endif
 diff --git a/kernel/power/tuxonice_highlevel.c b/kernel/power/tuxonice_highlevel.c
 new file mode 100644
-index 0000000..7d609ca
+index 0000000..f603583
 --- /dev/null
 +++ b/kernel/power/tuxonice_highlevel.c
-@@ -0,0 +1,1329 @@
+@@ -0,0 +1,1345 @@
 +/*
 + * kernel/power/tuxonice_highlevel.c
 + */
@@ -12751,6 +12905,7 @@
 +#include <linux/uaccess.h> /* for get/set_fs & KERNEL_DS on i386 */
 +#include <linux/bio.h>
 +#include <linux/kgdb.h>
++#include <linux/tuxonice.h>
 +
 +#include "tuxonice.h"
 +#include "tuxonice_modules.h"
@@ -12772,7 +12927,7 @@
 +
 +static mm_segment_t oldfs;
 +static DEFINE_MUTEX(tuxonice_in_use);
-+static int block_dump_save;
++static int block_dump_save, nr_precompressed;
 +
 +/* Binary signature if an image is present */
 +char tuxonice_signature[9] = "\xed\xc3\x02\xe9\x98\x56\xe5\x0c";
@@ -12999,6 +13154,7 @@
 +	toi_free_bitmap(&nosave_map);
 +	toi_free_bitmap(&free_map);
 +	toi_free_bitmap(&page_resave_map);
++	toi_free_bitmap(&precompressed_map);
 +}
 +
 +/**
@@ -13079,6 +13235,8 @@
 +					result_strings[i]);
 +			first_result = 0;
 +		}
++	if (nr_precompressed)
++		SNPRINTF("- ZRAM pages     : %d.\n", nr_precompressed);
 +	if (first_result)
 +		SNPRINTF("- Result         : %s.\n", nr_hibernates ?
 +			"Succeeded" :
@@ -13482,6 +13640,18 @@
 +			!test_result_state(TOI_ABORTED))
 +		return 0;
 +
++	/* 
++	 * ZRAM disks can be marked now as there's no race with userspace
++	 * potentially resizing a disk.
++	 */
++	nr_precompressed = 0;
++	if (toi_flag_zram_disks) {
++		if (toi_alloc_bitmap(&precompressed_map))
++			return 1;
++
++		nr_precompressed = toi_do_flag_zram_disks();
++	}
++
 +	trap_non_toi_io = 1;
 +
 +	return 1;
@@ -17969,7 +18139,7 @@
 +extern void platform_restore_cleanup(int platform_mode);
 diff --git a/kernel/power/tuxonice_prepare_image.c b/kernel/power/tuxonice_prepare_image.c
 new file mode 100644
-index 0000000..4f4b70d
+index 0000000..d0b34ee
 --- /dev/null
 +++ b/kernel/power/tuxonice_prepare_image.c
 @@ -0,0 +1,1111 @@
@@ -18018,7 +18188,7 @@
 +	    header_storage_needed;
 +unsigned long extra_pd1_pages_allowance =
 +	CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE;
-+long image_size_limit;
++long image_size_limit = CONFIG_TOI_DEFAULT_IMAGE_SIZE_LIMIT;
 +static int no_ps2_needed;
 +
 +struct attention_list {
@@ -19469,10 +19639,10 @@
 +};
 diff --git a/kernel/power/tuxonice_swap.c b/kernel/power/tuxonice_swap.c
 new file mode 100644
-index 0000000..27f8a94
+index 0000000..a6c0d76
 --- /dev/null
 +++ b/kernel/power/tuxonice_swap.c
-@@ -0,0 +1,456 @@
+@@ -0,0 +1,463 @@
 +/*
 + * kernel/power/tuxonice_swap.c
 + *
@@ -19512,6 +19682,15 @@
 +
 +static struct sysinfo swapinfo;
 +
++static int is_ram_backed(struct swap_info_struct *si)
++{
++	if (!strncmp(si->bdev->bd_disk->disk_name, "ram", 3) ||
++	    !strncmp(si->bdev->bd_disk->disk_name, "zram", 4))
++		return 1;
++
++	return 0;
++}
++
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-tuxonice.patch?r1=1.23&r2=1.23.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-vserver-2.3.patch?r1=1.65&r2=1.65.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel.spec?r1=1.924&r2=1.924.2.1&f=u



More information about the pld-cvs-commit mailing list