mirror of https://github.com/hak5/openwrt-owl.git
parent
2b2541ebad
commit
5d67fbe1b7
|
@ -1,6 +1,6 @@
|
|||
--- a/fs/Kconfig
|
||||
+++ b/fs/Kconfig
|
||||
@@ -1364,6 +1364,71 @@
|
||||
@@ -1364,6 +1364,71 @@ config CRAMFS
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
|||
depends on BLOCK
|
||||
--- a/fs/Makefile
|
||||
+++ b/fs/Makefile
|
||||
@@ -72,6 +72,7 @@
|
||||
@@ -72,6 +72,7 @@ obj-$(CONFIG_JBD) += jbd/
|
||||
obj-$(CONFIG_JBD2) += jbd2/
|
||||
obj-$(CONFIG_EXT2_FS) += ext2/
|
||||
obj-$(CONFIG_CRAMFS) += cramfs/
|
||||
|
@ -4128,7 +4128,7 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
@@ -39,6 +40,7 @@
|
||||
@@ -39,6 +40,7 @@ static int __init crd_load(int in_fd, in
|
||||
* numbers could not be found.
|
||||
*
|
||||
* We currently check for the following magic numbers:
|
||||
|
@ -4136,7 +4136,7 @@
|
|||
* minix
|
||||
* ext2
|
||||
* romfs
|
||||
@@ -53,6 +55,7 @@
|
||||
@@ -53,6 +55,7 @@ identify_ramdisk_image(int fd, int start
|
||||
struct ext2_super_block *ext2sb;
|
||||
struct romfs_super_block *romfsb;
|
||||
struct cramfs_super *cramfsb;
|
||||
|
@ -4144,7 +4144,7 @@
|
|||
int nblocks = -1;
|
||||
unsigned char *buf;
|
||||
|
||||
@@ -64,6 +67,7 @@
|
||||
@@ -64,6 +67,7 @@ identify_ramdisk_image(int fd, int start
|
||||
ext2sb = (struct ext2_super_block *) buf;
|
||||
romfsb = (struct romfs_super_block *) buf;
|
||||
cramfsb = (struct cramfs_super *) buf;
|
||||
|
@ -4152,7 +4152,7 @@
|
|||
memset(buf, 0xe5, size);
|
||||
|
||||
/*
|
||||
@@ -101,6 +105,15 @@
|
||||
@@ -101,6 +105,15 @@ identify_ramdisk_image(int fd, int start
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
|
|
@ -769,7 +769,7 @@
|
|||
+}
|
||||
--- a/lib/Makefile
|
||||
+++ b/lib/Makefile
|
||||
@@ -13,7 +13,7 @@
|
||||
@@ -13,7 +13,7 @@ lib-$(CONFIG_SMP) += cpumask.o
|
||||
lib-y += kobject.o kref.o kobject_uevent.o klist.o
|
||||
|
||||
obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
|
||||
|
@ -778,7 +778,7 @@
|
|||
|
||||
ifeq ($(CONFIG_DEBUG_KOBJECT),y)
|
||||
CFLAGS_kobject.o += -DDEBUG
|
||||
@@ -62,6 +62,7 @@
|
||||
@@ -62,6 +62,7 @@ obj-$(CONFIG_SMP) += percpu_counter.o
|
||||
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
|
||||
|
||||
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
static void squashfs_put_super(struct super_block *);
|
||||
static int squashfs_statfs(struct dentry *, struct kstatfs *);
|
||||
static int squashfs_symlink_readpage(struct file *file, struct page *page);
|
||||
@@ -64,7 +81,11 @@
|
||||
@@ -64,7 +81,11 @@ static int squashfs_get_sb(struct file_s
|
||||
const char *, void *, struct vfsmount *);
|
||||
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
|||
|
||||
static struct file_system_type squashfs_fs_type = {
|
||||
.owner = THIS_MODULE,
|
||||
@@ -249,6 +270,15 @@
|
||||
@@ -249,6 +270,15 @@ SQSH_EXTERN unsigned int squashfs_read_d
|
||||
if (compressed) {
|
||||
int zlib_err;
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
stream.next_in = c_buffer;
|
||||
stream.avail_in = c_byte;
|
||||
stream.next_out = buffer;
|
||||
@@ -263,7 +293,7 @@
|
||||
@@ -263,7 +293,7 @@ SQSH_EXTERN unsigned int squashfs_read_d
|
||||
bytes = 0;
|
||||
} else
|
||||
bytes = stream.total_out;
|
||||
|
@ -75,7 +75,7 @@
|
|||
up(&msblk->read_data_mutex);
|
||||
}
|
||||
|
||||
@@ -2045,15 +2075,19 @@
|
||||
@@ -2045,15 +2075,19 @@ static int __init init_squashfs_fs(void)
|
||||
printk(KERN_INFO "squashfs: version 3.0 (2006/03/15) "
|
||||
"Phillip Lougher\n");
|
||||
|
||||
|
@ -95,7 +95,7 @@
|
|||
destroy_inodecache();
|
||||
}
|
||||
|
||||
@@ -2064,7 +2098,9 @@
|
||||
@@ -2064,7 +2098,9 @@ out:
|
||||
|
||||
static void __exit exit_squashfs_fs(void)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -508,6 +508,9 @@
|
||||
@@ -508,6 +508,9 @@ CFLAGS += $(call cc-option, -fn
|
||||
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
|
||||
CHECKFLAGS += $(NOSTDINC_FLAGS)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/asm-mips/system.h
|
||||
+++ b/include/asm-mips/system.h
|
||||
@@ -181,7 +181,7 @@
|
||||
@@ -181,7 +181,7 @@ extern __u64 __xchg_u64_unsupported_on_3
|
||||
if something tries to do an invalid xchg(). */
|
||||
extern void __xchg_called_with_bad_pointer(void);
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
|
||||
static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
|
||||
@@ -294,12 +295,19 @@
|
||||
@@ -294,12 +295,19 @@ struct mtd_info *cfi_cmdset_0002(struct
|
||||
|
||||
if (extp->MajorVersion != '1' ||
|
||||
(extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
|
||||
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
|
||||
@@ -933,7 +933,7 @@
|
||||
@@ -933,7 +933,7 @@ static void __xipram xip_enable(struct m
|
||||
|
||||
static int __xipram xip_wait_for_operation(
|
||||
struct map_info *map, struct flchip *chip,
|
||||
|
@ -9,7 +9,7 @@
|
|||
{
|
||||
struct cfi_private *cfi = map->fldrv_priv;
|
||||
struct cfi_pri_intelext *cfip = cfi->cmdset_priv;
|
||||
@@ -942,7 +942,7 @@
|
||||
@@ -942,7 +942,7 @@ static int __xipram xip_wait_for_operati
|
||||
flstate_t oldstate, newstate;
|
||||
|
||||
start = xip_currtime();
|
||||
|
@ -18,7 +18,7 @@
|
|||
if (usec == 0)
|
||||
usec = 500000;
|
||||
done = 0;
|
||||
@@ -1052,8 +1052,8 @@
|
||||
@@ -1052,8 +1052,8 @@ static int __xipram xip_wait_for_operati
|
||||
#define XIP_INVAL_CACHED_RANGE(map, from, size) \
|
||||
INVALIDATE_CACHED_RANGE(map, from, size)
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
#else
|
||||
|
||||
@@ -1065,65 +1065,65 @@
|
||||
@@ -1065,65 +1065,65 @@ static int __xipram xip_wait_for_operati
|
||||
static int inval_cache_and_wait_for_operation(
|
||||
struct map_info *map, struct flchip *chip,
|
||||
unsigned long cmd_adr, unsigned long inval_adr, int inval_len,
|
||||
|
@ -130,7 +130,7 @@
|
|||
/* Done and happy. */
|
||||
chip->state = FL_STATUS;
|
||||
return 0;
|
||||
@@ -1132,7 +1132,8 @@
|
||||
@@ -1132,7 +1132,8 @@ static int inval_cache_and_wait_for_oper
|
||||
#endif
|
||||
|
||||
#define WAIT_TIMEOUT(map, chip, adr, udelay) \
|
||||
|
@ -140,7 +140,7 @@
|
|||
|
||||
|
||||
static int do_point_onechip (struct map_info *map, struct flchip *chip, loff_t adr, size_t len)
|
||||
@@ -1356,7 +1357,7 @@
|
||||
@@ -1356,7 +1357,7 @@ static int __xipram do_write_oneword(str
|
||||
|
||||
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
|
||||
adr, map_bankwidth(map),
|
||||
|
@ -149,7 +149,7 @@
|
|||
if (ret) {
|
||||
xip_enable(map, chip, adr);
|
||||
printk(KERN_ERR "%s: word write error (status timeout)\n", map->name);
|
||||
@@ -1593,7 +1594,7 @@
|
||||
@@ -1593,7 +1594,7 @@ static int __xipram do_write_buffer(stru
|
||||
|
||||
ret = INVAL_CACHE_AND_WAIT(map, chip, cmd_adr,
|
||||
adr, len,
|
||||
|
@ -158,7 +158,7 @@
|
|||
if (ret) {
|
||||
map_write(map, CMD(0x70), cmd_adr);
|
||||
chip->state = FL_STATUS;
|
||||
@@ -1728,7 +1729,7 @@
|
||||
@@ -1728,7 +1729,7 @@ static int __xipram do_erase_oneblock(st
|
||||
|
||||
ret = INVAL_CACHE_AND_WAIT(map, chip, adr,
|
||||
adr, len,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/arch/mips/mm/tlbex.c
|
||||
+++ b/arch/mips/mm/tlbex.c
|
||||
@@ -902,7 +902,6 @@
|
||||
@@ -902,7 +902,6 @@ static __init void build_tlb_write_entry
|
||||
case CPU_R10000:
|
||||
case CPU_R12000:
|
||||
case CPU_R14000:
|
||||
|
@ -8,7 +8,7 @@
|
|||
case CPU_SB1:
|
||||
case CPU_SB1A:
|
||||
case CPU_4KSC:
|
||||
@@ -933,6 +932,7 @@
|
||||
@@ -933,6 +932,7 @@ static __init void build_tlb_write_entry
|
||||
tlbw(p);
|
||||
break;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/arch/mips/kernel/gdb-stub.c
|
||||
+++ b/arch/mips/kernel/gdb-stub.c
|
||||
@@ -656,6 +656,7 @@
|
||||
@@ -656,6 +656,7 @@ void set_async_breakpoint(unsigned long
|
||||
*epc = (unsigned long)async_breakpoint;
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
|||
static void kgdb_wait(void *arg)
|
||||
{
|
||||
unsigned flags;
|
||||
@@ -668,6 +669,7 @@
|
||||
@@ -668,6 +669,7 @@ static void kgdb_wait(void *arg)
|
||||
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include <linux/buffer_head.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/mount.h>
|
||||
@@ -237,10 +238,11 @@
|
||||
@@ -237,10 +238,11 @@ static void block2mtd_free_device(struct
|
||||
|
||||
|
||||
/* FIXME: ensure that mtd->size % erase_size == 0 */
|
||||
|
@ -21,7 +21,7 @@
|
|||
|
||||
if (!devname)
|
||||
return NULL;
|
||||
@@ -279,14 +281,18 @@
|
||||
@@ -279,14 +281,18 @@ static struct block2mtd_dev *add_device(
|
||||
|
||||
/* Setup the MTD structure */
|
||||
/* make the name contain the block device in */
|
||||
|
@ -45,7 +45,7 @@
|
|||
dev->mtd.erasesize = erase_size;
|
||||
dev->mtd.writesize = 1;
|
||||
dev->mtd.type = MTD_RAM;
|
||||
@@ -298,15 +304,18 @@
|
||||
@@ -298,15 +304,18 @@ static struct block2mtd_dev *add_device(
|
||||
dev->mtd.read = block2mtd_read;
|
||||
dev->mtd.priv = dev;
|
||||
dev->mtd.owner = THIS_MODULE;
|
||||
|
@ -68,7 +68,7 @@
|
|||
return dev;
|
||||
|
||||
devinit_err:
|
||||
@@ -379,9 +388,9 @@
|
||||
@@ -379,9 +388,9 @@ static char block2mtd_paramline[80 + 12]
|
||||
|
||||
static int block2mtd_setup2(const char *val)
|
||||
{
|
||||
|
@ -80,7 +80,7 @@
|
|||
char *name;
|
||||
size_t erase_size = PAGE_SIZE;
|
||||
int i, ret;
|
||||
@@ -392,7 +401,7 @@
|
||||
@@ -392,7 +401,7 @@ static int block2mtd_setup2(const char *
|
||||
strcpy(str, val);
|
||||
kill_final_newline(str);
|
||||
|
||||
|
@ -89,7 +89,7 @@
|
|||
token[i] = strsep(&str, ",");
|
||||
|
||||
if (str)
|
||||
@@ -412,8 +421,10 @@
|
||||
@@ -412,8 +421,10 @@ static int block2mtd_setup2(const char *
|
||||
parse_err("illegal erase size");
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +101,7 @@
|
|||
|
||||
return 0;
|
||||
}
|
||||
@@ -447,7 +458,7 @@
|
||||
@@ -447,7 +458,7 @@ static int block2mtd_setup(const char *v
|
||||
|
||||
|
||||
module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mtd/Kconfig
|
||||
+++ b/drivers/mtd/Kconfig
|
||||
@@ -47,6 +47,16 @@
|
||||
@@ -47,6 +47,16 @@ config MTD_PARTITIONS
|
||||
devices. Partitioning on NFTL 'devices' is a different - that's the
|
||||
'normal' form of partitioning used on a block device.
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
|||
|
||||
/* Our partition linked list */
|
||||
static LIST_HEAD(mtd_partitions);
|
||||
@@ -39,7 +41,7 @@
|
||||
@@ -39,7 +41,7 @@ struct mtd_part {
|
||||
* the pointer to that structure with this macro.
|
||||
*/
|
||||
#define PART(x) ((struct mtd_part *)(x))
|
||||
|
@ -37,7 +37,7 @@
|
|||
|
||||
/*
|
||||
* MTD methods which simply translate the effective address and pass through
|
||||
@@ -308,6 +310,312 @@
|
||||
@@ -308,6 +310,312 @@ int del_mtd_partitions(struct mtd_info *
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -350,7 +350,7 @@
|
|||
/*
|
||||
* This function, given a master MTD object and a partition table, creates
|
||||
* and registers slave MTD objects which are bound to the master according to
|
||||
@@ -320,168 +628,31 @@
|
||||
@@ -320,168 +628,31 @@ int add_mtd_partitions(struct mtd_info *
|
||||
int nbparts)
|
||||
{
|
||||
struct mtd_part *slave;
|
||||
|
@ -540,7 +540,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -557,6 +728,32 @@
|
||||
@@ -557,6 +728,32 @@ int parse_mtd_partitions(struct mtd_info
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -575,7 +575,7 @@
|
|||
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
|
||||
--- a/drivers/mtd/devices/block2mtd.c
|
||||
+++ b/drivers/mtd/devices/block2mtd.c
|
||||
@@ -34,6 +34,8 @@
|
||||
@@ -34,6 +34,8 @@ struct block2mtd_dev {
|
||||
struct block_device *blkdev;
|
||||
struct mtd_info mtd;
|
||||
struct mutex write_mutex;
|
||||
|
@ -584,7 +584,7 @@
|
|||
};
|
||||
|
||||
|
||||
@@ -86,6 +88,12 @@
|
||||
@@ -86,6 +88,12 @@ static int block2mtd_erase(struct mtd_in
|
||||
size_t len = instr->len;
|
||||
int err;
|
||||
|
||||
|
@ -597,7 +597,7 @@
|
|||
instr->state = MTD_ERASING;
|
||||
mutex_lock(&dev->write_mutex);
|
||||
err = _block2mtd_erase(dev, from, len);
|
||||
@@ -98,6 +106,10 @@
|
||||
@@ -98,6 +106,10 @@ static int block2mtd_erase(struct mtd_in
|
||||
|
||||
instr->state = MTD_ERASE_DONE;
|
||||
mtd_erase_callback(instr);
|
||||
|
@ -608,7 +608,7 @@
|
|||
return err;
|
||||
}
|
||||
|
||||
@@ -109,10 +121,14 @@
|
||||
@@ -109,10 +121,14 @@ static int block2mtd_read(struct mtd_inf
|
||||
struct page *page;
|
||||
int index = from >> PAGE_SHIFT;
|
||||
int offset = from & (PAGE_SIZE-1);
|
||||
|
@ -626,7 +626,7 @@
|
|||
if (from + len > mtd->size)
|
||||
len = mtd->size - from;
|
||||
|
||||
@@ -127,10 +143,14 @@
|
||||
@@ -127,10 +143,14 @@ static int block2mtd_read(struct mtd_inf
|
||||
len = len - cpylen;
|
||||
|
||||
page = page_read(dev->blkdev->bd_inode->i_mapping, index);
|
||||
|
@ -645,7 +645,7 @@
|
|||
|
||||
memcpy(buf, page_address(page) + offset, cpylen);
|
||||
page_cache_release(page);
|
||||
@@ -141,7 +161,10 @@
|
||||
@@ -141,7 +161,10 @@ static int block2mtd_read(struct mtd_inf
|
||||
offset = 0;
|
||||
index++;
|
||||
}
|
||||
|
@ -657,7 +657,7 @@
|
|||
}
|
||||
|
||||
|
||||
@@ -193,12 +216,22 @@
|
||||
@@ -193,12 +216,22 @@ static int block2mtd_write(struct mtd_in
|
||||
size_t *retlen, const u_char *buf)
|
||||
{
|
||||
struct block2mtd_dev *dev = mtd->priv;
|
||||
|
@ -684,7 +684,7 @@
|
|||
if (to + len > mtd->size)
|
||||
len = mtd->size - to;
|
||||
|
||||
@@ -207,6 +240,9 @@
|
||||
@@ -207,6 +240,9 @@ static int block2mtd_write(struct mtd_in
|
||||
mutex_unlock(&dev->write_mutex);
|
||||
if (err > 0)
|
||||
err = 0;
|
||||
|
@ -694,7 +694,7 @@
|
|||
return err;
|
||||
}
|
||||
|
||||
@@ -215,51 +251,29 @@
|
||||
@@ -215,51 +251,29 @@ static int block2mtd_write(struct mtd_in
|
||||
static void block2mtd_sync(struct mtd_info *mtd)
|
||||
{
|
||||
struct block2mtd_dev *dev = mtd->priv;
|
||||
|
@ -754,7 +754,7 @@
|
|||
if (devt) {
|
||||
bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
|
||||
}
|
||||
@@ -267,17 +281,96 @@
|
||||
@@ -267,17 +281,96 @@ static struct block2mtd_dev *add_device(
|
||||
#endif
|
||||
|
||||
if (IS_ERR(bdev)) {
|
||||
|
@ -854,7 +854,7 @@
|
|||
|
||||
/* Setup the MTD structure */
|
||||
/* make the name contain the block device in */
|
||||
@@ -304,6 +397,7 @@
|
||||
@@ -304,6 +397,7 @@ static struct block2mtd_dev *add_device(
|
||||
dev->mtd.read = block2mtd_read;
|
||||
dev->mtd.priv = dev;
|
||||
dev->mtd.owner = THIS_MODULE;
|
||||
|
@ -872,7 +872,7 @@
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
@@ -753,6 +754,13 @@
|
||||
@@ -753,6 +754,13 @@ static int mtd_ioctl(struct inode *inode
|
||||
file->f_pos = 0;
|
||||
break;
|
||||
}
|
||||
|
@ -888,7 +888,7 @@
|
|||
ret = -ENOTTY;
|
||||
--- a/include/linux/mtd/mtd.h
|
||||
+++ b/include/linux/mtd/mtd.h
|
||||
@@ -98,6 +98,7 @@
|
||||
@@ -98,6 +98,7 @@ struct mtd_oob_ops {
|
||||
uint8_t *oobbuf;
|
||||
};
|
||||
|
||||
|
@ -896,7 +896,7 @@
|
|||
struct mtd_info {
|
||||
u_char type;
|
||||
u_int32_t flags;
|
||||
@@ -195,6 +196,9 @@
|
||||
@@ -195,6 +196,9 @@ struct mtd_info {
|
||||
struct module *owner;
|
||||
int usecount;
|
||||
|
||||
|
@ -916,7 +916,7 @@
|
|||
struct mtd_partition {
|
||||
char *name; /* identifier string */
|
||||
u_int32_t size; /* partition size */
|
||||
@@ -43,6 +44,7 @@
|
||||
@@ -43,6 +44,7 @@ struct mtd_partition {
|
||||
u_int32_t mask_flags; /* master MTD flags to mask out for this partition */
|
||||
struct nand_ecclayout *ecclayout; /* out of band layout for this partition (NAND only)*/
|
||||
struct mtd_info **mtdp; /* pointer to store the MTD object */
|
||||
|
@ -924,7 +924,7 @@
|
|||
};
|
||||
|
||||
#define MTDPART_OFS_NXTBLK (-2)
|
||||
@@ -52,6 +54,7 @@
|
||||
@@ -52,6 +54,7 @@ struct mtd_partition {
|
||||
|
||||
int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
|
||||
int del_mtd_partitions(struct mtd_info *);
|
||||
|
@ -934,7 +934,7 @@
|
|||
* Functions dealing with the various ways of partitioning the space
|
||||
--- a/include/mtd/mtd-abi.h
|
||||
+++ b/include/mtd/mtd-abi.h
|
||||
@@ -95,6 +95,7 @@
|
||||
@@ -95,6 +95,7 @@ struct otp_info {
|
||||
#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout)
|
||||
#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
|
||||
#define MTDFILEMODE _IO('M', 19)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mtd/redboot.c
|
||||
+++ b/drivers/mtd/redboot.c
|
||||
@@ -236,14 +236,21 @@
|
||||
@@ -236,14 +236,21 @@ static int parse_redboot_partitions(stru
|
||||
#endif
|
||||
names += strlen(names)+1;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/mtd/nand.h
|
||||
+++ b/include/linux/mtd/nand.h
|
||||
@@ -572,6 +572,7 @@
|
||||
@@ -572,6 +572,7 @@ struct platform_nand_chip {
|
||||
int chip_delay;
|
||||
unsigned int options;
|
||||
const char **part_probe_types;
|
||||
|
@ -10,7 +10,7 @@
|
|||
|
||||
--- a/drivers/mtd/nand/plat_nand.c
|
||||
+++ b/drivers/mtd/nand/plat_nand.c
|
||||
@@ -70,7 +70,18 @@
|
||||
@@ -70,7 +70,18 @@ static int __init plat_nand_probe(struct
|
||||
platform_set_drvdata(pdev, data);
|
||||
|
||||
/* Scan to find existance of the device */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -633,6 +633,27 @@
|
||||
@@ -633,6 +633,27 @@ config NETFILTER_XT_MATCH_STATE
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
|||
depends on NETFILTER_XTABLES
|
||||
--- a/net/netfilter/Makefile
|
||||
+++ b/net/netfilter/Makefile
|
||||
@@ -71,6 +71,7 @@
|
||||
@@ -71,6 +71,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_QUOTA) +
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_REALM) += xt_realm.o
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
|
||||
|
@ -2027,7 +2027,7 @@
|
|||
+}
|
||||
--- a/net/netfilter/nf_conntrack_core.c
|
||||
+++ b/net/netfilter/nf_conntrack_core.c
|
||||
@@ -207,6 +207,14 @@
|
||||
@@ -207,6 +207,14 @@ destroy_conntrack(struct nf_conntrack *n
|
||||
* too. */
|
||||
nf_ct_remove_expectations(ct);
|
||||
|
||||
|
@ -2044,7 +2044,7 @@
|
|||
BUG_ON(hlist_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnode));
|
||||
--- a/net/netfilter/nf_conntrack_standalone.c
|
||||
+++ b/net/netfilter/nf_conntrack_standalone.c
|
||||
@@ -179,7 +179,12 @@
|
||||
@@ -179,7 +179,12 @@ static int ct_seq_show(struct seq_file *
|
||||
return -ENOSPC;
|
||||
#endif
|
||||
|
||||
|
@ -2060,7 +2060,7 @@
|
|||
return 0;
|
||||
--- a/include/net/netfilter/nf_conntrack.h
|
||||
+++ b/include/net/netfilter/nf_conntrack.h
|
||||
@@ -127,6 +127,22 @@
|
||||
@@ -127,6 +127,22 @@ struct nf_conn
|
||||
u_int32_t secmark;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/netfilter/xt_layer7.h
|
||||
+++ b/include/linux/netfilter/xt_layer7.h
|
||||
@@ -8,6 +8,7 @@
|
||||
@@ -8,6 +8,7 @@ struct xt_layer7_info {
|
||||
char protocol[MAX_PROTOCOL_LEN];
|
||||
char pattern[MAX_PATTERN_LEN];
|
||||
u_int8_t invert;
|
||||
|
@ -10,7 +10,7 @@
|
|||
#endif /* _XT_LAYER7_H */
|
||||
--- a/net/netfilter/xt_layer7.c
|
||||
+++ b/net/netfilter/xt_layer7.c
|
||||
@@ -297,34 +297,36 @@
|
||||
@@ -297,34 +297,36 @@ static int match_no_append(struct nf_con
|
||||
}
|
||||
|
||||
/* add the new app data to the conntrack. Return number of bytes added. */
|
||||
|
@ -61,7 +61,7 @@
|
|||
return length;
|
||||
}
|
||||
|
||||
@@ -411,7 +413,7 @@
|
||||
@@ -411,7 +413,7 @@ match(const struct sk_buff *skbin,
|
||||
const struct xt_layer7_info * info = matchinfo;
|
||||
enum ip_conntrack_info master_ctinfo, ctinfo;
|
||||
struct nf_conn *master_conntrack, *conntrack;
|
||||
|
@ -70,7 +70,7 @@
|
|||
unsigned int pattern_result, appdatalen;
|
||||
regexp * comppattern;
|
||||
|
||||
@@ -439,8 +441,8 @@
|
||||
@@ -439,8 +441,8 @@ match(const struct sk_buff *skbin,
|
||||
master_conntrack = master_ct(master_conntrack);
|
||||
|
||||
/* if we've classified it or seen too many packets */
|
||||
|
@ -81,7 +81,7 @@
|
|||
|
||||
pattern_result = match_no_append(conntrack, master_conntrack,
|
||||
ctinfo, master_ctinfo, info);
|
||||
@@ -473,6 +475,25 @@
|
||||
@@ -473,6 +475,25 @@ match(const struct sk_buff *skbin,
|
||||
/* the return value gets checked later, when we're ready to use it */
|
||||
comppattern = compile_and_cache(info->pattern, info->protocol);
|
||||
|
||||
|
|
|
@ -893,7 +893,7 @@
|
|||
+
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -63,6 +63,12 @@
|
||||
@@ -63,6 +63,12 @@ config IP_NF_MATCH_IPRANGE
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -908,7 +908,7 @@
|
|||
depends on IP_NF_IPTABLES
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -50,6 +50,8 @@
|
||||
@@ -50,6 +50,8 @@ obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_ADDRTYPE) += ipt_addrtype.o
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
+extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func);
|
||||
--- a/net/ipv4/Kconfig
|
||||
+++ b/net/ipv4/Kconfig
|
||||
@@ -224,6 +224,12 @@
|
||||
@@ -224,6 +224,12 @@ config NET_IPGRE_BROADCAST
|
||||
Network), but can be distributed all over the Internet. If you want
|
||||
to do that, say Y here and to "IP multicast routing" below.
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
|||
|
||||
static int xfrm4_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq)
|
||||
{
|
||||
@@ -161,6 +162,29 @@
|
||||
@@ -161,6 +162,29 @@ drop:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
/* If it's a keepalive packet, then just eat it.
|
||||
* If it's an encapsulated packet, then pass it to the
|
||||
* IPsec xfrm input.
|
||||
@@ -251,7 +275,13 @@
|
||||
@@ -251,7 +275,13 @@ int xfrm4_udp_encap_rcv(struct sock *sk,
|
||||
iph->protocol = IPPROTO_ESP;
|
||||
|
||||
/* process ESP */
|
||||
|
@ -80,7 +80,7 @@
|
|||
return ret;
|
||||
|
||||
drop:
|
||||
@@ -265,3 +295,8 @@
|
||||
@@ -265,3 +295,8 @@ int xfrm4_rcv(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(xfrm4_rcv);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
--- a/include/linux/netfilter_ipv4/Kbuild
|
||||
+++ b/include/linux/netfilter_ipv4/Kbuild
|
||||
@@ -45,3 +45,14 @@
|
||||
|
||||
@@ -45,3 +45,14 @@ header-y += ipt_ULOG.h
|
||||
|
||||
unifdef-y += ip_queue.h
|
||||
unifdef-y += ip_tables.h
|
||||
+
|
||||
|
@ -7527,7 +7527,7 @@
|
|||
+module_exit(ipt_SET_fini);
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -408,5 +408,122 @@
|
||||
@@ -408,5 +408,122 @@ config IP_NF_ARP_MANGLE
|
||||
Allows altering the ARP packet payload: source and destination
|
||||
hardware and network addresses.
|
||||
|
||||
|
@ -7652,7 +7652,7 @@
|
|||
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -48,6 +48,7 @@
|
||||
@@ -48,6 +48,7 @@ obj-$(CONFIG_IP_NF_MATCH_RECENT) += ipt_
|
||||
obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_TTL) += ipt_ttl.o
|
||||
|
@ -7660,7 +7660,7 @@
|
|||
obj-$(CONFIG_IP_NF_MATCH_ADDRTYPE) += ipt_addrtype.o
|
||||
|
||||
obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o
|
||||
@@ -64,6 +65,18 @@
|
||||
@@ -64,6 +65,18 @@ obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LO
|
||||
obj-$(CONFIG_IP_NF_TARGET_ULOG) += ipt_ULOG.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_TTL) += ipt_TTL.o
|
||||
|
|
|
@ -204,7 +204,7 @@
|
|||
+}
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -78,6 +78,22 @@
|
||||
@@ -78,6 +78,22 @@ config IP_NF_MATCH_TOS
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -229,7 +229,7 @@
|
|||
depends on IP_NF_IPTABLES
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -44,6 +44,7 @@
|
||||
@@ -44,6 +44,7 @@ obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_IPRANGE) += ipt_iprange.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_OWNER) += ipt_owner.o
|
||||
obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o
|
||||
|
|
|
@ -403,7 +403,7 @@
|
|||
+MODULE_LICENSE("GPL");
|
||||
--- a/drivers/net/Kconfig
|
||||
+++ b/drivers/net/Kconfig
|
||||
@@ -112,6 +112,129 @@
|
||||
@@ -112,6 +112,129 @@ config EQUALIZER
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called eql. If unsure, say N.
|
||||
|
||||
|
@ -535,7 +535,7 @@
|
|||
select CRC32
|
||||
--- a/drivers/net/Makefile
|
||||
+++ b/drivers/net/Makefile
|
||||
@@ -131,6 +131,7 @@
|
||||
@@ -131,6 +131,7 @@ obj-$(CONFIG_SLHC) += slhc.o
|
||||
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
|
||||
|
||||
obj-$(CONFIG_DUMMY) += dummy.o
|
||||
|
@ -579,7 +579,7 @@
|
|||
+#endif /* _IP6T_IMQ_H */
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -295,6 +295,10 @@
|
||||
@@ -295,6 +295,10 @@ struct sk_buff {
|
||||
struct nf_conntrack *nfct;
|
||||
struct sk_buff *nfct_reasm;
|
||||
#endif
|
||||
|
@ -590,7 +590,7 @@
|
|||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
struct nf_bridge_info *nf_bridge;
|
||||
#endif
|
||||
@@ -1725,6 +1729,10 @@
|
||||
@@ -1725,6 +1729,10 @@ static inline void __nf_copy(struct sk_b
|
||||
dst->nfct_reasm = src->nfct_reasm;
|
||||
nf_conntrack_get_reasm(src->nfct_reasm);
|
||||
#endif
|
||||
|
@ -613,7 +613,7 @@
|
|||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/stat.h>
|
||||
@@ -1462,7 +1465,11 @@
|
||||
@@ -1462,7 +1465,11 @@ static int dev_gso_segment(struct sk_buf
|
||||
int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
if (likely(!skb->next)) {
|
||||
|
@ -700,7 +700,7 @@
|
|||
+MODULE_LICENSE("GPL");
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -333,6 +333,17 @@
|
||||
@@ -333,6 +333,17 @@ config IP_NF_MANGLE
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -720,7 +720,7 @@
|
|||
depends on IP_NF_MANGLE
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -58,6 +58,7 @@
|
||||
@@ -58,6 +58,7 @@ obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_i
|
||||
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
|
||||
|
@ -802,7 +802,7 @@
|
|||
+MODULE_LICENSE("GPL");
|
||||
--- a/net/ipv6/netfilter/Kconfig
|
||||
+++ b/net/ipv6/netfilter/Kconfig
|
||||
@@ -173,6 +173,15 @@
|
||||
@@ -173,6 +173,15 @@ config IP6_NF_MANGLE
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -820,7 +820,7 @@
|
|||
depends on IP6_NF_MANGLE
|
||||
--- a/net/ipv6/netfilter/Makefile
|
||||
+++ b/net/ipv6/netfilter/Makefile
|
||||
@@ -13,6 +13,7 @@
|
||||
@@ -13,6 +13,7 @@ obj-$(CONFIG_IP6_NF_MATCH_EUI64) += ip6t
|
||||
obj-$(CONFIG_IP6_NF_MATCH_OWNER) += ip6t_owner.o
|
||||
obj-$(CONFIG_IP6_NF_FILTER) += ip6table_filter.o
|
||||
obj-$(CONFIG_IP6_NF_MANGLE) += ip6table_mangle.o
|
||||
|
@ -830,7 +830,7 @@
|
|||
obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_LOG.o
|
||||
--- a/net/sched/sch_generic.c
|
||||
+++ b/net/sched/sch_generic.c
|
||||
@@ -191,6 +191,11 @@
|
||||
@@ -191,6 +191,11 @@ static inline int qdisc_restart(struct n
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -842,7 +842,7 @@
|
|||
void __qdisc_run(struct net_device *dev)
|
||||
{
|
||||
do {
|
||||
@@ -620,3 +625,4 @@
|
||||
@@ -620,3 +625,4 @@ EXPORT_SYMBOL(qdisc_destroy);
|
||||
EXPORT_SYMBOL(qdisc_reset);
|
||||
EXPORT_SYMBOL(qdisc_lock_tree);
|
||||
EXPORT_SYMBOL(qdisc_unlock_tree);
|
||||
|
|
|
@ -518,7 +518,7 @@
|
|||
+module_exit(fini);
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -552,5 +552,22 @@
|
||||
@@ -552,5 +552,22 @@ config IP_NF_TARGET_SET
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
||||
|
@ -543,7 +543,7 @@
|
|||
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -61,6 +61,7 @@
|
||||
@@ -61,6 +61,7 @@ obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_EC
|
||||
obj-$(CONFIG_IP_NF_TARGET_IMQ) += ipt_IMQ.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_MASQUERADE) += ipt_MASQUERADE.o
|
||||
obj-$(CONFIG_IP_NF_TARGET_REDIRECT) += ipt_REDIRECT.o
|
||||
|
@ -553,7 +553,7 @@
|
|||
obj-$(CONFIG_IP_NF_TARGET_LOG) += ipt_LOG.o
|
||||
--- a/net/ipv6/ndisc.c
|
||||
+++ b/net/ipv6/ndisc.c
|
||||
@@ -154,6 +154,8 @@
|
||||
@@ -154,6 +154,8 @@ struct neigh_table nd_tbl = {
|
||||
.gc_thresh3 = 1024,
|
||||
};
|
||||
|
||||
|
@ -897,7 +897,7 @@
|
|||
+MODULE_LICENSE("GPL");
|
||||
--- a/net/ipv6/netfilter/Kconfig
|
||||
+++ b/net/ipv6/netfilter/Kconfig
|
||||
@@ -209,5 +209,18 @@
|
||||
@@ -209,5 +209,18 @@ config IP6_NF_RAW
|
||||
If you want to compile it as a module, say M here and read
|
||||
<file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
|
||||
|
||||
|
@ -918,7 +918,7 @@
|
|||
|
||||
--- a/net/ipv6/netfilter/Makefile
|
||||
+++ b/net/ipv6/netfilter/Makefile
|
||||
@@ -20,6 +20,7 @@
|
||||
@@ -20,6 +20,7 @@ obj-$(CONFIG_IP6_NF_TARGET_LOG) += ip6t_
|
||||
obj-$(CONFIG_IP6_NF_RAW) += ip6table_raw.o
|
||||
obj-$(CONFIG_IP6_NF_MATCH_HL) += ip6t_hl.o
|
||||
obj-$(CONFIG_IP6_NF_TARGET_REJECT) += ip6t_REJECT.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/netfilter/Kbuild
|
||||
+++ b/include/linux/netfilter/Kbuild
|
||||
@@ -3,6 +3,7 @@
|
||||
@@ -3,6 +3,7 @@ header-y += nf_conntrack_tuple_common.h
|
||||
header-y += nfnetlink_conntrack.h
|
||||
header-y += nfnetlink_log.h
|
||||
header-y += nfnetlink_queue.h
|
||||
|
@ -105,7 +105,7 @@
|
|||
+#define xt_request_find_match xt_request_find_match_lo
|
||||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -265,6 +265,14 @@
|
||||
@@ -265,6 +265,14 @@ config NETFILTER_XTABLES
|
||||
|
||||
# alphabetically ordered list of targets
|
||||
|
||||
|
@ -120,7 +120,7 @@
|
|||
config NETFILTER_XT_TARGET_CLASSIFY
|
||||
tristate '"CLASSIFY" target support'
|
||||
depends on NETFILTER_XTABLES
|
||||
@@ -292,6 +300,14 @@
|
||||
@@ -292,6 +300,14 @@ config NETFILTER_XT_TARGET_CONNMARK
|
||||
<file:Documentation/kbuild/modules.txt>. The module will be called
|
||||
ipt_CONNMARK.ko. If unsure, say `N'.
|
||||
|
||||
|
@ -135,7 +135,7 @@
|
|||
config NETFILTER_XT_TARGET_DSCP
|
||||
tristate '"DSCP" target support'
|
||||
depends on NETFILTER_XTABLES
|
||||
@@ -556,6 +572,14 @@
|
||||
@@ -556,6 +572,14 @@ config NETFILTER_XT_MATCH_POLICY
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -152,7 +152,7 @@
|
|||
depends on NETFILTER_XTABLES
|
||||
--- a/net/netfilter/Makefile
|
||||
+++ b/net/netfilter/Makefile
|
||||
@@ -49,6 +49,8 @@
|
||||
@@ -49,6 +49,8 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_TRACE)
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_SECMARK) += xt_SECMARK.o
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_TCPMSS) += xt_TCPMSS.o
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
|
||||
|
@ -161,7 +161,7 @@
|
|||
|
||||
# matches
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_COMMENT) += xt_comment.o
|
||||
@@ -78,3 +80,4 @@
|
||||
@@ -78,3 +80,4 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS)
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_PHYSDEV) += xt_physdev.o
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_U32) += xt_u32.o
|
||||
obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
|
||||
|
@ -843,7 +843,7 @@
|
|||
+MODULE_ALIAS("ipt_portscan");
|
||||
--- a/drivers/char/random.c
|
||||
+++ b/drivers/char/random.c
|
||||
@@ -1564,6 +1564,8 @@
|
||||
@@ -1564,6 +1564,8 @@ __u32 secure_tcp_sequence_number(__be32
|
||||
return seq;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -401,6 +401,23 @@
|
||||
@@ -401,6 +401,23 @@ config NETFILTER_XT_TARGET_CONNSECMARK
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
depends on NETFILTER_XTABLES && (IPV6 || IPV6=n)
|
||||
--- a/net/netfilter/Makefile
|
||||
+++ b/net/netfilter/Makefile
|
||||
@@ -47,6 +47,7 @@
|
||||
@@ -47,6 +47,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG)
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_NOTRACK) += xt_NOTRACK.o
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_TRACE) += xt_TRACE.o
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_SECMARK) += xt_SECMARK.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -143,7 +143,7 @@
|
||||
@@ -143,7 +143,7 @@ config NF_CONNTRACK_FTP
|
||||
|
||||
config NF_CONNTRACK_H323
|
||||
tristate "H.323 protocol support (EXPERIMENTAL)"
|
||||
|
@ -9,7 +9,7 @@
|
|||
help
|
||||
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
|
||||
important VoIP protocols, it is widely used by voice hardware and
|
||||
@@ -420,7 +420,7 @@
|
||||
@@ -420,7 +420,7 @@ config NETFILTER_XT_TARGET_TARPIT
|
||||
|
||||
config NETFILTER_XT_TARGET_TCPMSS
|
||||
tristate '"TCPMSS" target support'
|
||||
|
|
|
@ -294,7 +294,7 @@
|
|||
+#endif /* _NETFILTER_MIME_H */
|
||||
--- a/net/ipv4/netfilter/Makefile
|
||||
+++ b/net/ipv4/netfilter/Makefile
|
||||
@@ -23,6 +23,7 @@
|
||||
@@ -23,6 +23,7 @@ obj-$(CONFIG_NF_NAT_AMANDA) += nf_nat_am
|
||||
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
|
||||
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
|
||||
obj-$(CONFIG_NF_NAT_IRC) += nf_nat_irc.o
|
||||
|
@ -304,7 +304,7 @@
|
|||
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
|
||||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -249,6 +249,16 @@
|
||||
@@ -249,6 +249,16 @@ config NF_CONNTRACK_TFTP
|
||||
|
||||
To compile it as a module, choose M here. If unsure, say N.
|
||||
|
||||
|
@ -323,7 +323,7 @@
|
|||
depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
|
||||
--- a/net/netfilter/Makefile
|
||||
+++ b/net/netfilter/Makefile
|
||||
@@ -33,6 +33,7 @@
|
||||
@@ -33,6 +33,7 @@ obj-$(CONFIG_NF_CONNTRACK_PPTP) += nf_co
|
||||
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
|
||||
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
|
||||
obj-$(CONFIG_NF_CONNTRACK_TFTP) += nf_conntrack_tftp.o
|
||||
|
@ -333,7 +333,7 @@
|
|||
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
|
||||
--- a/net/ipv4/netfilter/Kconfig
|
||||
+++ b/net/ipv4/netfilter/Kconfig
|
||||
@@ -296,6 +296,11 @@
|
||||
@@ -296,6 +296,11 @@ config NF_NAT_IRC
|
||||
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
|
||||
default NF_NAT && NF_CONNTRACK_IRC
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/pkt_sched.h
|
||||
+++ b/include/linux/pkt_sched.h
|
||||
@@ -155,8 +155,37 @@
|
||||
@@ -155,8 +155,37 @@ struct tc_sfq_qopt
|
||||
*
|
||||
* The only reason for this is efficiency, it is possible
|
||||
* to change these parameters in compile time.
|
||||
|
@ -40,7 +40,7 @@
|
|||
enum
|
||||
--- a/net/sched/Kconfig
|
||||
+++ b/net/sched/Kconfig
|
||||
@@ -144,6 +144,37 @@
|
||||
@@ -144,6 +144,37 @@ config NET_SCH_SFQ
|
||||
To compile this code as a module, choose M here: the
|
||||
module will be called sch_sfq.
|
||||
|
||||
|
@ -80,7 +80,7 @@
|
|||
---help---
|
||||
--- a/net/sched/Makefile
|
||||
+++ b/net/sched/Makefile
|
||||
@@ -22,6 +22,7 @@
|
||||
@@ -22,6 +22,7 @@ obj-$(CONFIG_NET_SCH_GRED) += sch_gred.o
|
||||
obj-$(CONFIG_NET_SCH_INGRESS) += sch_ingress.o
|
||||
obj-$(CONFIG_NET_SCH_DSMARK) += sch_dsmark.o
|
||||
obj-$(CONFIG_NET_SCH_SFQ) += sch_sfq.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/rtnetlink.h
|
||||
+++ b/include/linux/rtnetlink.h
|
||||
@@ -293,6 +293,8 @@
|
||||
@@ -293,6 +293,8 @@ struct rtnexthop
|
||||
#define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */
|
||||
#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
|
||||
#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
|
||||
|
@ -11,7 +11,7 @@
|
|||
|
||||
--- a/include/net/flow.h
|
||||
+++ b/include/net/flow.h
|
||||
@@ -19,6 +19,8 @@
|
||||
@@ -19,6 +19,8 @@ struct flowi {
|
||||
struct {
|
||||
__be32 daddr;
|
||||
__be32 saddr;
|
||||
|
@ -20,7 +20,7 @@
|
|||
__u8 tos;
|
||||
__u8 scope;
|
||||
} ip4_u;
|
||||
@@ -43,6 +45,8 @@
|
||||
@@ -43,6 +45,8 @@ struct flowi {
|
||||
#define fl6_flowlabel nl_u.ip6_u.flowlabel
|
||||
#define fl4_dst nl_u.ip4_u.daddr
|
||||
#define fl4_src nl_u.ip4_u.saddr
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -1116,6 +1116,7 @@
|
||||
@@ -1116,6 +1116,7 @@ void ip_rt_redirect(__be32 old_gw, __be3
|
||||
|
||||
/* Gateway is different ... */
|
||||
rt->rt_gateway = new_gw;
|
||||
|
@ -39,7 +39,7 @@
|
|||
|
||||
/* Redirect received -> path was valid */
|
||||
dst_confirm(&rth->u.dst);
|
||||
@@ -1551,6 +1552,7 @@
|
||||
@@ -1551,6 +1552,7 @@ static int ip_route_input_mc(struct sk_b
|
||||
rth->fl.fl4_tos = tos;
|
||||
rth->fl.mark = skb->mark;
|
||||
rth->fl.fl4_src = saddr;
|
||||
|
@ -47,7 +47,7 @@
|
|||
rth->rt_src = saddr;
|
||||
#ifdef CONFIG_NET_CLS_ROUTE
|
||||
rth->u.dst.tclassid = itag;
|
||||
@@ -1561,6 +1563,7 @@
|
||||
@@ -1561,6 +1563,7 @@ static int ip_route_input_mc(struct sk_b
|
||||
dev_hold(rth->u.dst.dev);
|
||||
rth->idev = in_dev_get(rth->u.dst.dev);
|
||||
rth->fl.oif = 0;
|
||||
|
@ -55,7 +55,7 @@
|
|||
rth->rt_gateway = daddr;
|
||||
rth->rt_spec_dst= spec_dst;
|
||||
rth->rt_type = RTN_MULTICAST;
|
||||
@@ -1624,7 +1627,7 @@
|
||||
@@ -1624,7 +1627,7 @@ static void ip_handle_martian_source(str
|
||||
static inline int __mkroute_input(struct sk_buff *skb,
|
||||
struct fib_result* res,
|
||||
struct in_device *in_dev,
|
||||
|
@ -64,7 +64,7 @@
|
|||
struct rtable **result)
|
||||
{
|
||||
|
||||
@@ -1659,6 +1662,7 @@
|
||||
@@ -1659,6 +1662,7 @@ static inline int __mkroute_input(struct
|
||||
flags |= RTCF_DIRECTSRC;
|
||||
|
||||
if (out_dev == in_dev && err && !(flags & (RTCF_NAT | RTCF_MASQ)) &&
|
||||
|
@ -72,7 +72,7 @@
|
|||
(IN_DEV_SHARED_MEDIA(out_dev) ||
|
||||
inet_addr_onlink(out_dev, saddr, FIB_RES_GW(*res))))
|
||||
flags |= RTCF_DOREDIRECT;
|
||||
@@ -1692,6 +1696,7 @@
|
||||
@@ -1692,6 +1696,7 @@ static inline int __mkroute_input(struct
|
||||
rth->fl.mark = skb->mark;
|
||||
rth->fl.fl4_src = saddr;
|
||||
rth->rt_src = saddr;
|
||||
|
@ -80,7 +80,7 @@
|
|||
rth->rt_gateway = daddr;
|
||||
rth->rt_iif =
|
||||
rth->fl.iif = in_dev->dev->ifindex;
|
||||
@@ -1699,6 +1704,7 @@
|
||||
@@ -1699,6 +1704,7 @@ static inline int __mkroute_input(struct
|
||||
dev_hold(rth->u.dst.dev);
|
||||
rth->idev = in_dev_get(rth->u.dst.dev);
|
||||
rth->fl.oif = 0;
|
||||
|
@ -88,7 +88,7 @@
|
|||
rth->rt_spec_dst= spec_dst;
|
||||
|
||||
rth->u.dst.input = ip_forward;
|
||||
@@ -1720,19 +1726,21 @@
|
||||
@@ -1720,19 +1726,21 @@ static inline int ip_mkroute_input(struc
|
||||
struct fib_result* res,
|
||||
const struct flowi *fl,
|
||||
struct in_device *in_dev,
|
||||
|
@ -113,7 +113,7 @@
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
@@ -1752,18 +1760,18 @@
|
||||
@@ -1752,18 +1760,18 @@ static inline int ip_mkroute_input(struc
|
||||
*/
|
||||
|
||||
static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
||||
|
@ -135,7 +135,7 @@
|
|||
unsigned flags = 0;
|
||||
u32 itag = 0;
|
||||
struct rtable * rth;
|
||||
@@ -1796,6 +1804,12 @@
|
||||
@@ -1796,6 +1804,12 @@ static int ip_route_input_slow(struct sk
|
||||
if (BADCLASS(daddr) || ZERONET(daddr) || LOOPBACK(daddr))
|
||||
goto martian_destination;
|
||||
|
||||
|
@ -148,7 +148,7 @@
|
|||
/*
|
||||
* Now we are ready to route packet.
|
||||
*/
|
||||
@@ -1805,6 +1819,10 @@
|
||||
@@ -1805,6 +1819,10 @@ static int ip_route_input_slow(struct sk
|
||||
goto no_route;
|
||||
}
|
||||
free_res = 1;
|
||||
|
@ -159,7 +159,7 @@
|
|||
|
||||
RT_CACHE_STAT_INC(in_slow_tot);
|
||||
|
||||
@@ -1829,7 +1847,7 @@
|
||||
@@ -1829,7 +1847,7 @@ static int ip_route_input_slow(struct sk
|
||||
if (res.type != RTN_UNICAST)
|
||||
goto martian_destination;
|
||||
|
||||
|
@ -168,7 +168,7 @@
|
|||
if (err == -ENOBUFS)
|
||||
goto e_nobufs;
|
||||
if (err == -EINVAL)
|
||||
@@ -1844,6 +1862,8 @@
|
||||
@@ -1844,6 +1862,8 @@ out: return err;
|
||||
brd_input:
|
||||
if (skb->protocol != htons(ETH_P_IP))
|
||||
goto e_inval;
|
||||
|
@ -177,7 +177,7 @@
|
|||
|
||||
if (ZERONET(saddr))
|
||||
spec_dst = inet_select_addr(dev, 0, RT_SCOPE_LINK);
|
||||
@@ -1884,6 +1904,7 @@
|
||||
@@ -1884,6 +1904,7 @@ local_input:
|
||||
rth->u.dst.dev = &loopback_dev;
|
||||
dev_hold(rth->u.dst.dev);
|
||||
rth->idev = in_dev_get(rth->u.dst.dev);
|
||||
|
@ -185,7 +185,7 @@
|
|||
rth->rt_gateway = daddr;
|
||||
rth->rt_spec_dst= spec_dst;
|
||||
rth->u.dst.input= ip_local_deliver;
|
||||
@@ -1933,8 +1954,9 @@
|
||||
@@ -1933,8 +1954,9 @@ martian_source:
|
||||
goto e_inval;
|
||||
}
|
||||
|
||||
|
@ -197,7 +197,7 @@
|
|||
{
|
||||
struct rtable * rth;
|
||||
unsigned hash;
|
||||
@@ -1949,6 +1971,7 @@
|
||||
@@ -1949,6 +1971,7 @@ int ip_route_input(struct sk_buff *skb,
|
||||
if (rth->fl.fl4_dst == daddr &&
|
||||
rth->fl.fl4_src == saddr &&
|
||||
rth->fl.iif == iif &&
|
||||
|
@ -205,7 +205,7 @@
|
|||
rth->fl.oif == 0 &&
|
||||
rth->fl.mark == skb->mark &&
|
||||
rth->fl.fl4_tos == tos) {
|
||||
@@ -1995,7 +2018,19 @@
|
||||
@@ -1995,7 +2018,19 @@ int ip_route_input(struct sk_buff *skb,
|
||||
rcu_read_unlock();
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -226,7 +226,7 @@
|
|||
}
|
||||
|
||||
static inline int __mkroute_output(struct rtable **result,
|
||||
@@ -2067,6 +2102,7 @@
|
||||
@@ -2067,6 +2102,7 @@ static inline int __mkroute_output(struc
|
||||
rth->fl.fl4_tos = tos;
|
||||
rth->fl.fl4_src = oldflp->fl4_src;
|
||||
rth->fl.oif = oldflp->oif;
|
||||
|
@ -234,7 +234,7 @@
|
|||
rth->fl.mark = oldflp->mark;
|
||||
rth->rt_dst = fl->fl4_dst;
|
||||
rth->rt_src = fl->fl4_src;
|
||||
@@ -2145,6 +2181,7 @@
|
||||
@@ -2145,6 +2181,7 @@ static int ip_route_output_slow(struct r
|
||||
struct flowi fl = { .nl_u = { .ip4_u =
|
||||
{ .daddr = oldflp->fl4_dst,
|
||||
.saddr = oldflp->fl4_src,
|
||||
|
@ -242,7 +242,7 @@
|
|||
.tos = tos & IPTOS_RT_MASK,
|
||||
.scope = ((tos & RTO_ONLINK) ?
|
||||
RT_SCOPE_LINK :
|
||||
@@ -2248,6 +2285,7 @@
|
||||
@@ -2248,6 +2285,7 @@ static int ip_route_output_slow(struct r
|
||||
dev_out = &loopback_dev;
|
||||
dev_hold(dev_out);
|
||||
fl.oif = loopback_dev.ifindex;
|
||||
|
@ -250,7 +250,7 @@
|
|||
res.type = RTN_LOCAL;
|
||||
flags |= RTCF_LOCAL;
|
||||
goto make_route;
|
||||
@@ -2255,7 +2293,7 @@
|
||||
@@ -2255,7 +2293,7 @@ static int ip_route_output_slow(struct r
|
||||
|
||||
if (fib_lookup(&fl, &res)) {
|
||||
res.fi = NULL;
|
||||
|
@ -259,7 +259,7 @@
|
|||
/* Apparently, routing tables are wrong. Assume,
|
||||
that the destination is on link.
|
||||
|
||||
@@ -2295,6 +2333,7 @@
|
||||
@@ -2295,6 +2333,7 @@ static int ip_route_output_slow(struct r
|
||||
dev_out = &loopback_dev;
|
||||
dev_hold(dev_out);
|
||||
fl.oif = dev_out->ifindex;
|
||||
|
@ -267,7 +267,7 @@
|
|||
if (res.fi)
|
||||
fib_info_put(res.fi);
|
||||
res.fi = NULL;
|
||||
@@ -2302,13 +2341,12 @@
|
||||
@@ -2302,13 +2341,12 @@ static int ip_route_output_slow(struct r
|
||||
goto make_route;
|
||||
}
|
||||
|
||||
|
@ -284,7 +284,7 @@
|
|||
|
||||
if (!fl.fl4_src)
|
||||
fl.fl4_src = FIB_RES_PREFSRC(res);
|
||||
@@ -2345,6 +2383,7 @@
|
||||
@@ -2345,6 +2383,7 @@ int __ip_route_output_key(struct rtable
|
||||
rth->fl.fl4_src == flp->fl4_src &&
|
||||
rth->fl.iif == 0 &&
|
||||
rth->fl.oif == flp->oif &&
|
||||
|
@ -292,7 +292,7 @@
|
|||
rth->fl.mark == flp->mark &&
|
||||
!((rth->fl.fl4_tos ^ flp->fl4_tos) &
|
||||
(IPTOS_RT_MASK | RTO_ONLINK))) {
|
||||
@@ -3030,3 +3069,4 @@
|
||||
@@ -3030,3 +3069,4 @@ int __init ip_rt_init(void)
|
||||
EXPORT_SYMBOL(__ip_select_ident);
|
||||
EXPORT_SYMBOL(ip_route_input);
|
||||
EXPORT_SYMBOL(ip_route_output_key);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/arch/mips/Makefile
|
||||
+++ b/arch/mips/Makefile
|
||||
@@ -565,6 +565,9 @@
|
||||
@@ -565,6 +565,9 @@ core-$(CONFIG_TOSHIBA_RBTX4938) += arch/
|
||||
cflags-$(CONFIG_TOSHIBA_RBTX4938) += -Iinclude/asm-mips/mach-tx49xx
|
||||
load-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/fs/jffs2/build.c
|
||||
+++ b/fs/jffs2/build.c
|
||||
@@ -105,6 +105,17 @@
|
||||
@@ -105,6 +105,17 @@ static int jffs2_build_filesystem(struct
|
||||
dbg_fsbuild("scanned flash completely\n");
|
||||
jffs2_dbg_dump_block_lists_nolock(c);
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
|||
/* Now scan the directory tree, increasing nlink according to every dirent found. */
|
||||
--- a/fs/jffs2/scan.c
|
||||
+++ b/fs/jffs2/scan.c
|
||||
@@ -142,9 +142,12 @@
|
||||
@@ -142,9 +142,12 @@ int jffs2_scan_medium(struct jffs2_sb_in
|
||||
|
||||
/* reset summary info for next eraseblock scan */
|
||||
jffs2_sum_reset_collected(s);
|
||||
|
@ -36,7 +36,7 @@
|
|||
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
@@ -545,6 +548,17 @@
|
||||
@@ -545,6 +548,17 @@ static int jffs2_scan_eraseblock (struct
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/r8169.c
|
||||
+++ b/drivers/net/r8169.c
|
||||
@@ -1459,7 +1459,7 @@
|
||||
@@ -1459,7 +1459,7 @@ static const struct rtl_cfg_info {
|
||||
.hw_start = rtl_hw_start_8169,
|
||||
.region = 1,
|
||||
.align = 0,
|
||||
|
@ -9,7 +9,7 @@
|
|||
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
|
||||
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow
|
||||
},
|
||||
@@ -1467,7 +1467,7 @@
|
||||
@@ -1467,7 +1467,7 @@ static const struct rtl_cfg_info {
|
||||
.hw_start = rtl_hw_start_8168,
|
||||
.region = 2,
|
||||
.align = 8,
|
||||
|
@ -18,7 +18,7 @@
|
|||
TxErr | TxOK | RxOK | RxErr,
|
||||
.napi_event = TxErr | TxOK | RxOK | RxOverflow
|
||||
},
|
||||
@@ -1475,7 +1475,7 @@
|
||||
@@ -1475,7 +1475,7 @@ static const struct rtl_cfg_info {
|
||||
.hw_start = rtl_hw_start_8101,
|
||||
.region = 2,
|
||||
.align = 8,
|
||||
|
@ -27,7 +27,7 @@
|
|||
RxFIFOOver | TxErr | TxOK | RxOK | RxErr,
|
||||
.napi_event = RxFIFOOver | TxErr | TxOK | RxOK | RxOverflow
|
||||
}
|
||||
@@ -2779,10 +2779,12 @@
|
||||
@@ -2779,10 +2779,12 @@ static irqreturn_t rtl8169_interrupt(int
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/fs/Kconfig
|
||||
+++ b/fs/Kconfig
|
||||
@@ -458,6 +458,9 @@
|
||||
@@ -458,6 +458,9 @@ config OCFS2_DEBUG_MASKLOG
|
||||
This option will enlarge your kernel, but it allows debugging of
|
||||
ocfs2 filesystem issues.
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
|||
help
|
||||
--- a/fs/Makefile
|
||||
+++ b/fs/Makefile
|
||||
@@ -76,6 +76,7 @@
|
||||
@@ -76,6 +76,7 @@ obj-$(CONFIG_SQUASHFS) += squashfs/
|
||||
obj-$(CONFIG_RAMFS) += ramfs/
|
||||
obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
|
||||
obj-$(CONFIG_CODA_FS) += coda/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/ieee80211.h
|
||||
+++ b/include/linux/ieee80211.h
|
||||
@@ -106,6 +106,75 @@
|
||||
@@ -106,6 +106,75 @@ struct ieee80211_hdr {
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
|
@ -76,7 +76,7 @@
|
|||
struct ieee80211_mgmt {
|
||||
__le16 frame_control;
|
||||
__le16 duration;
|
||||
@@ -173,9 +242,51 @@
|
||||
@@ -173,9 +242,51 @@ struct ieee80211_mgmt {
|
||||
struct {
|
||||
u8 action_code;
|
||||
u8 dialog_token;
|
||||
|
@ -128,7 +128,7 @@
|
|||
struct{
|
||||
u8 action_code;
|
||||
u8 element_id;
|
||||
@@ -184,6 +295,25 @@
|
||||
@@ -184,6 +295,25 @@ struct ieee80211_mgmt {
|
||||
u8 new_chan;
|
||||
u8 switch_count;
|
||||
} __attribute__((packed)) chan_switch;
|
||||
|
@ -154,7 +154,7 @@
|
|||
} u;
|
||||
} __attribute__ ((packed)) action;
|
||||
} u;
|
||||
@@ -270,6 +400,18 @@
|
||||
@@ -270,6 +400,18 @@ enum ieee80211_statuscode {
|
||||
WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
|
||||
WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
|
||||
WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
|
||||
|
@ -173,7 +173,7 @@
|
|||
};
|
||||
|
||||
|
||||
@@ -300,9 +442,50 @@
|
||||
@@ -300,9 +442,50 @@ enum ieee80211_reasoncode {
|
||||
WLAN_REASON_INVALID_RSN_IE_CAP = 22,
|
||||
WLAN_REASON_IEEE8021X_FAILED = 23,
|
||||
WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
|
||||
|
@ -224,7 +224,7 @@
|
|||
/* Information Element IDs */
|
||||
enum ieee80211_eid {
|
||||
WLAN_EID_SSID = 0,
|
||||
@@ -318,6 +501,15 @@
|
||||
@@ -318,6 +501,15 @@ enum ieee80211_eid {
|
||||
WLAN_EID_HP_PARAMS = 8,
|
||||
WLAN_EID_HP_TABLE = 9,
|
||||
WLAN_EID_REQUEST = 10,
|
||||
|
@ -240,7 +240,7 @@
|
|||
/* 802.11h */
|
||||
WLAN_EID_PWR_CONSTRAINT = 32,
|
||||
WLAN_EID_PWR_CAPABILITY = 33,
|
||||
@@ -332,6 +524,9 @@
|
||||
@@ -332,6 +524,9 @@ enum ieee80211_eid {
|
||||
/* 802.11g */
|
||||
WLAN_EID_ERP_INFO = 42,
|
||||
WLAN_EID_EXT_SUPP_RATES = 50,
|
||||
|
@ -250,7 +250,7 @@
|
|||
/* 802.11i */
|
||||
WLAN_EID_RSN = 48,
|
||||
WLAN_EID_WPA = 221,
|
||||
@@ -340,6 +535,9 @@
|
||||
@@ -340,6 +535,9 @@ enum ieee80211_eid {
|
||||
WLAN_EID_QOS_PARAMETER = 222
|
||||
};
|
||||
|
||||
|
@ -260,7 +260,7 @@
|
|||
/* cipher suite selectors */
|
||||
#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00
|
||||
#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01
|
||||
@@ -350,4 +548,37 @@
|
||||
@@ -350,4 +548,37 @@ enum ieee80211_eid {
|
||||
|
||||
#define WLAN_MAX_KEY_LEN 32
|
||||
|
||||
|
@ -518,7 +518,7 @@
|
|||
* enum nl80211_iftype - (virtual) interface types
|
||||
* @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides
|
||||
* @NL80211_IFTYPE_ADHOC: independent BSS member
|
||||
@@ -35,4 +246,56 @@
|
||||
@@ -35,4 +246,56 @@ enum nl80211_iftype {
|
||||
};
|
||||
#define NL80211_IFTYPE_MAX (__NL80211_IFTYPE_AFTER_LAST - 1)
|
||||
|
||||
|
@ -585,7 +585,7 @@
|
|||
#include <net/genetlink.h>
|
||||
|
||||
/*
|
||||
@@ -49,6 +50,69 @@
|
||||
@@ -49,6 +50,69 @@ extern int ieee80211_radiotap_iterator_n
|
||||
struct ieee80211_radiotap_iterator *iterator);
|
||||
|
||||
|
||||
|
@ -655,7 +655,7 @@
|
|||
/* from net/wireless.h */
|
||||
struct wiphy;
|
||||
|
||||
@@ -68,11 +132,62 @@
|
||||
@@ -68,11 +132,62 @@ struct wiphy;
|
||||
* @add_virtual_intf: create a new virtual interface with the given name
|
||||
*
|
||||
* @del_virtual_intf: remove the virtual interface determined by ifindex.
|
||||
|
@ -721,7 +721,7 @@
|
|||
#endif /* __NET_CFG80211_H */
|
||||
--- a/include/net/iw_handler.h
|
||||
+++ b/include/net/iw_handler.h
|
||||
@@ -431,7 +431,13 @@
|
||||
@@ -431,7 +431,13 @@ struct iw_public_data {
|
||||
* Those may be called only within the kernel.
|
||||
*/
|
||||
|
||||
|
@ -738,7 +738,7 @@
|
|||
extern void wireless_send_event(struct net_device * dev,
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -300,7 +300,6 @@
|
||||
@@ -300,7 +300,6 @@ struct ieee80211_conf {
|
||||
/* Following five fields are used for IEEE 802.11H */
|
||||
unsigned int radar_detect;
|
||||
unsigned int spect_mgmt;
|
||||
|
@ -746,7 +746,7 @@
|
|||
unsigned int quiet_duration; /* duration of quiet period */
|
||||
unsigned int quiet_offset; /* how far into the beacon is the quiet
|
||||
* period */
|
||||
@@ -521,6 +520,9 @@
|
||||
@@ -521,6 +520,9 @@ struct ieee80211_hw {
|
||||
* per-packet RC4 key with each TX frame when doing hwcrypto */
|
||||
#define IEEE80211_HW_TKIP_REQ_PHASE2_KEY (1<<14)
|
||||
|
||||
|
@ -756,7 +756,7 @@
|
|||
u32 flags; /* hardware flags defined above */
|
||||
|
||||
/* Set to the size of a needed device specific skb headroom for TX skbs. */
|
||||
@@ -649,8 +651,7 @@
|
||||
@@ -649,8 +651,7 @@ struct ieee80211_ops {
|
||||
* used if the wlan hardware or low-level driver implements PAE.
|
||||
* 80211.o module will anyway filter frames based on authorization
|
||||
* state, so this function pointer can be NULL if low-level driver does
|
||||
|
@ -766,7 +766,7 @@
|
|||
int (*set_port_auth)(struct ieee80211_hw *hw, u8 *addr,
|
||||
int authorized);
|
||||
|
||||
@@ -702,8 +703,9 @@
|
||||
@@ -702,8 +703,9 @@ struct ieee80211_ops {
|
||||
/* Get statistics of the current TX queue status. This is used to get
|
||||
* number of currently queued packets (queue length), maximum queue
|
||||
* size (limit), and total number of packets sent using each TX queue
|
||||
|
@ -778,7 +778,7 @@
|
|||
int (*get_tx_stats)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_tx_queue_stats *stats);
|
||||
|
||||
@@ -713,12 +715,25 @@
|
||||
@@ -713,12 +715,25 @@ struct ieee80211_ops {
|
||||
* Must be atomic. */
|
||||
u64 (*get_tsf)(struct ieee80211_hw *hw);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/lib/kobject_uevent.c
|
||||
+++ b/lib/kobject_uevent.c
|
||||
@@ -40,9 +40,22 @@
|
||||
@@ -40,9 +40,22 @@ u64 uevent_seqnum;
|
||||
char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
|
||||
static DEFINE_SPINLOCK(sequence_lock);
|
||||
#if defined(CONFIG_NET)
|
||||
|
@ -24,7 +24,7 @@
|
|||
/**
|
||||
* kobject_uevent_env - send an uevent with environmental data
|
||||
*
|
||||
@@ -159,9 +172,7 @@
|
||||
@@ -159,9 +172,7 @@ int kobject_uevent_env(struct kobject *k
|
||||
}
|
||||
|
||||
/* we will send an event, request a new sequence number */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/sound/core/Kconfig
|
||||
+++ b/sound/core/Kconfig
|
||||
@@ -9,7 +9,7 @@
|
||||
@@ -9,7 +9,7 @@ config SND_PCM
|
||||
depends on SND
|
||||
|
||||
config SND_HWDEP
|
||||
|
|
|
@ -638,7 +638,7 @@
|
|||
+#endif /* _SYS_TIMEPPS_H_ */
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -3011,6 +3011,13 @@
|
||||
@@ -3011,6 +3011,13 @@ P: James Chapman
|
||||
M: jchapman@katalix.com
|
||||
S: Maintained
|
||||
|
||||
|
@ -654,7 +654,7 @@
|
|||
M: rml@tech9.net
|
||||
--- a/drivers/Kconfig
|
||||
+++ b/drivers/Kconfig
|
||||
@@ -52,6 +52,8 @@
|
||||
@@ -52,6 +52,8 @@ source "drivers/i2c/Kconfig"
|
||||
|
||||
source "drivers/spi/Kconfig"
|
||||
|
||||
|
@ -665,7 +665,7 @@
|
|||
source "drivers/power/Kconfig"
|
||||
--- a/drivers/Makefile
|
||||
+++ b/drivers/Makefile
|
||||
@@ -63,6 +63,7 @@
|
||||
@@ -63,6 +63,7 @@ obj-$(CONFIG_INPUT) += input/
|
||||
obj-$(CONFIG_I2O) += message/
|
||||
obj-$(CONFIG_RTC_LIB) += rtc/
|
||||
obj-y += i2c/
|
||||
|
@ -675,7 +675,7 @@
|
|||
obj-$(CONFIG_HWMON) += hwmon/
|
||||
--- a/drivers/char/lp.c
|
||||
+++ b/drivers/char/lp.c
|
||||
@@ -746,6 +746,27 @@
|
||||
@@ -746,6 +746,27 @@ static struct console lpcons = {
|
||||
|
||||
#endif /* console on line printer */
|
||||
|
||||
|
@ -703,7 +703,7 @@
|
|||
/* --- initialisation code ------------------------------------- */
|
||||
|
||||
static int parport_nr[LP_NO] = { [0 ... LP_NO-1] = LP_PARPORT_UNSPEC };
|
||||
@@ -817,6 +838,38 @@
|
||||
@@ -817,6 +838,38 @@ static int lp_register(int nr, struct pa
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -742,7 +742,7 @@
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -860,6 +913,14 @@
|
||||
@@ -860,6 +913,14 @@ static void lp_detach (struct parport *p
|
||||
console_registered = NULL;
|
||||
}
|
||||
#endif /* CONFIG_LP_CONSOLE */
|
||||
|
@ -1716,7 +1716,7 @@
|
|||
+}
|
||||
--- a/drivers/serial/8250.c
|
||||
+++ b/drivers/serial/8250.c
|
||||
@@ -2118,6 +2118,8 @@
|
||||
@@ -2118,6 +2118,8 @@ serial8250_set_termios(struct uart_port
|
||||
up->ier |= UART_IER_MSI;
|
||||
if (up->capabilities & UART_CAP_UUE)
|
||||
up->ier |= UART_IER_UUE | UART_IER_RTOIE;
|
||||
|
@ -1735,7 +1735,7 @@
|
|||
|
||||
#include <asm/irq.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -633,6 +634,54 @@
|
||||
@@ -633,6 +634,54 @@ static int uart_get_info(struct uart_sta
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1790,7 +1790,7 @@
|
|||
static int uart_set_info(struct uart_state *state,
|
||||
struct serial_struct __user *newinfo)
|
||||
{
|
||||
@@ -807,11 +856,19 @@
|
||||
@@ -807,11 +856,19 @@ static int uart_set_info(struct uart_sta
|
||||
(port->flags & UPF_LOW_LATENCY) ? 1 : 0;
|
||||
|
||||
check_and_exit:
|
||||
|
@ -1811,7 +1811,7 @@
|
|||
old_custom_divisor != port->custom_divisor) {
|
||||
/*
|
||||
* If they're setting up a custom divisor or speed,
|
||||
@@ -2110,6 +2167,12 @@
|
||||
@@ -2110,6 +2167,12 @@ uart_configure_port(struct uart_driver *
|
||||
port->ops->config_port(port, flags);
|
||||
}
|
||||
|
||||
|
@ -1824,7 +1824,7 @@
|
|||
if (port->type != PORT_UNKNOWN) {
|
||||
unsigned long flags;
|
||||
|
||||
@@ -2359,6 +2422,12 @@
|
||||
@@ -2359,6 +2422,12 @@ int uart_remove_one_port(struct uart_dri
|
||||
mutex_unlock(&state->mutex);
|
||||
|
||||
/*
|
||||
|
@ -1839,7 +1839,7 @@
|
|||
tty_unregister_device(drv->tty_driver, port->line);
|
||||
--- a/include/linux/Kbuild
|
||||
+++ b/include/linux/Kbuild
|
||||
@@ -295,6 +295,7 @@
|
||||
@@ -295,6 +295,7 @@ unifdef-y += pmu.h
|
||||
unifdef-y += poll.h
|
||||
unifdef-y += ppp_defs.h
|
||||
unifdef-y += ppp-comp.h
|
||||
|
@ -1849,7 +1849,7 @@
|
|||
unifdef-y += quota.h
|
||||
--- a/include/linux/parport.h
|
||||
+++ b/include/linux/parport.h
|
||||
@@ -100,6 +100,7 @@
|
||||
@@ -100,6 +100,7 @@ typedef enum {
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/wait.h>
|
||||
|
@ -1857,7 +1857,7 @@
|
|||
#include <asm/system.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/semaphore.h>
|
||||
@@ -327,6 +328,11 @@
|
||||
@@ -327,6 +328,11 @@ struct parport {
|
||||
|
||||
struct list_head full_list;
|
||||
struct parport *slaves[3];
|
||||
|
@ -1869,7 +1869,7 @@
|
|||
};
|
||||
|
||||
#define DEFAULT_SPIN_TIME 500 /* us */
|
||||
@@ -517,6 +523,12 @@
|
||||
@@ -517,6 +523,12 @@ extern int parport_daisy_select (struct
|
||||
/* Lowlevel drivers _can_ call this support function to handle irqs. */
|
||||
static __inline__ void parport_generic_irq(int irq, struct parport *port)
|
||||
{
|
||||
|
@ -2091,7 +2091,7 @@
|
|||
|
||||
struct uart_port;
|
||||
struct uart_info;
|
||||
@@ -236,6 +237,9 @@
|
||||
@@ -236,6 +237,9 @@ struct uart_port {
|
||||
unsigned char regshift; /* reg offset shift */
|
||||
unsigned char iotype; /* io access style */
|
||||
unsigned char unused1;
|
||||
|
@ -2101,7 +2101,7 @@
|
|||
|
||||
#define UPIO_PORT (0)
|
||||
#define UPIO_HUB6 (1)
|
||||
@@ -280,7 +284,8 @@
|
||||
@@ -280,7 +284,8 @@ struct uart_port {
|
||||
#define UPF_IOREMAP ((__force upf_t) (1 << 31))
|
||||
|
||||
#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff))
|
||||
|
@ -2111,7 +2111,7 @@
|
|||
|
||||
unsigned int mctrl; /* current modem ctrl settings */
|
||||
unsigned int timeout; /* character-based timeout */
|
||||
@@ -312,6 +317,10 @@
|
||||
@@ -312,6 +317,10 @@ struct uart_state {
|
||||
struct uart_info *info;
|
||||
struct uart_port *port;
|
||||
|
||||
|
@ -2122,7 +2122,7 @@
|
|||
struct mutex mutex;
|
||||
};
|
||||
|
||||
@@ -476,13 +485,22 @@
|
||||
@@ -476,13 +485,22 @@ uart_handle_dcd_change(struct uart_port
|
||||
{
|
||||
struct uart_info *info = port->info;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
--- a/drivers/mmc/host/Kconfig
|
||||
+++ b/drivers/mmc/host/Kconfig
|
||||
@@ -100,3 +100,16 @@
|
||||
@@ -100,3 +100,16 @@ config MMC_TIFM_SD
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called tifm_sd.
|
||||
|
||||
|
@ -23,7 +23,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
+
|
||||
--- a/drivers/mmc/host/Makefile
|
||||
+++ b/drivers/mmc/host/Makefile
|
||||
@@ -15,4 +15,5 @@
|
||||
@@ -15,4 +15,5 @@ obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
||||
obj-$(CONFIG_MMC_OMAP) += omap.o
|
||||
obj-$(CONFIG_MMC_AT91) += at91_mci.o
|
||||
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
||||
|
@ -1497,7 +1497,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#include "bus.h"
|
||||
|
||||
#define dev_to_mmc_card(d) container_of(d, struct mmc_card, dev)
|
||||
@@ -34,6 +35,8 @@
|
||||
@@ -34,6 +35,8 @@ static ssize_t mmc_type_show(struct devi
|
||||
return sprintf(buf, "MMC\n");
|
||||
case MMC_TYPE_SD:
|
||||
return sprintf(buf, "SD\n");
|
||||
|
@ -1506,7 +1506,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
default:
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -55,36 +58,37 @@
|
||||
@@ -55,36 +58,37 @@ static int mmc_bus_match(struct device *
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -1562,7 +1562,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
static int mmc_bus_probe(struct device *dev)
|
||||
@@ -176,6 +180,11 @@
|
||||
@@ -176,6 +180,11 @@ static void mmc_release_card(struct devi
|
||||
{
|
||||
struct mmc_card *card = dev_to_mmc_card(dev);
|
||||
|
||||
|
@ -1574,7 +1574,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
kfree(card);
|
||||
}
|
||||
|
||||
@@ -221,15 +230,25 @@
|
||||
@@ -221,15 +230,25 @@ int mmc_add_card(struct mmc_card *card)
|
||||
if (mmc_card_blockaddr(card))
|
||||
type = "SDHC";
|
||||
break;
|
||||
|
@ -1604,7 +1604,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
card->dev.uevent_suppress = 1;
|
||||
|
||||
@@ -261,8 +280,13 @@
|
||||
@@ -261,8 +280,13 @@ int mmc_add_card(struct mmc_card *card)
|
||||
void mmc_remove_card(struct mmc_card *card)
|
||||
{
|
||||
if (mmc_card_present(card)) {
|
||||
|
@ -1659,7 +1659,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* Internal function. Schedule delayed work in the MMC work queue.
|
||||
*/
|
||||
static int mmc_schedule_delayed_work(struct delayed_work *work,
|
||||
@@ -68,6 +79,11 @@
|
||||
@@ -68,6 +79,11 @@ void mmc_request_done(struct mmc_host *h
|
||||
struct mmc_command *cmd = mrq->cmd;
|
||||
int err = cmd->error;
|
||||
|
||||
|
@ -1671,7 +1671,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
if (err && cmd->retries) {
|
||||
pr_debug("%s: req failed (CMD%u): %d, retrying...\n",
|
||||
mmc_hostname(host), cmd->opcode, err);
|
||||
@@ -76,6 +92,8 @@
|
||||
@@ -76,6 +92,8 @@ void mmc_request_done(struct mmc_host *h
|
||||
cmd->error = 0;
|
||||
host->ops->request(host, mrq);
|
||||
} else {
|
||||
|
@ -1680,7 +1680,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
pr_debug("%s: req done (CMD%u): %d: %08x %08x %08x %08x\n",
|
||||
mmc_hostname(host), cmd->opcode, err,
|
||||
cmd->resp[0], cmd->resp[1],
|
||||
@@ -118,7 +136,7 @@
|
||||
@@ -118,7 +136,7 @@ mmc_start_request(struct mmc_host *host,
|
||||
"tsac %d ms nsac %d\n",
|
||||
mmc_hostname(host), mrq->data->blksz,
|
||||
mrq->data->blocks, mrq->data->flags,
|
||||
|
@ -1689,7 +1689,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mrq->data->timeout_clks);
|
||||
}
|
||||
|
||||
@@ -130,6 +148,8 @@
|
||||
@@ -130,6 +148,8 @@ mmc_start_request(struct mmc_host *host,
|
||||
|
||||
WARN_ON(!host->claimed);
|
||||
|
||||
|
@ -1698,7 +1698,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mrq->cmd->error = 0;
|
||||
mrq->cmd->mrq = mrq;
|
||||
if (mrq->data) {
|
||||
@@ -199,7 +219,7 @@
|
||||
@@ -199,7 +219,7 @@ int mmc_wait_for_cmd(struct mmc_host *ho
|
||||
{
|
||||
struct mmc_request mrq;
|
||||
|
||||
|
@ -1707,7 +1707,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
memset(&mrq, 0, sizeof(struct mmc_request));
|
||||
|
||||
@@ -220,17 +240,24 @@
|
||||
@@ -220,17 +240,24 @@ EXPORT_SYMBOL(mmc_wait_for_cmd);
|
||||
* mmc_set_data_timeout - set the timeout for a data command
|
||||
* @data: data phase for command
|
||||
* @card: the MMC card associated with the data transfer
|
||||
|
@ -1735,7 +1735,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* SD cards use a 100 multiplier rather than 10
|
||||
*/
|
||||
mult = mmc_card_sd(card) ? 100 : 10;
|
||||
@@ -239,7 +266,7 @@
|
||||
@@ -239,7 +266,7 @@ void mmc_set_data_timeout(struct mmc_dat
|
||||
* Scale up the multiplier (and therefore the timeout) by
|
||||
* the r2w factor for writes.
|
||||
*/
|
||||
|
@ -1744,7 +1744,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mult <<= card->csd.r2w_factor;
|
||||
|
||||
data->timeout_ns = card->csd.tacc_ns * mult;
|
||||
@@ -255,7 +282,7 @@
|
||||
@@ -255,7 +282,7 @@ void mmc_set_data_timeout(struct mmc_dat
|
||||
timeout_us += data->timeout_clks * 1000 /
|
||||
(card->host->ios.clock / 1000);
|
||||
|
||||
|
@ -1753,7 +1753,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
limit_us = 250000;
|
||||
else
|
||||
limit_us = 100000;
|
||||
@@ -272,15 +299,20 @@
|
||||
@@ -272,15 +299,20 @@ void mmc_set_data_timeout(struct mmc_dat
|
||||
EXPORT_SYMBOL(mmc_set_data_timeout);
|
||||
|
||||
/**
|
||||
|
@ -1777,7 +1777,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
might_sleep();
|
||||
|
||||
@@ -288,19 +320,24 @@
|
||||
@@ -288,19 +320,24 @@ void mmc_claim_host(struct mmc_host *hos
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
while (1) {
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
|
@ -1805,7 +1805,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/**
|
||||
* mmc_release_host - release a host
|
||||
@@ -313,7 +350,7 @@
|
||||
@@ -313,7 +350,7 @@ void mmc_release_host(struct mmc_host *h
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -1814,7 +1814,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
host->claimed = 0;
|
||||
@@ -433,19 +470,32 @@
|
||||
@@ -433,19 +470,32 @@ static void mmc_power_up(struct mmc_host
|
||||
int bit = fls(host->ocr_avail) - 1;
|
||||
|
||||
host->ios.vdd = bit;
|
||||
|
@ -1850,7 +1850,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mmc_delay(2);
|
||||
}
|
||||
|
||||
@@ -453,8 +503,10 @@
|
||||
@@ -453,8 +503,10 @@ static void mmc_power_off(struct mmc_hos
|
||||
{
|
||||
host->ios.clock = 0;
|
||||
host->ios.vdd = 0;
|
||||
|
@ -1863,7 +1863,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
host->ios.power_mode = MMC_POWER_OFF;
|
||||
host->ios.bus_width = MMC_BUS_WIDTH_1;
|
||||
host->ios.timing = MMC_TIMING_LEGACY;
|
||||
@@ -511,7 +563,7 @@
|
||||
@@ -511,7 +563,7 @@ void mmc_attach_bus(struct mmc_host *hos
|
||||
BUG_ON(!host);
|
||||
BUG_ON(!ops);
|
||||
|
||||
|
@ -1872,7 +1872,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
||||
@@ -535,8 +587,8 @@
|
||||
@@ -535,8 +587,8 @@ void mmc_detach_bus(struct mmc_host *hos
|
||||
|
||||
BUG_ON(!host);
|
||||
|
||||
|
@ -1883,7 +1883,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
||||
@@ -564,7 +616,7 @@
|
||||
@@ -564,7 +616,7 @@ void mmc_detect_change(struct mmc_host *
|
||||
#ifdef CONFIG_MMC_DEBUG
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
@ -1892,7 +1892,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
spin_unlock_irqrestore(&host->lock, flags);
|
||||
#endif
|
||||
|
||||
@@ -597,24 +649,38 @@
|
||||
@@ -597,24 +649,38 @@ void mmc_rescan(struct work_struct *work
|
||||
|
||||
mmc_send_if_cond(host, host->ocr_avail);
|
||||
|
||||
|
@ -1944,7 +1944,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
} else {
|
||||
if (host->bus_ops->detect && !host->bus_dead)
|
||||
host->bus_ops->detect(host);
|
||||
@@ -725,22 +791,38 @@
|
||||
@@ -725,22 +791,38 @@ static int __init mmc_init(void)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = mmc_register_bus();
|
||||
|
@ -1991,7 +1991,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
MODULE_LICENSE("GPL");
|
||||
--- a/drivers/mmc/core/core.h
|
||||
+++ b/drivers/mmc/core/core.h
|
||||
@@ -48,5 +48,7 @@
|
||||
@@ -48,5 +48,7 @@ void mmc_rescan(struct work_struct *work
|
||||
void mmc_start_host(struct mmc_host *host);
|
||||
void mmc_stop_host(struct mmc_host *host);
|
||||
|
||||
|
@ -2009,7 +2009,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
@@ -100,6 +101,9 @@
|
||||
@@ -100,6 +101,9 @@ int mmc_add_host(struct mmc_host *host)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
@ -2019,7 +2019,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
if (!idr_pre_get(&mmc_host_idr, GFP_KERNEL))
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -112,6 +116,8 @@
|
||||
@@ -112,6 +116,8 @@ int mmc_add_host(struct mmc_host *host)
|
||||
snprintf(host->class_dev.bus_id, BUS_ID_SIZE,
|
||||
"mmc%d", host->index);
|
||||
|
||||
|
@ -2028,7 +2028,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
err = device_add(&host->class_dev);
|
||||
if (err)
|
||||
return err;
|
||||
@@ -137,6 +143,8 @@
|
||||
@@ -137,6 +143,8 @@ void mmc_remove_host(struct mmc_host *ho
|
||||
|
||||
device_del(&host->class_dev);
|
||||
|
||||
|
@ -2039,7 +2039,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
spin_unlock(&mmc_host_lock);
|
||||
--- a/drivers/mmc/core/mmc.c
|
||||
+++ b/drivers/mmc/core/mmc.c
|
||||
@@ -161,13 +161,12 @@
|
||||
@@ -161,13 +161,12 @@ static int mmc_read_ext_csd(struct mmc_c
|
||||
{
|
||||
int err;
|
||||
u8 *ext_csd;
|
||||
|
@ -2055,7 +2055,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* As the ext_csd is so large and mostly unused, we don't store the
|
||||
@@ -176,13 +175,19 @@
|
||||
@@ -176,13 +175,19 @@ static int mmc_read_ext_csd(struct mmc_c
|
||||
ext_csd = kmalloc(512, GFP_KERNEL);
|
||||
if (!ext_csd) {
|
||||
printk(KERN_ERR "%s: could not allocate a buffer to "
|
||||
|
@ -2079,7 +2079,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
/*
|
||||
* High capacity cards should have this "magic" size
|
||||
* stored in their CSD.
|
||||
@@ -197,18 +202,30 @@
|
||||
@@ -197,18 +202,30 @@ static int mmc_read_ext_csd(struct mmc_c
|
||||
"EXT_CSD, performance might "
|
||||
"suffer.\n",
|
||||
mmc_hostname(card->host));
|
||||
|
@ -2118,7 +2118,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
switch (ext_csd[EXT_CSD_CARD_TYPE]) {
|
||||
case EXT_CSD_CARD_TYPE_52 | EXT_CSD_CARD_TYPE_26:
|
||||
@@ -246,7 +263,7 @@
|
||||
@@ -246,7 +263,7 @@ static int mmc_init_card(struct mmc_host
|
||||
unsigned int max_dtr;
|
||||
|
||||
BUG_ON(!host);
|
||||
|
@ -2127,7 +2127,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* Since we're changing the OCR value, we seem to
|
||||
@@ -258,19 +275,33 @@
|
||||
@@ -258,19 +275,33 @@ static int mmc_init_card(struct mmc_host
|
||||
|
||||
/* The extra bit indicates that we support high capacity */
|
||||
err = mmc_send_op_cond(host, ocr | (1 << 30), NULL);
|
||||
|
@ -2165,7 +2165,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
card = oldcard;
|
||||
} else {
|
||||
@@ -278,8 +309,10 @@
|
||||
@@ -278,8 +309,10 @@ static int mmc_init_card(struct mmc_host
|
||||
* Allocate card structure.
|
||||
*/
|
||||
card = mmc_alloc_card(host);
|
||||
|
@ -2177,7 +2177,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
card->type = MMC_TYPE_MMC;
|
||||
card->rca = 1;
|
||||
@@ -287,43 +320,47 @@
|
||||
@@ -287,43 +320,47 @@ static int mmc_init_card(struct mmc_host
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2238,7 +2238,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
}
|
||||
|
||||
@@ -334,7 +371,7 @@
|
||||
@@ -334,7 +371,7 @@ static int mmc_init_card(struct mmc_host
|
||||
(host->caps & MMC_CAP_MMC_HIGHSPEED)) {
|
||||
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
|
||||
EXT_CSD_HS_TIMING, 1);
|
||||
|
@ -2247,7 +2247,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
mmc_card_set_highspeed(card);
|
||||
@@ -363,7 +400,7 @@
|
||||
@@ -363,7 +400,7 @@ static int mmc_init_card(struct mmc_host
|
||||
(host->caps & MMC_CAP_4_BIT_DATA)) {
|
||||
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
|
||||
EXT_CSD_BUS_WIDTH, EXT_CSD_BUS_WIDTH_4);
|
||||
|
@ -2256,7 +2256,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
|
||||
@@ -372,14 +409,14 @@
|
||||
@@ -372,14 +409,14 @@ static int mmc_init_card(struct mmc_host
|
||||
if (!oldcard)
|
||||
host->card = card;
|
||||
|
||||
|
@ -2273,7 +2273,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -413,7 +450,7 @@
|
||||
@@ -413,7 +450,7 @@ static void mmc_detect(struct mmc_host *
|
||||
|
||||
mmc_release_host(host);
|
||||
|
||||
|
@ -2282,7 +2282,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mmc_remove(host);
|
||||
|
||||
mmc_claim_host(host);
|
||||
@@ -480,7 +517,8 @@
|
||||
@@ -480,7 +517,8 @@ static void mmc_suspend(struct mmc_host
|
||||
BUG_ON(!host->card);
|
||||
|
||||
mmc_claim_host(host);
|
||||
|
@ -2292,7 +2292,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
host->card->state &= ~MMC_STATE_HIGHSPEED;
|
||||
mmc_release_host(host);
|
||||
}
|
||||
@@ -502,7 +540,7 @@
|
||||
@@ -502,7 +540,7 @@ static void mmc_resume(struct mmc_host *
|
||||
err = mmc_init_card(host, host->ocr, host->card);
|
||||
mmc_release_host(host);
|
||||
|
||||
|
@ -2301,7 +2301,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mmc_remove(host);
|
||||
|
||||
mmc_claim_host(host);
|
||||
@@ -536,11 +574,20 @@
|
||||
@@ -536,11 +574,20 @@ int mmc_attach_mmc(struct mmc_host *host
|
||||
int err;
|
||||
|
||||
BUG_ON(!host);
|
||||
|
@ -2323,7 +2323,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* Sanity check the voltages that the card claims to
|
||||
* support.
|
||||
*/
|
||||
@@ -565,7 +612,7 @@
|
||||
@@ -565,7 +612,7 @@ int mmc_attach_mmc(struct mmc_host *host
|
||||
* Detect and init the card.
|
||||
*/
|
||||
err = mmc_init_card(host, host->ocr, NULL);
|
||||
|
@ -2332,7 +2332,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto err;
|
||||
|
||||
mmc_release_host(host);
|
||||
@@ -587,6 +634,6 @@
|
||||
@@ -587,6 +634,6 @@ err:
|
||||
printk(KERN_ERR "%s: error %d whilst initialising MMC card\n",
|
||||
mmc_hostname(host), err);
|
||||
|
||||
|
@ -2350,7 +2350,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#include <linux/scatterlist.h>
|
||||
|
||||
#include <linux/mmc/host.h>
|
||||
@@ -40,10 +39,10 @@
|
||||
@@ -40,10 +39,10 @@ static int _mmc_select_card(struct mmc_h
|
||||
}
|
||||
|
||||
err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
|
||||
|
@ -2363,7 +2363,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_select_card(struct mmc_card *card)
|
||||
@@ -63,23 +62,36 @@
|
||||
@@ -63,23 +62,36 @@ int mmc_go_idle(struct mmc_host *host)
|
||||
int err;
|
||||
struct mmc_command cmd;
|
||||
|
||||
|
@ -2406,7 +2406,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
return err;
|
||||
}
|
||||
@@ -94,23 +106,33 @@
|
||||
@@ -94,23 +106,33 @@ int mmc_send_op_cond(struct mmc_host *ho
|
||||
memset(&cmd, 0, sizeof(struct mmc_command));
|
||||
|
||||
cmd.opcode = MMC_SEND_OP_COND;
|
||||
|
@ -2446,7 +2446,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
*rocr = cmd.resp[0];
|
||||
|
||||
return err;
|
||||
@@ -131,12 +153,12 @@
|
||||
@@ -131,12 +153,12 @@ int mmc_all_send_cid(struct mmc_host *ho
|
||||
cmd.flags = MMC_RSP_R2 | MMC_CMD_BCR;
|
||||
|
||||
err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
|
||||
|
@ -2461,7 +2461,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_set_relative_addr(struct mmc_card *card)
|
||||
@@ -154,46 +176,52 @@
|
||||
@@ -154,46 +176,52 @@ int mmc_set_relative_addr(struct mmc_car
|
||||
cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
||||
|
||||
err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES);
|
||||
|
@ -2530,7 +2530,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
memset(&mrq, 0, sizeof(struct mmc_request));
|
||||
memset(&cmd, 0, sizeof(struct mmc_command));
|
||||
@@ -202,28 +230,117 @@
|
||||
@@ -202,28 +230,117 @@ int mmc_send_ext_csd(struct mmc_card *ca
|
||||
mrq.cmd = &cmd;
|
||||
mrq.data = &data;
|
||||
|
||||
|
@ -2657,7 +2657,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value)
|
||||
@@ -241,13 +358,13 @@
|
||||
@@ -241,13 +358,13 @@ int mmc_switch(struct mmc_card *card, u8
|
||||
(index << 16) |
|
||||
(value << 8) |
|
||||
set;
|
||||
|
@ -2674,7 +2674,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_send_status(struct mmc_card *card, u32 *status)
|
||||
@@ -261,16 +378,20 @@
|
||||
@@ -261,16 +378,20 @@ int mmc_send_status(struct mmc_card *car
|
||||
memset(&cmd, 0, sizeof(struct mmc_command));
|
||||
|
||||
cmd.opcode = MMC_SEND_STATUS;
|
||||
|
@ -2701,7 +2701,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
--- a/drivers/mmc/core/mmc_ops.h
|
||||
+++ b/drivers/mmc/core/mmc_ops.h
|
||||
@@ -22,6 +22,9 @@
|
||||
@@ -22,6 +22,9 @@ int mmc_send_csd(struct mmc_card *card,
|
||||
int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd);
|
||||
int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value);
|
||||
int mmc_send_status(struct mmc_card *card, u32 *status);
|
||||
|
@ -2713,7 +2713,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
--- a/drivers/mmc/core/sd.c
|
||||
+++ b/drivers/mmc/core/sd.c
|
||||
@@ -166,8 +166,6 @@
|
||||
@@ -166,8 +166,6 @@ static int mmc_decode_scr(struct mmc_car
|
||||
unsigned int scr_struct;
|
||||
u32 resp[4];
|
||||
|
||||
|
@ -2722,7 +2722,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
resp[3] = card->raw_scr[1];
|
||||
resp[2] = card->raw_scr[0];
|
||||
|
||||
@@ -193,30 +191,38 @@
|
||||
@@ -193,30 +191,38 @@ static int mmc_read_switch(struct mmc_ca
|
||||
u8 *status;
|
||||
|
||||
if (card->scr.sda_vsn < SCR_SPEC_VER_1)
|
||||
|
@ -2767,7 +2767,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto out;
|
||||
}
|
||||
|
||||
@@ -238,28 +244,28 @@
|
||||
@@ -238,28 +244,28 @@ static int mmc_switch_hs(struct mmc_card
|
||||
u8 *status;
|
||||
|
||||
if (card->scr.sda_vsn < SCR_SPEC_VER_1)
|
||||
|
@ -2803,7 +2803,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto out;
|
||||
|
||||
if ((status[16] & 0xF) != 1) {
|
||||
@@ -292,7 +298,7 @@
|
||||
@@ -292,7 +298,7 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
unsigned int max_dtr;
|
||||
|
||||
BUG_ON(!host);
|
||||
|
@ -2812,7 +2812,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* Since we're changing the OCR value, we seem to
|
||||
@@ -309,23 +315,37 @@
|
||||
@@ -309,23 +315,37 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
* block-addressed SDHC cards.
|
||||
*/
|
||||
err = mmc_send_if_cond(host, ocr);
|
||||
|
@ -2855,7 +2855,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
card = oldcard;
|
||||
} else {
|
||||
@@ -333,32 +353,36 @@
|
||||
@@ -333,32 +353,36 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
* Allocate card structure.
|
||||
*/
|
||||
card = mmc_alloc_card(host);
|
||||
|
@ -2900,7 +2900,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
mmc_decode_cid(card);
|
||||
@@ -367,16 +391,18 @@
|
||||
@@ -367,16 +391,18 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
/*
|
||||
* Select card, as all following commands rely on that.
|
||||
*/
|
||||
|
@ -2923,7 +2923,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
err = mmc_decode_scr(card);
|
||||
@@ -387,7 +413,7 @@
|
||||
@@ -387,7 +413,7 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
* Fetch switch information from card.
|
||||
*/
|
||||
err = mmc_read_switch(card);
|
||||
|
@ -2932,7 +2932,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
}
|
||||
|
||||
@@ -395,7 +421,7 @@
|
||||
@@ -395,7 +421,7 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
* Attempt to change to high-speed (if supported)
|
||||
*/
|
||||
err = mmc_switch_hs(card);
|
||||
|
@ -2941,7 +2941,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
/*
|
||||
@@ -418,7 +444,7 @@
|
||||
@@ -418,7 +444,7 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
if ((host->caps & MMC_CAP_4_BIT_DATA) &&
|
||||
(card->scr.bus_widths & SD_SCR_BUS_WIDTH_4)) {
|
||||
err = mmc_app_set_bus_width(card, MMC_BUS_WIDTH_4);
|
||||
|
@ -2950,7 +2950,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto free_card;
|
||||
|
||||
mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
|
||||
@@ -442,14 +468,14 @@
|
||||
@@ -442,14 +468,14 @@ static int mmc_sd_init_card(struct mmc_h
|
||||
if (!oldcard)
|
||||
host->card = card;
|
||||
|
||||
|
@ -2967,7 +2967,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -483,7 +509,7 @@
|
||||
@@ -483,7 +509,7 @@ static void mmc_sd_detect(struct mmc_hos
|
||||
|
||||
mmc_release_host(host);
|
||||
|
||||
|
@ -2976,7 +2976,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mmc_sd_remove(host);
|
||||
|
||||
mmc_claim_host(host);
|
||||
@@ -552,7 +578,8 @@
|
||||
@@ -552,7 +578,8 @@ static void mmc_sd_suspend(struct mmc_ho
|
||||
BUG_ON(!host->card);
|
||||
|
||||
mmc_claim_host(host);
|
||||
|
@ -2986,7 +2986,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
host->card->state &= ~MMC_STATE_HIGHSPEED;
|
||||
mmc_release_host(host);
|
||||
}
|
||||
@@ -574,7 +601,7 @@
|
||||
@@ -574,7 +601,7 @@ static void mmc_sd_resume(struct mmc_hos
|
||||
err = mmc_sd_init_card(host, host->ocr, host->card);
|
||||
mmc_release_host(host);
|
||||
|
||||
|
@ -2995,7 +2995,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mmc_sd_remove(host);
|
||||
|
||||
mmc_claim_host(host);
|
||||
@@ -608,11 +635,22 @@
|
||||
@@ -608,11 +635,22 @@ int mmc_attach_sd(struct mmc_host *host,
|
||||
int err;
|
||||
|
||||
BUG_ON(!host);
|
||||
|
@ -3019,7 +3019,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* Sanity check the voltages that the card claims to
|
||||
* support.
|
||||
*/
|
||||
@@ -644,7 +682,7 @@
|
||||
@@ -644,7 +682,7 @@ int mmc_attach_sd(struct mmc_host *host,
|
||||
* Detect and init the card.
|
||||
*/
|
||||
err = mmc_sd_init_card(host, host->ocr, NULL);
|
||||
|
@ -3028,7 +3028,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
goto err;
|
||||
|
||||
mmc_release_host(host);
|
||||
@@ -666,6 +704,6 @@
|
||||
@@ -666,6 +704,6 @@ err:
|
||||
printk(KERN_ERR "%s: error %d whilst initialising SD card\n",
|
||||
mmc_hostname(host), err);
|
||||
|
||||
|
@ -3046,7 +3046,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#include <linux/scatterlist.h>
|
||||
|
||||
#include <linux/mmc/host.h>
|
||||
@@ -33,21 +32,21 @@
|
||||
@@ -33,21 +32,21 @@ static int mmc_app_cmd(struct mmc_host *
|
||||
|
||||
if (card) {
|
||||
cmd.arg = card->rca << 16;
|
||||
|
@ -3074,7 +3074,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -73,7 +72,7 @@
|
||||
@@ -73,7 +72,7 @@ int mmc_wait_for_app_cmd(struct mmc_host
|
||||
BUG_ON(!cmd);
|
||||
BUG_ON(retries < 0);
|
||||
|
||||
|
@ -3083,7 +3083,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* We have to resend MMC_APP_CMD for each attempt so
|
||||
@@ -83,8 +82,14 @@
|
||||
@@ -83,8 +82,14 @@ int mmc_wait_for_app_cmd(struct mmc_host
|
||||
memset(&mrq, 0, sizeof(struct mmc_request));
|
||||
|
||||
err = mmc_app_cmd(host, card);
|
||||
|
@ -3099,7 +3099,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
memset(&mrq, 0, sizeof(struct mmc_request));
|
||||
|
||||
@@ -97,8 +102,14 @@
|
||||
@@ -97,8 +102,14 @@ int mmc_wait_for_app_cmd(struct mmc_host
|
||||
mmc_wait_for_req(host, &mrq);
|
||||
|
||||
err = cmd->error;
|
||||
|
@ -3115,7 +3115,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
return err;
|
||||
@@ -127,14 +138,14 @@
|
||||
@@ -127,14 +138,14 @@ int mmc_app_set_bus_width(struct mmc_car
|
||||
cmd.arg = SD_BUS_WIDTH_4;
|
||||
break;
|
||||
default:
|
||||
|
@ -3133,7 +3133,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
|
||||
@@ -147,23 +158,36 @@
|
||||
@@ -147,23 +158,36 @@ int mmc_send_app_op_cond(struct mmc_host
|
||||
memset(&cmd, 0, sizeof(struct mmc_command));
|
||||
|
||||
cmd.opcode = SD_APP_OP_COND;
|
||||
|
@ -3176,7 +3176,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
*rocr = cmd.resp[0];
|
||||
|
||||
return err;
|
||||
@@ -174,6 +198,7 @@
|
||||
@@ -174,6 +198,7 @@ int mmc_send_if_cond(struct mmc_host *ho
|
||||
struct mmc_command cmd;
|
||||
int err;
|
||||
static const u8 test_pattern = 0xAA;
|
||||
|
@ -3184,7 +3184,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* To support SD 2.0 cards, we must always invoke SD_SEND_IF_COND
|
||||
@@ -182,16 +207,21 @@
|
||||
@@ -182,16 +207,21 @@ int mmc_send_if_cond(struct mmc_host *ho
|
||||
*/
|
||||
cmd.opcode = SD_SEND_IF_COND;
|
||||
cmd.arg = ((ocr & 0xFF8000) != 0) << 8 | test_pattern;
|
||||
|
@ -3211,7 +3211,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_send_relative_addr(struct mmc_host *host, unsigned int *rca)
|
||||
@@ -209,12 +239,12 @@
|
||||
@@ -209,12 +239,12 @@ int mmc_send_relative_addr(struct mmc_ho
|
||||
cmd.flags = MMC_RSP_R6 | MMC_CMD_BCR;
|
||||
|
||||
err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
|
||||
|
@ -3226,7 +3226,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_app_send_scr(struct mmc_card *card, u32 *scr)
|
||||
@@ -229,8 +259,10 @@
|
||||
@@ -229,8 +259,10 @@ int mmc_app_send_scr(struct mmc_card *ca
|
||||
BUG_ON(!card->host);
|
||||
BUG_ON(!scr);
|
||||
|
||||
|
@ -3238,7 +3238,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
return err;
|
||||
|
||||
memset(&mrq, 0, sizeof(struct mmc_request));
|
||||
@@ -242,7 +274,7 @@
|
||||
@@ -242,7 +274,7 @@ int mmc_app_send_scr(struct mmc_card *ca
|
||||
|
||||
cmd.opcode = SD_APP_SEND_SCR;
|
||||
cmd.arg = 0;
|
||||
|
@ -3247,7 +3247,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
data.blksz = 8;
|
||||
data.blocks = 1;
|
||||
@@ -252,19 +284,19 @@
|
||||
@@ -252,19 +284,19 @@ int mmc_app_send_scr(struct mmc_card *ca
|
||||
|
||||
sg_init_one(&sg, scr, 8);
|
||||
|
||||
|
@ -3273,7 +3273,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
int mmc_sd_switch(struct mmc_card *card, int mode, int group,
|
||||
@@ -278,6 +310,8 @@
|
||||
@@ -278,6 +310,8 @@ int mmc_sd_switch(struct mmc_card *card,
|
||||
BUG_ON(!card);
|
||||
BUG_ON(!card->host);
|
||||
|
||||
|
@ -3282,7 +3282,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
mode = !!mode;
|
||||
value &= 0xF;
|
||||
|
||||
@@ -292,7 +326,7 @@
|
||||
@@ -292,7 +326,7 @@ int mmc_sd_switch(struct mmc_card *card,
|
||||
cmd.arg = mode << 31 | 0x00FFFFFF;
|
||||
cmd.arg &= ~(0xF << (group * 4));
|
||||
cmd.arg |= value << (group * 4);
|
||||
|
@ -3291,7 +3291,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
data.blksz = 64;
|
||||
data.blocks = 1;
|
||||
@@ -302,15 +336,15 @@
|
||||
@@ -302,15 +336,15 @@ int mmc_sd_switch(struct mmc_card *card,
|
||||
|
||||
sg_init_one(&sg, resp, 64);
|
||||
|
||||
|
@ -5403,7 +5403,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
+
|
||||
--- a/include/linux/mmc/card.h
|
||||
+++ b/include/linux/mmc/card.h
|
||||
@@ -55,7 +55,28 @@
|
||||
@@ -55,7 +55,28 @@ struct sd_switch_caps {
|
||||
unsigned int hs_max_dtr;
|
||||
};
|
||||
|
||||
|
@ -5432,7 +5432,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* MMC device
|
||||
@@ -67,11 +88,13 @@
|
||||
@@ -67,11 +88,13 @@ struct mmc_card {
|
||||
unsigned int type; /* card type */
|
||||
#define MMC_TYPE_MMC 0 /* MMC card */
|
||||
#define MMC_TYPE_SD 1 /* SD card */
|
||||
|
@ -5446,7 +5446,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
u32 raw_cid[4]; /* raw card CID */
|
||||
u32 raw_csd[4]; /* raw card CSD */
|
||||
u32 raw_scr[2]; /* raw card SCR */
|
||||
@@ -80,10 +103,19 @@
|
||||
@@ -80,10 +103,19 @@ struct mmc_card {
|
||||
struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */
|
||||
struct sd_scr scr; /* extra SD information */
|
||||
struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
|
||||
|
@ -5468,7 +5468,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
|
||||
--- a/include/linux/mmc/core.h
|
||||
+++ b/include/linux/mmc/core.h
|
||||
@@ -25,14 +25,20 @@
|
||||
@@ -25,14 +25,20 @@ struct mmc_command {
|
||||
#define MMC_RSP_CRC (1 << 2) /* expect valid crc */
|
||||
#define MMC_RSP_BUSY (1 << 3) /* card may send busy */
|
||||
#define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */
|
||||
|
@ -5491,7 +5491,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* patterns of the above flags. One additional valid pattern
|
||||
* is all zeros, which means we don't expect a response.
|
||||
*/
|
||||
@@ -41,12 +47,30 @@
|
||||
@@ -41,12 +47,30 @@ struct mmc_command {
|
||||
#define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY)
|
||||
#define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC)
|
||||
#define MMC_RSP_R3 (MMC_RSP_PRESENT)
|
||||
|
@ -5522,7 +5522,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
* These are the command types.
|
||||
*/
|
||||
#define mmc_cmd_type(cmd) ((cmd)->flags & MMC_CMD_MASK)
|
||||
@@ -54,12 +78,19 @@
|
||||
@@ -54,12 +78,19 @@ struct mmc_command {
|
||||
unsigned int retries; /* max number of retries */
|
||||
unsigned int error; /* command error */
|
||||
|
||||
|
@ -5548,7 +5548,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
struct mmc_data *data; /* data segment associated with cmd */
|
||||
struct mmc_request *mrq; /* associated request */
|
||||
@@ -76,7 +107,6 @@
|
||||
@@ -76,7 +107,6 @@ struct mmc_data {
|
||||
#define MMC_DATA_WRITE (1 << 8)
|
||||
#define MMC_DATA_READ (1 << 9)
|
||||
#define MMC_DATA_STREAM (1 << 10)
|
||||
|
@ -5556,7 +5556,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
unsigned int bytes_xfered;
|
||||
|
||||
@@ -104,9 +134,20 @@
|
||||
@@ -104,9 +134,20 @@ extern int mmc_wait_for_cmd(struct mmc_h
|
||||
extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *,
|
||||
struct mmc_command *, int);
|
||||
|
||||
|
@ -5590,7 +5590,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#include <linux/mmc/core.h>
|
||||
|
||||
struct mmc_ios {
|
||||
@@ -51,6 +53,7 @@
|
||||
@@ -51,6 +53,7 @@ struct mmc_host_ops {
|
||||
void (*request)(struct mmc_host *host, struct mmc_request *req);
|
||||
void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios);
|
||||
int (*get_ro)(struct mmc_host *host);
|
||||
|
@ -5598,7 +5598,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
};
|
||||
|
||||
struct mmc_card;
|
||||
@@ -87,9 +90,10 @@
|
||||
@@ -87,9 +90,10 @@ struct mmc_host {
|
||||
|
||||
#define MMC_CAP_4_BIT_DATA (1 << 0) /* Can the host do 4 bit transfers */
|
||||
#define MMC_CAP_MULTIWRITE (1 << 1) /* Can accurately report bytes sent to card on error */
|
||||
|
@ -5612,7 +5612,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/* host specific block data */
|
||||
unsigned int max_seg_size; /* see blk_queue_max_segment_size */
|
||||
@@ -106,23 +110,30 @@
|
||||
@@ -106,23 +110,30 @@ struct mmc_host {
|
||||
struct mmc_ios ios; /* current io bus settings */
|
||||
u32 ocr; /* the current OCR setting */
|
||||
|
||||
|
@ -5651,7 +5651,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
unsigned long private[0] ____cacheline_aligned;
|
||||
};
|
||||
@@ -137,6 +148,8 @@
|
||||
@@ -137,6 +148,8 @@ static inline void *mmc_priv(struct mmc_
|
||||
return (void *)host->private;
|
||||
}
|
||||
|
||||
|
@ -5660,7 +5660,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#define mmc_dev(x) ((x)->parent)
|
||||
#define mmc_classdev(x) (&(x)->class_dev)
|
||||
#define mmc_hostname(x) ((x)->class_dev.bus_id)
|
||||
@@ -147,5 +160,11 @@
|
||||
@@ -147,5 +160,11 @@ extern int mmc_resume_host(struct mmc_ho
|
||||
extern void mmc_detect_change(struct mmc_host *, unsigned long delay);
|
||||
extern void mmc_request_done(struct mmc_host *, struct mmc_request *);
|
||||
|
||||
|
@ -5749,7 +5749,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
/* These are unpacked versions of the actual responses */
|
||||
|
||||
struct _mmc_csd {
|
||||
@@ -182,6 +207,7 @@
|
||||
@@ -182,6 +207,7 @@ struct _mmc_csd {
|
||||
*/
|
||||
#define CCC_BASIC (1<<0) /* (0) Basic protocol functions */
|
||||
/* (CMD0,1,2,3,4,7,9,10,12,13,15) */
|
||||
|
@ -5757,7 +5757,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#define CCC_STREAM_READ (1<<1) /* (1) Stream read commands */
|
||||
/* (CMD11) */
|
||||
#define CCC_BLOCK_READ (1<<2) /* (2) Block read commands */
|
||||
@@ -227,6 +253,7 @@
|
||||
@@ -227,6 +253,7 @@ struct _mmc_csd {
|
||||
#define EXT_CSD_BUS_WIDTH 183 /* R/W */
|
||||
#define EXT_CSD_HS_TIMING 185 /* R/W */
|
||||
#define EXT_CSD_CARD_TYPE 196 /* RO */
|
||||
|
@ -6117,7 +6117,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
+#endif
|
||||
--- a/include/linux/mod_devicetable.h
|
||||
+++ b/include/linux/mod_devicetable.h
|
||||
@@ -22,6 +22,18 @@
|
||||
@@ -22,6 +22,18 @@ struct pci_device_id {
|
||||
};
|
||||
|
||||
|
||||
|
@ -6138,7 +6138,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
#define IEEE1394_MATCH_SPECIFIER_ID 0x0004
|
||||
--- a/drivers/mmc/card/Kconfig
|
||||
+++ b/drivers/mmc/card/Kconfig
|
||||
@@ -32,3 +32,10 @@
|
||||
@@ -32,3 +32,10 @@ config MMC_BLOCK_BOUNCE
|
||||
|
||||
If unsure, say Y here.
|
||||
|
||||
|
@ -6151,7 +6151,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
+
|
||||
--- a/drivers/mmc/card/Makefile
|
||||
+++ b/drivers/mmc/card/Makefile
|
||||
@@ -9,3 +9,5 @@
|
||||
@@ -9,3 +9,5 @@ endif
|
||||
obj-$(CONFIG_MMC_BLOCK) += mmc_block.o
|
||||
mmc_block-objs := block.o queue.o
|
||||
|
||||
|
@ -6169,7 +6169,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
/*
|
||||
* There is one mmc_blk_data per slot.
|
||||
@@ -80,6 +83,9 @@
|
||||
@@ -80,6 +83,9 @@ static void mmc_blk_put(struct mmc_blk_d
|
||||
mutex_lock(&open_lock);
|
||||
md->usage--;
|
||||
if (md->usage == 0) {
|
||||
|
@ -6179,7 +6179,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
put_disk(md->disk);
|
||||
kfree(md);
|
||||
}
|
||||
@@ -151,17 +157,19 @@
|
||||
@@ -151,17 +157,19 @@ static u32 mmc_sd_num_wr_blocks(struct m
|
||||
|
||||
cmd.opcode = MMC_APP_CMD;
|
||||
cmd.arg = card->rca << 16;
|
||||
|
@ -6202,7 +6202,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
memset(&data, 0, sizeof(struct mmc_data));
|
||||
|
||||
@@ -192,7 +200,7 @@
|
||||
@@ -192,7 +200,7 @@ static u32 mmc_sd_num_wr_blocks(struct m
|
||||
|
||||
mmc_wait_for_req(card->host, &mrq);
|
||||
|
||||
|
@ -6211,7 +6211,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
return (u32)-1;
|
||||
|
||||
blocks = ntohl(blocks);
|
||||
@@ -220,17 +228,15 @@
|
||||
@@ -220,17 +228,15 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
brq.cmd.arg = req->sector;
|
||||
if (!mmc_card_blockaddr(card))
|
||||
brq.cmd.arg <<= 9;
|
||||
|
@ -6231,7 +6231,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
/*
|
||||
* If the host doesn't support multiple block writes, force
|
||||
* block writes to single block. SD cards are excepted from
|
||||
@@ -243,8 +249,12 @@
|
||||
@@ -243,8 +249,12 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
brq.data.blocks = 1;
|
||||
|
||||
if (brq.data.blocks > 1) {
|
||||
|
@ -6246,7 +6246,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
readcmd = MMC_READ_MULTIPLE_BLOCK;
|
||||
writecmd = MMC_WRITE_MULTIPLE_BLOCK;
|
||||
} else {
|
||||
@@ -261,6 +271,8 @@
|
||||
@@ -261,6 +271,8 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
brq.data.flags |= MMC_DATA_WRITE;
|
||||
}
|
||||
|
||||
|
@ -6255,7 +6255,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
brq.data.sg = mq->sg;
|
||||
brq.data.sg_len = mmc_queue_map_sg(mq);
|
||||
|
||||
@@ -302,7 +314,7 @@
|
||||
@@ -302,7 +314,7 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
goto cmd_err;
|
||||
}
|
||||
|
||||
|
@ -6264,7 +6264,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
do {
|
||||
int err;
|
||||
|
||||
@@ -315,7 +327,13 @@
|
||||
@@ -315,7 +327,13 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
req->rq_disk->disk_name, err);
|
||||
goto cmd_err;
|
||||
}
|
||||
|
@ -6279,7 +6279,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
#if 0
|
||||
if (cmd.resp[0] & ~0x00000900)
|
||||
@@ -394,9 +412,6 @@
|
||||
@@ -394,9 +412,6 @@ static int mmc_blk_issue_rq(struct mmc_q
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -6289,7 +6289,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
static inline int mmc_blk_readonly(struct mmc_card *card)
|
||||
{
|
||||
@@ -510,7 +525,7 @@
|
||||
@@ -510,7 +525,7 @@ mmc_blk_set_blksize(struct mmc_blk_data
|
||||
mmc_claim_host(card->host);
|
||||
cmd.opcode = MMC_SET_BLOCKLEN;
|
||||
cmd.arg = 1 << md->block_bits;
|
||||
|
@ -6298,7 +6298,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
err = mmc_wait_for_cmd(card->host, &cmd, 5);
|
||||
mmc_release_host(card->host);
|
||||
|
||||
@@ -562,17 +577,12 @@
|
||||
@@ -562,17 +577,12 @@ static void mmc_blk_remove(struct mmc_ca
|
||||
struct mmc_blk_data *md = mmc_get_drvdata(card);
|
||||
|
||||
if (md) {
|
||||
|
@ -6339,7 +6339,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
/*
|
||||
* Prepare a MMC request. This just filters out odd stuff.
|
||||
*/
|
||||
@@ -159,6 +166,7 @@
|
||||
@@ -159,6 +166,7 @@ int mmc_init_queue(struct mmc_queue *mq,
|
||||
ret = -ENOMEM;
|
||||
goto cleanup_queue;
|
||||
}
|
||||
|
@ -6347,7 +6347,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
|
||||
mq->bounce_sg = kmalloc(sizeof(struct scatterlist) *
|
||||
bouncesz / 512, GFP_KERNEL);
|
||||
@@ -166,6 +174,7 @@
|
||||
@@ -166,6 +174,7 @@ int mmc_init_queue(struct mmc_queue *mq,
|
||||
ret = -ENOMEM;
|
||||
goto cleanup_queue;
|
||||
}
|
||||
|
@ -6355,7 +6355,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
}
|
||||
#endif
|
||||
@@ -183,6 +192,7 @@
|
||||
@@ -183,6 +192,7 @@ int mmc_init_queue(struct mmc_queue *mq,
|
||||
ret = -ENOMEM;
|
||||
goto cleanup_queue;
|
||||
}
|
||||
|
@ -6363,7 +6363,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
}
|
||||
|
||||
init_MUTEX(&mq->thread_sem);
|
||||
@@ -302,12 +312,12 @@
|
||||
@@ -302,12 +312,12 @@ static void copy_sg(struct scatterlist *
|
||||
BUG_ON(dst_len == 0);
|
||||
|
||||
if (dst_size == 0) {
|
||||
|
@ -6378,7 +6378,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
src_size = src->length;
|
||||
}
|
||||
|
||||
@@ -353,9 +363,7 @@
|
||||
@@ -353,9 +363,7 @@ unsigned int mmc_queue_map_sg(struct mmc
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -7552,7 +7552,7 @@ This is a port of the MMC-SPI driver from 2.6.24.3
|
|||
+MODULE_LICENSE("GPL");
|
||||
--- a/drivers/mmc/core/Makefile
|
||||
+++ b/drivers/mmc/core/Makefile
|
||||
@@ -8,5 +8,7 @@
|
||||
@@ -8,5 +8,7 @@ endif
|
||||
|
||||
obj-$(CONFIG_MMC) += mmc_core.o
|
||||
mmc_core-y := core.o sysfs.o bus.o host.o \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mmc/host/sdhci.c
|
||||
+++ b/drivers/mmc/host/sdhci.c
|
||||
@@ -481,16 +481,16 @@
|
||||
@@ -481,16 +481,16 @@ static void sdhci_finish_data(struct sdh
|
||||
* Controller doesn't count down when in single block mode.
|
||||
*/
|
||||
if (data->blocks == 1)
|
||||
|
@ -20,7 +20,7 @@
|
|||
}
|
||||
|
||||
if (data->stop) {
|
||||
@@ -498,7 +498,7 @@
|
||||
@@ -498,7 +498,7 @@ static void sdhci_finish_data(struct sdh
|
||||
* The controller needs a reset of internal state machines
|
||||
* upon error conditions.
|
||||
*/
|
||||
|
@ -29,7 +29,7 @@
|
|||
sdhci_reset(host, SDHCI_RESET_CMD);
|
||||
sdhci_reset(host, SDHCI_RESET_DATA);
|
||||
}
|
||||
@@ -533,7 +533,7 @@
|
||||
@@ -533,7 +533,7 @@ static void sdhci_send_command(struct sd
|
||||
printk(KERN_ERR "%s: Controller never released "
|
||||
"inhibit bit(s).\n", mmc_hostname(host->mmc));
|
||||
sdhci_dumpregs(host);
|
||||
|
@ -38,7 +38,7 @@
|
|||
tasklet_schedule(&host->finish_tasklet);
|
||||
return;
|
||||
}
|
||||
@@ -554,7 +554,7 @@
|
||||
@@ -554,7 +554,7 @@ static void sdhci_send_command(struct sd
|
||||
if ((cmd->flags & MMC_RSP_136) && (cmd->flags & MMC_RSP_BUSY)) {
|
||||
printk(KERN_ERR "%s: Unsupported response type!\n",
|
||||
mmc_hostname(host->mmc));
|
||||
|
@ -47,7 +47,7 @@
|
|||
tasklet_schedule(&host->finish_tasklet);
|
||||
return;
|
||||
}
|
||||
@@ -601,7 +601,7 @@
|
||||
@@ -601,7 +601,7 @@ static void sdhci_finish_command(struct
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@
|
|||
|
||||
if (host->data && host->data_early)
|
||||
sdhci_finish_data(host);
|
||||
@@ -722,7 +722,7 @@
|
||||
@@ -722,7 +722,7 @@ static void sdhci_request(struct mmc_hos
|
||||
host->mrq = mrq;
|
||||
|
||||
if (!(readl(host->ioaddr + SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT)) {
|
||||
|
@ -65,7 +65,7 @@
|
|||
tasklet_schedule(&host->finish_tasklet);
|
||||
} else
|
||||
sdhci_send_command(host, mrq->cmd);
|
||||
@@ -831,7 +831,7 @@
|
||||
@@ -831,7 +831,7 @@ static void sdhci_tasklet_card(unsigned
|
||||
sdhci_reset(host, SDHCI_RESET_CMD);
|
||||
sdhci_reset(host, SDHCI_RESET_DATA);
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
|||
tasklet_schedule(&host->finish_tasklet);
|
||||
}
|
||||
}
|
||||
@@ -859,9 +859,9 @@
|
||||
@@ -859,9 +859,9 @@ static void sdhci_tasklet_finish(unsigne
|
||||
* The controller needs a reset of internal state machines
|
||||
* upon error conditions.
|
||||
*/
|
||||
|
@ -87,7 +87,7 @@
|
|||
|
||||
/* Some controllers need this kick or reset won't work here */
|
||||
if (host->chip->quirks & SDHCI_QUIRK_CLOCK_BEFORE_RESET) {
|
||||
@@ -906,13 +906,13 @@
|
||||
@@ -906,13 +906,13 @@ static void sdhci_timeout_timer(unsigned
|
||||
sdhci_dumpregs(host);
|
||||
|
||||
if (host->data) {
|
||||
|
@ -104,7 +104,7 @@
|
|||
|
||||
tasklet_schedule(&host->finish_tasklet);
|
||||
}
|
||||
@@ -941,13 +941,12 @@
|
||||
@@ -941,13 +941,12 @@ static void sdhci_cmd_irq(struct sdhci_h
|
||||
}
|
||||
|
||||
if (intmask & SDHCI_INT_TIMEOUT)
|
||||
|
@ -123,7 +123,7 @@
|
|||
tasklet_schedule(&host->finish_tasklet);
|
||||
else if (intmask & SDHCI_INT_RESPONSE)
|
||||
sdhci_finish_command(host);
|
||||
@@ -974,13 +973,11 @@
|
||||
@@ -974,13 +973,11 @@ static void sdhci_data_irq(struct sdhci_
|
||||
}
|
||||
|
||||
if (intmask & SDHCI_INT_DATA_TIMEOUT)
|
||||
|
@ -141,7 +141,7 @@
|
|||
sdhci_finish_data(host);
|
||||
else {
|
||||
if (intmask & (SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL))
|
||||
@@ -1312,7 +1309,7 @@
|
||||
@@ -1312,7 +1309,7 @@ static int __devinit sdhci_probe_slot(st
|
||||
mmc->ops = &sdhci_ops;
|
||||
mmc->f_min = host->max_clk / 256;
|
||||
mmc->f_max = host->max_clk;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -133,4 +133,8 @@
|
||||
@@ -133,4 +133,8 @@ config LEDS_TRIGGER_HEARTBEAT
|
||||
load average.
|
||||
If unsure, say Y.
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
|||
endif # NEW_LEDS
|
||||
--- a/drivers/leds/Makefile
|
||||
+++ b/drivers/leds/Makefile
|
||||
@@ -22,3 +22,4 @@
|
||||
@@ -22,3 +22,4 @@ obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -81,6 +81,12 @@
|
||||
@@ -81,6 +81,12 @@ config LEDS_WRAP
|
||||
help
|
||||
This option enables support for the PCEngines WRAP programmable LEDs.
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
|||
depends LEDS_CLASS && ARCH_H1940
|
||||
--- a/drivers/leds/Makefile
|
||||
+++ b/drivers/leds/Makefile
|
||||
@@ -14,6 +14,7 @@
|
||||
@@ -14,6 +14,7 @@ obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c2
|
||||
obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
|
||||
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
|
||||
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -143,4 +143,11 @@
|
||||
@@ -143,4 +143,11 @@ config LEDS_TRIGGER_MORSE
|
||||
tristate "LED Morse Trigger"
|
||||
depends on LEDS_TRIGGERS
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
endif # NEW_LEDS
|
||||
--- a/drivers/leds/Makefile
|
||||
+++ b/drivers/leds/Makefile
|
||||
@@ -24,3 +24,4 @@
|
||||
@@ -24,3 +24,4 @@ obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledt
|
||||
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -150,4 +150,11 @@
|
||||
@@ -150,4 +150,11 @@ config LEDS_TRIGGER_DEFAULT_ON
|
||||
This allows LEDs to be initialised in the ON state.
|
||||
If unsure, say Y.
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
endif # NEW_LEDS
|
||||
--- a/drivers/leds/Makefile
|
||||
+++ b/drivers/leds/Makefile
|
||||
@@ -25,3 +25,4 @@
|
||||
@@ -25,3 +25,4 @@ obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += l
|
||||
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
|
||||
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/input/misc/Kconfig
|
||||
+++ b/drivers/input/misc/Kconfig
|
||||
@@ -183,4 +183,20 @@
|
||||
@@ -183,4 +183,20 @@ config HP_SDC_RTC
|
||||
Say Y here if you want to support the built-in real time clock
|
||||
of the HP SDC controller.
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
endif
|
||||
--- a/drivers/input/misc/Makefile
|
||||
+++ b/drivers/input/misc/Makefile
|
||||
@@ -18,3 +18,4 @@
|
||||
@@ -18,3 +18,4 @@ obj-$(CONFIG_INPUT_POWERMATE) += powerm
|
||||
obj-$(CONFIG_INPUT_YEALINK) += yealink.o
|
||||
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
|
||||
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/char/Kconfig
|
||||
+++ b/drivers/char/Kconfig
|
||||
@@ -970,6 +970,13 @@
|
||||
@@ -970,6 +970,13 @@ config CS5535_GPIO
|
||||
|
||||
If compiled as a module, it will be called cs5535_gpio.
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
depends on CPU_VR41XX
|
||||
--- a/drivers/char/Makefile
|
||||
+++ b/drivers/char/Makefile
|
||||
@@ -93,6 +93,7 @@
|
||||
@@ -93,6 +93,7 @@ obj-$(CONFIG_SCx200_GPIO) += scx200_gpio
|
||||
obj-$(CONFIG_PC8736x_GPIO) += pc8736x_gpio.o
|
||||
obj-$(CONFIG_NSC_GPIO) += nsc_gpio.o
|
||||
obj-$(CONFIG_CS5535_GPIO) += cs5535_gpio.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/fs/Kconfig
|
||||
+++ b/fs/Kconfig
|
||||
@@ -419,6 +419,7 @@
|
||||
@@ -419,6 +419,7 @@ config FS_POSIX_ACL
|
||||
|
||||
source "fs/xfs/Kconfig"
|
||||
source "fs/gfs2/Kconfig"
|
||||
|
@ -10,7 +10,7 @@
|
|||
tristate "OCFS2 file system support"
|
||||
--- a/fs/Makefile
|
||||
+++ b/fs/Makefile
|
||||
@@ -120,3 +120,4 @@
|
||||
@@ -120,3 +120,4 @@ obj-$(CONFIG_HPPFS) += hppfs/
|
||||
obj-$(CONFIG_DEBUG_FS) += debugfs/
|
||||
obj-$(CONFIG_OCFS2_FS) += ocfs2/
|
||||
obj-$(CONFIG_GFS2_FS) += gfs2/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/phy/phy.c
|
||||
+++ b/drivers/net/phy/phy.c
|
||||
@@ -344,6 +344,50 @@
|
||||
@@ -344,6 +344,50 @@ int phy_ethtool_gset(struct phy_device *
|
||||
}
|
||||
EXPORT_SYMBOL(phy_ethtool_gset);
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
|||
* @phydev: the phy_device struct
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -393,6 +393,7 @@
|
||||
@@ -393,6 +393,7 @@ void phy_start_machine(struct phy_device
|
||||
void phy_stop_machine(struct phy_device *phydev);
|
||||
int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
|
||||
int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/phy/mdio_bus.c
|
||||
+++ b/drivers/net/phy/mdio_bus.c
|
||||
@@ -131,6 +131,9 @@
|
||||
@@ -131,6 +131,9 @@ static int mdio_bus_match(struct device
|
||||
struct phy_device *phydev = to_phy_device(dev);
|
||||
struct phy_driver *phydrv = to_phy_driver(drv);
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
|||
}
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -319,6 +319,11 @@
|
||||
@@ -319,6 +319,11 @@ struct phy_driver {
|
||||
u32 features;
|
||||
u32 flags;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -60,6 +60,11 @@
|
||||
@@ -60,6 +60,11 @@ config ICPLUS_PHY
|
||||
---help---
|
||||
Currently supports the IP175C PHY.
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
---help---
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -12,4 +12,5 @@
|
||||
@@ -12,4 +12,5 @@ obj-$(CONFIG_SMSC_PHY) += smsc.o
|
||||
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
|
||||
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -44,6 +44,18 @@
|
||||
@@ -44,6 +44,18 @@ static struct phy_driver genphy_driver;
|
||||
extern int mdio_bus_init(void);
|
||||
extern void mdio_bus_exit(void);
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
|||
struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id)
|
||||
{
|
||||
struct phy_device *dev;
|
||||
@@ -67,6 +79,8 @@
|
||||
@@ -67,6 +79,8 @@ struct phy_device* phy_device_create(str
|
||||
dev->bus = bus;
|
||||
|
||||
dev->state = PHY_DOWN;
|
||||
|
@ -30,7 +30,7 @@
|
|||
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -289,6 +289,17 @@
|
||||
@@ -289,6 +289,17 @@ struct phy_device {
|
||||
void (*adjust_link)(struct net_device *dev);
|
||||
|
||||
void (*adjust_state)(struct net_device *dev);
|
||||
|
@ -50,7 +50,7 @@
|
|||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -426,6 +426,7 @@
|
||||
@@ -426,6 +426,7 @@ struct net_device
|
||||
void *ax25_ptr; /* AX.25 specific data */
|
||||
struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
|
||||
assign before registering */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -65,6 +65,12 @@
|
||||
@@ -65,6 +65,12 @@ config ADM6996_PHY
|
||||
---help---
|
||||
Currently supports the ADM6996F switch
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
|||
---help---
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -13,4 +13,5 @@
|
||||
@@ -13,4 +13,5 @@ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
|
||||
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
|
||||
obj-$(CONFIG_ADM6996_PHY) += adm6996.o
|
||||
|
@ -36,7 +36,7 @@
|
|||
/**
|
||||
* mdiobus_register - bring up all the PHYs on a given bus and attach them to bus
|
||||
* @bus: target mii_bus
|
||||
@@ -85,6 +91,7 @@
|
||||
@@ -85,6 +91,7 @@ int mdiobus_register(struct mii_bus *bus
|
||||
|
||||
phydev->dev.parent = bus->dev;
|
||||
phydev->dev.bus = &mdio_bus_type;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/init/main.c
|
||||
+++ b/init/main.c
|
||||
@@ -780,7 +780,7 @@
|
||||
@@ -780,7 +780,7 @@ static int noinline init_post(void)
|
||||
numa_default_policy();
|
||||
|
||||
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/usb/serial/usb-serial.c
|
||||
+++ b/drivers/usb/serial/usb-serial.c
|
||||
@@ -58,6 +58,7 @@
|
||||
@@ -58,6 +58,7 @@ static struct usb_driver usb_serial_driv
|
||||
drivers depend on it.
|
||||
*/
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
|||
static int debug;
|
||||
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
|
||||
static DEFINE_MUTEX(table_lock);
|
||||
@@ -866,7 +867,7 @@
|
||||
@@ -866,7 +867,7 @@ int usb_serial_probe(struct usb_interfac
|
||||
dev_err(&interface->dev, "No free urbs available\n");
|
||||
goto probe_error;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
|||
port->bulk_in_size = buffer_size;
|
||||
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
|
||||
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
|
||||
@@ -1276,3 +1277,5 @@
|
||||
@@ -1276,3 +1277,5 @@ MODULE_LICENSE("GPL");
|
||||
|
||||
module_param(debug, bool, S_IRUGO | S_IWUSR);
|
||||
MODULE_PARM_DESC(debug, "Debug enabled or not");
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <linux/types.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
@@ -227,4 +231,6 @@
|
||||
@@ -227,4 +231,6 @@ struct itimerval {
|
||||
*/
|
||||
#define TIMER_ABSTIME 0x01
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
|||
#ifdef __KERNEL__
|
||||
|
||||
#define BITS_TO_LONGS(bits) \
|
||||
@@ -162,6 +170,8 @@
|
||||
@@ -162,6 +170,8 @@ typedef unsigned long blkcnt_t;
|
||||
|
||||
#endif /* __KERNEL_STRICT_NAMES */
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
--- a/scripts/kconfig/Makefile
|
||||
+++ b/scripts/kconfig/Makefile
|
||||
@@ -88,6 +88,9 @@
|
||||
@@ -88,6 +88,9 @@ check-lxdialog := $(srctree)/$(src)/lxd
|
||||
# we really need to do so. (Do not call gcc as part of make mrproper)
|
||||
HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
|
||||
HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/include/linux/stddef.h
|
||||
+++ b/include/linux/stddef.h
|
||||
@@ -16,6 +16,7 @@
|
||||
@@ -16,6 +16,7 @@ enum {
|
||||
false = 0,
|
||||
true = 1
|
||||
};
|
||||
|
@ -8,7 +8,7 @@
|
|||
|
||||
#undef offsetof
|
||||
#ifdef __compiler_offsetof
|
||||
@@ -23,6 +24,5 @@
|
||||
@@ -23,6 +24,5 @@ enum {
|
||||
#else
|
||||
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/scripts/gen_initramfs_list.sh
|
||||
+++ b/scripts/gen_initramfs_list.sh
|
||||
@@ -125,7 +125,7 @@
|
||||
@@ -125,7 +125,7 @@ parse() {
|
||||
str="${ftype} ${name} ${location} ${str}"
|
||||
;;
|
||||
"nod")
|
||||
|
@ -9,7 +9,7 @@
|
|||
local maj=`field 5 ${dev}`
|
||||
local min=`field 6 ${dev}`
|
||||
maj=${maj%,}
|
||||
@@ -135,7 +135,7 @@
|
||||
@@ -135,7 +135,7 @@ parse() {
|
||||
str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
|
||||
;;
|
||||
"slink")
|
||||
|
|
|
@ -32,7 +32,7 @@ and didn't make it with the ppc32 equivalent. Thanks.
|
|||
---
|
||||
--- a/include/asm-ppc/io.h
|
||||
+++ b/include/asm-ppc/io.h
|
||||
@@ -453,11 +453,21 @@
|
||||
@@ -453,11 +453,21 @@ static inline unsigned int ioread16(void
|
||||
return readw(addr);
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ and didn't make it with the ppc32 equivalent. Thanks.
|
|||
static inline void iowrite8(u8 val, void __iomem *addr)
|
||||
{
|
||||
writeb(val, addr);
|
||||
@@ -468,11 +478,21 @@
|
||||
@@ -468,11 +478,21 @@ static inline void iowrite16(u16 val, vo
|
||||
writew(val, addr);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/spi/Kconfig
|
||||
+++ b/drivers/spi/Kconfig
|
||||
@@ -100,6 +100,11 @@
|
||||
@@ -100,6 +100,11 @@ config SPI_BUTTERFLY
|
||||
inexpensive battery powered microcontroller evaluation board.
|
||||
This same cable can be used to flash new firmware.
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
|||
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
|
||||
--- a/drivers/spi/Makefile
|
||||
+++ b/drivers/spi/Makefile
|
||||
@@ -16,6 +16,7 @@
|
||||
@@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.
|
||||
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
|
||||
obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
|
||||
obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/w1/masters/Kconfig
|
||||
+++ b/drivers/w1/masters/Kconfig
|
||||
@@ -42,5 +42,15 @@
|
||||
@@ -42,5 +42,15 @@ config W1_MASTER_DS1WM
|
||||
in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like
|
||||
hx4700.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
|||
|
||||
--- a/drivers/w1/masters/Makefile
|
||||
+++ b/drivers/w1/masters/Makefile
|
||||
@@ -6,3 +6,4 @@
|
||||
@@ -6,3 +6,4 @@ obj-$(CONFIG_W1_MASTER_MATROX) += matro
|
||||
obj-$(CONFIG_W1_MASTER_DS2490) += ds2490.o
|
||||
obj-$(CONFIG_W1_MASTER_DS2482) += ds2482.o
|
||||
obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm.o
|
||||
|
|
|
@ -2,7 +2,7 @@ This patch ports ssb to the 2.6.23 kernel.
|
|||
|
||||
--- a/drivers/ssb/driver_mipscore.c
|
||||
+++ b/drivers/ssb/driver_mipscore.c
|
||||
@@ -223,3 +223,5 @@
|
||||
@@ -223,3 +223,5 @@ void ssb_mipscore_init(struct ssb_mipsco
|
||||
ssb_mips_serial_init(mcore);
|
||||
ssb_mips_flash_detect(mcore);
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ This patch ports ssb to the 2.6.23 kernel.
|
|||
+EXPORT_SYMBOL(ssb_mips_irq);
|
||||
--- a/include/linux/mod_devicetable.h
|
||||
+++ b/include/linux/mod_devicetable.h
|
||||
@@ -352,4 +352,19 @@
|
||||
@@ -352,4 +352,19 @@ struct parisc_device_id {
|
||||
#define PA_HVERSION_ANY_ID 0xffff
|
||||
#define PA_SVERSION_ANY_ID 0xffffffff
|
||||
|
||||
|
@ -32,7 +32,7 @@ This patch ports ssb to the 2.6.23 kernel.
|
|||
#endif /* LINUX_MOD_DEVICETABLE_H */
|
||||
--- a/drivers/ssb/main.c
|
||||
+++ b/drivers/ssb/main.c
|
||||
@@ -321,14 +321,16 @@
|
||||
@@ -321,14 +321,16 @@ static int ssb_bus_match(struct device *
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ This patch ports ssb to the 2.6.23 kernel.
|
|||
ssb_dev->id.revision);
|
||||
--- a/drivers/ssb/scan.c
|
||||
+++ b/drivers/ssb/scan.c
|
||||
@@ -391,12 +391,14 @@
|
||||
@@ -391,12 +391,14 @@ int ssb_bus_scan(struct ssb_bus *bus,
|
||||
if (bus->bustype == SSB_BUSTYPE_PCI) {
|
||||
/* Ignore PCI cores on PCI-E cards.
|
||||
* Ignore PCI-E cores on PCI cards. */
|
||||
|
@ -74,7 +74,7 @@ This patch ports ssb to the 2.6.23 kernel.
|
|||
if (bus->pcicore.dev) {
|
||||
--- a/drivers/ssb/driver_pcicore.c
|
||||
+++ b/drivers/ssb/driver_pcicore.c
|
||||
@@ -362,7 +362,7 @@
|
||||
@@ -362,7 +362,7 @@ static int pcicore_is_in_hostmode(struct
|
||||
chipid_top != 0x5300)
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue