[kernel] cleanup trailing whitespaces in 2.6.26 patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11945 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
11d0acf450
commit
21d378afc7
|
@ -35,23 +35,20 @@
|
||||||
+
|
+
|
||||||
if (!dev->mtd.name)
|
if (!dev->mtd.name)
|
||||||
goto devinit_err;
|
goto devinit_err;
|
||||||
+
|
|
||||||
+ strcpy(dev->mtd.name, mtdname);
|
|
||||||
|
|
||||||
- sprintf(dev->mtd.name, "block2mtd: %s", devname);
|
- sprintf(dev->mtd.name, "block2mtd: %s", devname);
|
||||||
-
|
+ strcpy(dev->mtd.name, mtdname);
|
||||||
|
|
||||||
- dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
|
- dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
|
||||||
+ dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK & ~(erase_size - 1);
|
+ dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK & ~(erase_size - 1);
|
||||||
dev->mtd.erasesize = erase_size;
|
dev->mtd.erasesize = erase_size;
|
||||||
dev->mtd.writesize = 1;
|
dev->mtd.writesize = 1;
|
||||||
dev->mtd.type = MTD_RAM;
|
dev->mtd.type = MTD_RAM;
|
||||||
@@ -298,15 +304,18 @@
|
@@ -299,14 +305,17 @@
|
||||||
dev->mtd.read = block2mtd_read;
|
|
||||||
dev->mtd.priv = dev;
|
dev->mtd.priv = dev;
|
||||||
dev->mtd.owner = THIS_MODULE;
|
dev->mtd.owner = THIS_MODULE;
|
||||||
-
|
|
||||||
- if (add_mtd_device(&dev->mtd)) {
|
- if (add_mtd_device(&dev->mtd)) {
|
||||||
+
|
|
||||||
+ part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
|
+ part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
|
||||||
+ part->name = dev->mtd.name;
|
+ part->name = dev->mtd.name;
|
||||||
+ part->offset = 0;
|
+ part->offset = 0;
|
||||||
|
|
|
@ -866,7 +866,7 @@
|
||||||
dev->mtd.priv = dev;
|
dev->mtd.priv = dev;
|
||||||
dev->mtd.owner = THIS_MODULE;
|
dev->mtd.owner = THIS_MODULE;
|
||||||
+ dev->mtd.refresh_device = block2mtd_refresh;
|
+ dev->mtd.refresh_device = block2mtd_refresh;
|
||||||
|
|
||||||
part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
|
part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
|
||||||
part->name = dev->mtd.name;
|
part->name = dev->mtd.name;
|
||||||
--- a/drivers/mtd/mtdchar.c
|
--- a/drivers/mtd/mtdchar.c
|
||||||
|
|
|
@ -170,7 +170,7 @@
|
||||||
+
|
+
|
||||||
+/* Use instead of regcomp. As we expect to be seeing the same regexps over and
|
+/* Use instead of regcomp. As we expect to be seeing the same regexps over and
|
||||||
+over again, it make sense to cache the results. */
|
+over again, it make sense to cache the results. */
|
||||||
+static regexp * compile_and_cache(const char * regex_string,
|
+static regexp * compile_and_cache(const char * regex_string,
|
||||||
+ const char * protocol)
|
+ const char * protocol)
|
||||||
+{
|
+{
|
||||||
+ struct pattern_cache * node = first_pattern_cache;
|
+ struct pattern_cache * node = first_pattern_cache;
|
||||||
|
@ -227,7 +227,7 @@
|
||||||
+ if ( !node->pattern ) {
|
+ if ( !node->pattern ) {
|
||||||
+ if (net_ratelimit())
|
+ if (net_ratelimit())
|
||||||
+ printk(KERN_ERR "layer7: Error compiling regexp "
|
+ printk(KERN_ERR "layer7: Error compiling regexp "
|
||||||
+ "\"%s\" (%s)\n",
|
+ "\"%s\" (%s)\n",
|
||||||
+ regex_string, protocol);
|
+ regex_string, protocol);
|
||||||
+ /* pattern is now cached as NULL, so we won't try again. */
|
+ /* pattern is now cached as NULL, so we won't try again. */
|
||||||
+ }
|
+ }
|
||||||
|
@ -275,8 +275,8 @@
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+/* handles whether there's a match when we aren't appending data anymore */
|
+/* handles whether there's a match when we aren't appending data anymore */
|
||||||
+static int match_no_append(struct nf_conn * conntrack,
|
+static int match_no_append(struct nf_conn * conntrack,
|
||||||
+ struct nf_conn * master_conntrack,
|
+ struct nf_conn * master_conntrack,
|
||||||
+ enum ip_conntrack_info ctinfo,
|
+ enum ip_conntrack_info ctinfo,
|
||||||
+ enum ip_conntrack_info master_ctinfo,
|
+ enum ip_conntrack_info master_ctinfo,
|
||||||
+ const struct xt_layer7_info * info)
|
+ const struct xt_layer7_info * info)
|
||||||
|
@ -286,9 +286,9 @@
|
||||||
+
|
+
|
||||||
+ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
|
+ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
|
||||||
+ if(!master_conntrack->layer7.app_proto) {
|
+ if(!master_conntrack->layer7.app_proto) {
|
||||||
+ char * f =
|
+ char * f =
|
||||||
+ friendly_print(master_conntrack->layer7.app_data);
|
+ friendly_print(master_conntrack->layer7.app_data);
|
||||||
+ char * g =
|
+ char * g =
|
||||||
+ hex_print(master_conntrack->layer7.app_data);
|
+ hex_print(master_conntrack->layer7.app_data);
|
||||||
+ DPRINTK("\nl7-filter gave up after %d bytes "
|
+ DPRINTK("\nl7-filter gave up after %d bytes "
|
||||||
+ "(%d packets):\n%s\n",
|
+ "(%d packets):\n%s\n",
|
||||||
|
@ -306,8 +306,8 @@
|
||||||
+ if(master_conntrack->layer7.app_proto){
|
+ if(master_conntrack->layer7.app_proto){
|
||||||
+ /* Here child connections set their .app_proto (for /proc) */
|
+ /* Here child connections set their .app_proto (for /proc) */
|
||||||
+ if(!conntrack->layer7.app_proto) {
|
+ if(!conntrack->layer7.app_proto) {
|
||||||
+ conntrack->layer7.app_proto =
|
+ conntrack->layer7.app_proto =
|
||||||
+ kmalloc(strlen(master_conntrack->layer7.app_proto)+1,
|
+ kmalloc(strlen(master_conntrack->layer7.app_proto)+1,
|
||||||
+ GFP_ATOMIC);
|
+ GFP_ATOMIC);
|
||||||
+ if(!conntrack->layer7.app_proto){
|
+ if(!conntrack->layer7.app_proto){
|
||||||
+ if (net_ratelimit())
|
+ if (net_ratelimit())
|
||||||
|
@ -316,17 +316,17 @@
|
||||||
+ "bailing.\n");
|
+ "bailing.\n");
|
||||||
+ return 1;
|
+ return 1;
|
||||||
+ }
|
+ }
|
||||||
+ strcpy(conntrack->layer7.app_proto,
|
+ strcpy(conntrack->layer7.app_proto,
|
||||||
+ master_conntrack->layer7.app_proto);
|
+ master_conntrack->layer7.app_proto);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return (!strcmp(master_conntrack->layer7.app_proto,
|
+ return (!strcmp(master_conntrack->layer7.app_proto,
|
||||||
+ info->protocol));
|
+ info->protocol));
|
||||||
+ }
|
+ }
|
||||||
+ else {
|
+ else {
|
||||||
+ /* If not classified, set to "unknown" to distinguish from
|
+ /* If not classified, set to "unknown" to distinguish from
|
||||||
+ connections that are still being tested. */
|
+ connections that are still being tested. */
|
||||||
+ master_conntrack->layer7.app_proto =
|
+ master_conntrack->layer7.app_proto =
|
||||||
+ kmalloc(strlen("unknown")+1, GFP_ATOMIC);
|
+ kmalloc(strlen("unknown")+1, GFP_ATOMIC);
|
||||||
+ if(!master_conntrack->layer7.app_proto){
|
+ if(!master_conntrack->layer7.app_proto){
|
||||||
+ if (net_ratelimit())
|
+ if (net_ratelimit())
|
||||||
|
@ -346,9 +346,9 @@
|
||||||
+ int length = 0, i;
|
+ int length = 0, i;
|
||||||
+ int oldlength = master_conntrack->layer7.app_data_len;
|
+ int oldlength = master_conntrack->layer7.app_data_len;
|
||||||
+
|
+
|
||||||
+ /* This is a fix for a race condition by Deti Fliegl. However, I'm not
|
+ /* This is a fix for a race condition by Deti Fliegl. However, I'm not
|
||||||
+ clear on whether the race condition exists or whether this really
|
+ clear on whether the race condition exists or whether this really
|
||||||
+ fixes it. I might just be being dense... Anyway, if it's not really
|
+ fixes it. I might just be being dense... Anyway, if it's not really
|
||||||
+ a fix, all it does is waste a very small amount of time. */
|
+ a fix, all it does is waste a very small amount of time. */
|
||||||
+ if(!master_conntrack->layer7.app_data) return 0;
|
+ if(!master_conntrack->layer7.app_data) return 0;
|
||||||
+
|
+
|
||||||
|
@ -359,7 +359,7 @@
|
||||||
+ if(app_data[i] != '\0') {
|
+ if(app_data[i] != '\0') {
|
||||||
+ /* the kernel version of tolower mungs 'upper ascii' */
|
+ /* the kernel version of tolower mungs 'upper ascii' */
|
||||||
+ master_conntrack->layer7.app_data[length+oldlength] =
|
+ master_conntrack->layer7.app_data[length+oldlength] =
|
||||||
+ isascii(app_data[i])?
|
+ isascii(app_data[i])?
|
||||||
+ tolower(app_data[i]) : app_data[i];
|
+ tolower(app_data[i]) : app_data[i];
|
||||||
+ length++;
|
+ length++;
|
||||||
+ }
|
+ }
|
||||||
|
@ -449,7 +449,7 @@
|
||||||
+ bool *hotdrop)
|
+ bool *hotdrop)
|
||||||
+{
|
+{
|
||||||
+ /* sidestep const without getting a compiler warning... */
|
+ /* sidestep const without getting a compiler warning... */
|
||||||
+ struct sk_buff * skb = (struct sk_buff *)skbin;
|
+ struct sk_buff * skb = (struct sk_buff *)skbin;
|
||||||
+
|
+
|
||||||
+ const struct xt_layer7_info * info = matchinfo;
|
+ const struct xt_layer7_info * info = matchinfo;
|
||||||
+ enum ip_conntrack_info master_ctinfo, ctinfo;
|
+ enum ip_conntrack_info master_ctinfo, ctinfo;
|
||||||
|
@ -485,12 +485,12 @@
|
||||||
+ if(TOTAL_PACKETS > num_packets ||
|
+ if(TOTAL_PACKETS > num_packets ||
|
||||||
+ master_conntrack->layer7.app_proto) {
|
+ master_conntrack->layer7.app_proto) {
|
||||||
+
|
+
|
||||||
+ pattern_result = match_no_append(conntrack, master_conntrack,
|
+ pattern_result = match_no_append(conntrack, master_conntrack,
|
||||||
+ ctinfo, master_ctinfo, info);
|
+ ctinfo, master_ctinfo, info);
|
||||||
+
|
+
|
||||||
+ /* skb->cb[0] == seen. Don't do things twice if there are
|
+ /* skb->cb[0] == seen. Don't do things twice if there are
|
||||||
+ multiple l7 rules. I'm not sure that using cb for this purpose
|
+ multiple l7 rules. I'm not sure that using cb for this purpose
|
||||||
+ is correct, even though it says "put your private variables
|
+ is correct, even though it says "put your private variables
|
||||||
+ there". But it doesn't look like it is being used for anything
|
+ there". But it doesn't look like it is being used for anything
|
||||||
+ else in the skbs that make it here. */
|
+ else in the skbs that make it here. */
|
||||||
+ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */
|
+ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */
|
||||||
|
@ -517,9 +517,9 @@
|
||||||
+ comppattern = compile_and_cache(info->pattern, info->protocol);
|
+ comppattern = compile_and_cache(info->pattern, info->protocol);
|
||||||
+
|
+
|
||||||
+ /* On the first packet of a connection, allocate space for app data */
|
+ /* On the first packet of a connection, allocate space for app data */
|
||||||
+ if(TOTAL_PACKETS == 1 && !skb->cb[0] &&
|
+ if(TOTAL_PACKETS == 1 && !skb->cb[0] &&
|
||||||
+ !master_conntrack->layer7.app_data){
|
+ !master_conntrack->layer7.app_data){
|
||||||
+ master_conntrack->layer7.app_data =
|
+ master_conntrack->layer7.app_data =
|
||||||
+ kmalloc(maxdatalen, GFP_ATOMIC);
|
+ kmalloc(maxdatalen, GFP_ATOMIC);
|
||||||
+ if(!master_conntrack->layer7.app_data){
|
+ if(!master_conntrack->layer7.app_data){
|
||||||
+ if (net_ratelimit())
|
+ if (net_ratelimit())
|
||||||
|
@ -562,14 +562,14 @@
|
||||||
+ DPRINTK("layer7: matched unset: not yet classified "
|
+ DPRINTK("layer7: matched unset: not yet classified "
|
||||||
+ "(%d/%d packets)\n", TOTAL_PACKETS, num_packets);
|
+ "(%d/%d packets)\n", TOTAL_PACKETS, num_packets);
|
||||||
+ /* If the regexp failed to compile, don't bother running it */
|
+ /* If the regexp failed to compile, don't bother running it */
|
||||||
+ } else if(comppattern &&
|
+ } else if(comppattern &&
|
||||||
+ regexec(comppattern, master_conntrack->layer7.app_data)){
|
+ regexec(comppattern, master_conntrack->layer7.app_data)){
|
||||||
+ DPRINTK("layer7: matched %s\n", info->protocol);
|
+ DPRINTK("layer7: matched %s\n", info->protocol);
|
||||||
+ pattern_result = 1;
|
+ pattern_result = 1;
|
||||||
+ } else pattern_result = 0;
|
+ } else pattern_result = 0;
|
||||||
+
|
+
|
||||||
+ if(pattern_result == 1) {
|
+ if(pattern_result == 1) {
|
||||||
+ master_conntrack->layer7.app_proto =
|
+ master_conntrack->layer7.app_proto =
|
||||||
+ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC);
|
+ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC);
|
||||||
+ if(!master_conntrack->layer7.app_proto){
|
+ if(!master_conntrack->layer7.app_proto){
|
||||||
+ if (net_ratelimit())
|
+ if (net_ratelimit())
|
||||||
|
@ -914,7 +914,7 @@
|
||||||
+ register int len;
|
+ register int len;
|
||||||
+ int flags;
|
+ int flags;
|
||||||
+ struct match_globals g;
|
+ struct match_globals g;
|
||||||
+
|
+
|
||||||
+ /* commented out by ethan
|
+ /* commented out by ethan
|
||||||
+ extern char *malloc();
|
+ extern char *malloc();
|
||||||
+ */
|
+ */
|
||||||
|
@ -1041,7 +1041,7 @@
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ /* Make a closing node, and hook it on the end. */
|
+ /* Make a closing node, and hook it on the end. */
|
||||||
+ ender = regnode(g, (paren) ? CLOSE+parno : END);
|
+ ender = regnode(g, (paren) ? CLOSE+parno : END);
|
||||||
+ regtail(g, ret, ender);
|
+ regtail(g, ret, ender);
|
||||||
+
|
+
|
||||||
+ /* Hook the tails of the branches to the closing node. */
|
+ /* Hook the tails of the branches to the closing node. */
|
||||||
|
@ -1986,7 +1986,7 @@
|
||||||
+ register char c;
|
+ register char c;
|
||||||
+ register int no;
|
+ register int no;
|
||||||
+ register int len;
|
+ register int len;
|
||||||
+
|
+
|
||||||
+ /* Not necessary and gcc doesn't like it -MLS */
|
+ /* Not necessary and gcc doesn't like it -MLS */
|
||||||
+ /*extern char *strncpy();*/
|
+ /*extern char *strncpy();*/
|
||||||
+
|
+
|
||||||
|
|
|
@ -20,13 +20,12 @@
|
||||||
{
|
{
|
||||||
int length = 0, i;
|
int length = 0, i;
|
||||||
- int oldlength = master_conntrack->layer7.app_data_len;
|
- int oldlength = master_conntrack->layer7.app_data_len;
|
||||||
-
|
|
||||||
- /* This is a fix for a race condition by Deti Fliegl. However, I'm not
|
- /* This is a fix for a race condition by Deti Fliegl. However, I'm not
|
||||||
- clear on whether the race condition exists or whether this really
|
- clear on whether the race condition exists or whether this really
|
||||||
- fixes it. I might just be being dense... Anyway, if it's not really
|
- fixes it. I might just be being dense... Anyway, if it's not really
|
||||||
- a fix, all it does is waste a very small amount of time. */
|
- a fix, all it does is waste a very small amount of time. */
|
||||||
- if(!master_conntrack->layer7.app_data) return 0;
|
- if(!master_conntrack->layer7.app_data) return 0;
|
||||||
+
|
|
||||||
+ if (!target) return 0;
|
+ if (!target) return 0;
|
||||||
|
|
||||||
/* Strip nulls. Make everything lower case (our regex lib doesn't
|
/* Strip nulls. Make everything lower case (our regex lib doesn't
|
||||||
|
@ -38,13 +37,13 @@
|
||||||
/* the kernel version of tolower mungs 'upper ascii' */
|
/* the kernel version of tolower mungs 'upper ascii' */
|
||||||
- master_conntrack->layer7.app_data[length+oldlength] =
|
- master_conntrack->layer7.app_data[length+oldlength] =
|
||||||
+ target[length+offset] =
|
+ target[length+offset] =
|
||||||
isascii(app_data[i])?
|
isascii(app_data[i])?
|
||||||
tolower(app_data[i]) : app_data[i];
|
tolower(app_data[i]) : app_data[i];
|
||||||
length++;
|
length++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+ target[length+offset] = '\0';
|
+ target[length+offset] = '\0';
|
||||||
+
|
+
|
||||||
+ return length;
|
+ return length;
|
||||||
+}
|
+}
|
||||||
|
|
||||||
|
@ -79,7 +78,7 @@
|
||||||
+ if(!info->pkt && (TOTAL_PACKETS > num_packets ||
|
+ if(!info->pkt && (TOTAL_PACKETS > num_packets ||
|
||||||
+ master_conntrack->layer7.app_proto)) {
|
+ master_conntrack->layer7.app_proto)) {
|
||||||
|
|
||||||
pattern_result = match_no_append(conntrack, master_conntrack,
|
pattern_result = match_no_append(conntrack, master_conntrack,
|
||||||
ctinfo, master_ctinfo, info);
|
ctinfo, master_ctinfo, info);
|
||||||
@@ -473,6 +475,25 @@
|
@@ -473,6 +475,25 @@
|
||||||
/* the return value gets checked later, when we're ready to use it */
|
/* the return value gets checked later, when we're ready to use it */
|
||||||
|
@ -105,5 +104,5 @@
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/* On the first packet of a connection, allocate space for app data */
|
/* On the first packet of a connection, allocate space for app data */
|
||||||
if(TOTAL_PACKETS == 1 && !skb->cb[0] &&
|
if(TOTAL_PACKETS == 1 && !skb->cb[0] &&
|
||||||
!master_conntrack->layer7.app_data){
|
!master_conntrack->layer7.app_data){
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -50,11 +50,11 @@
|
||||||
+ * I didn't forget anybody). I apologize again for my lack of time.
|
+ * I didn't forget anybody). I apologize again for my lack of time.
|
||||||
+ *
|
+ *
|
||||||
+ *
|
+ *
|
||||||
+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
|
+ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
|
||||||
+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
+ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid
|
||||||
+ * recursive locking. New initialization routines to fix 'rmmod' not
|
+ * recursive locking. New initialization routines to fix 'rmmod' not
|
||||||
+ * working anymore. Used code from ifb.c. (Jussi Kivilinna)
|
+ * working anymore. Used code from ifb.c. (Jussi Kivilinna)
|
||||||
+ *
|
+ *
|
||||||
+ * Also, many thanks to pablo Sebastian Greco for making the initial
|
+ * Also, many thanks to pablo Sebastian Greco for making the initial
|
||||||
+ * patch and to those who helped the testing.
|
+ * patch and to those who helped the testing.
|
||||||
+ *
|
+ *
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* The only reason for this is efficiency, it is possible
|
* The only reason for this is efficiency, it is possible
|
||||||
* to change these parameters in compile time.
|
* to change these parameters in compile time.
|
||||||
+ *
|
+ *
|
||||||
+ * If you need to play with these values, use esfq instead.
|
+ * If you need to play with these values, use esfq instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
+ flows. The original SFQ discipline hashes by connection; ESFQ add
|
+ flows. The original SFQ discipline hashes by connection; ESFQ add
|
||||||
+ several other hashing methods, such as by src IP or by dst IP, which
|
+ several other hashing methods, such as by src IP or by dst IP, which
|
||||||
+ can be more fair to users in some networking situations.
|
+ can be more fair to users in some networking situations.
|
||||||
+
|
+
|
||||||
+ To compile this code as a module, choose M here: the
|
+ To compile this code as a module, choose M here: the
|
||||||
+ module will be called sch_esfq.
|
+ module will be called sch_esfq.
|
||||||
+
|
+
|
||||||
|
@ -149,7 +149,7 @@
|
||||||
+ For more comments look at sch_sfq.c.
|
+ For more comments look at sch_sfq.c.
|
||||||
+ The difference is that you can change limit, depth,
|
+ The difference is that you can change limit, depth,
|
||||||
+ hash table size and choose alternate hash types.
|
+ hash table size and choose alternate hash types.
|
||||||
+
|
+
|
||||||
+ classic: same as in sch_sfq.c
|
+ classic: same as in sch_sfq.c
|
||||||
+ dst: destination IP address
|
+ dst: destination IP address
|
||||||
+ src: source IP address
|
+ src: source IP address
|
||||||
|
@ -157,8 +157,8 @@
|
||||||
+ ctorigdst: original destination IP address
|
+ ctorigdst: original destination IP address
|
||||||
+ ctorigsrc: original source IP address
|
+ ctorigsrc: original source IP address
|
||||||
+ ctrepldst: reply destination IP address
|
+ ctrepldst: reply destination IP address
|
||||||
+ ctreplsrc: reply source IP
|
+ ctreplsrc: reply source IP
|
||||||
+
|
+
|
||||||
+*/
|
+*/
|
||||||
+
|
+
|
||||||
+#define ESFQ_HEAD 0
|
+#define ESFQ_HEAD 0
|
||||||
|
@ -231,7 +231,7 @@
|
||||||
+ enum ip_conntrack_info ctinfo;
|
+ enum ip_conntrack_info ctinfo;
|
||||||
+ struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
|
+ struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+ switch (skb->protocol) {
|
+ switch (skb->protocol) {
|
||||||
+ case __constant_htons(ETH_P_IP):
|
+ case __constant_htons(ETH_P_IP):
|
||||||
+ {
|
+ {
|
||||||
|
@ -489,13 +489,13 @@
|
||||||
+ /* No active slots */
|
+ /* No active slots */
|
||||||
+ if (q->tail == depth)
|
+ if (q->tail == depth)
|
||||||
+ return NULL;
|
+ return NULL;
|
||||||
+
|
+
|
||||||
+ a = old_a = q->next[q->tail];
|
+ a = old_a = q->next[q->tail];
|
||||||
+
|
+
|
||||||
+ /* Grab packet */
|
+ /* Grab packet */
|
||||||
+ skb = __skb_dequeue(&q->qs[a]);
|
+ skb = __skb_dequeue(&q->qs[a]);
|
||||||
+ esfq_dec(q, a);
|
+ esfq_dec(q, a);
|
||||||
+
|
+
|
||||||
+ /* Is the slot empty? */
|
+ /* Is the slot empty? */
|
||||||
+ if (q->qs[a].qlen == 0) {
|
+ if (q->qs[a].qlen == 0) {
|
||||||
+ q->ht[q->hash[a]] = depth;
|
+ q->ht[q->hash[a]] = depth;
|
||||||
|
@ -511,7 +511,7 @@
|
||||||
+ a = q->next[a];
|
+ a = q->next[a];
|
||||||
+ q->allot[a] += q->quantum;
|
+ q->allot[a] += q->quantum;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return skb;
|
+ return skb;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -601,13 +601,13 @@
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static int esfq_q_init(struct esfq_sched_data *q, struct rtattr *opt)
|
+static int esfq_q_init(struct esfq_sched_data *q, struct rtattr *opt)
|
||||||
+{
|
+{
|
||||||
+ struct tc_esfq_qopt *ctl = RTA_DATA(opt);
|
+ struct tc_esfq_qopt *ctl = RTA_DATA(opt);
|
||||||
+ esfq_index p = ~0U/2;
|
+ esfq_index p = ~0U/2;
|
||||||
+ int i;
|
+ int i;
|
||||||
+
|
+
|
||||||
+ if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl)))
|
+ if (opt && opt->rta_len < RTA_LENGTH(sizeof(*ctl)))
|
||||||
+ return -EINVAL;
|
+ return -EINVAL;
|
||||||
+
|
+
|
||||||
|
@ -618,7 +618,7 @@
|
||||||
+ q->perturb_period = 0;
|
+ q->perturb_period = 0;
|
||||||
+ q->hash_divisor = 1024;
|
+ q->hash_divisor = 1024;
|
||||||
+ q->tail = q->limit = q->depth = 128;
|
+ q->tail = q->limit = q->depth = 128;
|
||||||
+
|
+
|
||||||
+ } else {
|
+ } else {
|
||||||
+ struct tc_esfq_qopt *ctl = RTA_DATA(opt);
|
+ struct tc_esfq_qopt *ctl = RTA_DATA(opt);
|
||||||
+ if (ctl->quantum)
|
+ if (ctl->quantum)
|
||||||
|
@ -626,18 +626,18 @@
|
||||||
+ q->perturb_period = ctl->perturb_period*HZ;
|
+ q->perturb_period = ctl->perturb_period*HZ;
|
||||||
+ q->hash_divisor = ctl->divisor ? : 1024;
|
+ q->hash_divisor = ctl->divisor ? : 1024;
|
||||||
+ q->tail = q->limit = q->depth = ctl->flows ? : 128;
|
+ q->tail = q->limit = q->depth = ctl->flows ? : 128;
|
||||||
+
|
+
|
||||||
+ if ( q->depth > p - 1 )
|
+ if ( q->depth > p - 1 )
|
||||||
+ return -EINVAL;
|
+ return -EINVAL;
|
||||||
+
|
+
|
||||||
+ if (ctl->limit)
|
+ if (ctl->limit)
|
||||||
+ q->limit = min_t(u32, ctl->limit, q->depth);
|
+ q->limit = min_t(u32, ctl->limit, q->depth);
|
||||||
+
|
+
|
||||||
+ if (ctl->hash_kind) {
|
+ if (ctl->hash_kind) {
|
||||||
+ q->hash_kind = esfq_check_hash(ctl->hash_kind);
|
+ q->hash_kind = esfq_check_hash(ctl->hash_kind);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ q->ht = kmalloc(q->hash_divisor*sizeof(esfq_index), GFP_KERNEL);
|
+ q->ht = kmalloc(q->hash_divisor*sizeof(esfq_index), GFP_KERNEL);
|
||||||
+ if (!q->ht)
|
+ if (!q->ht)
|
||||||
+ goto err_case;
|
+ goto err_case;
|
||||||
|
@ -656,7 +656,7 @@
|
||||||
+ q->qs = kmalloc(q->depth*sizeof(struct sk_buff_head), GFP_KERNEL);
|
+ q->qs = kmalloc(q->depth*sizeof(struct sk_buff_head), GFP_KERNEL);
|
||||||
+ if (!q->qs)
|
+ if (!q->qs)
|
||||||
+ goto err_case;
|
+ goto err_case;
|
||||||
+
|
+
|
||||||
+ for (i=0; i< q->hash_divisor; i++)
|
+ for (i=0; i< q->hash_divisor; i++)
|
||||||
+ q->ht[i] = q->depth;
|
+ q->ht[i] = q->depth;
|
||||||
+ for (i=0; i<q->depth; i++) {
|
+ for (i=0; i<q->depth; i++) {
|
||||||
|
@ -664,7 +664,7 @@
|
||||||
+ q->dep[i+q->depth].next = i+q->depth;
|
+ q->dep[i+q->depth].next = i+q->depth;
|
||||||
+ q->dep[i+q->depth].prev = i+q->depth;
|
+ q->dep[i+q->depth].prev = i+q->depth;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ for (i=0; i<q->depth; i++)
|
+ for (i=0; i<q->depth; i++)
|
||||||
+ esfq_link(q, i);
|
+ esfq_link(q, i);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
|
@ -677,7 +677,7 @@
|
||||||
+{
|
+{
|
||||||
+ struct esfq_sched_data *q = qdisc_priv(sch);
|
+ struct esfq_sched_data *q = qdisc_priv(sch);
|
||||||
+ int err;
|
+ int err;
|
||||||
+
|
+
|
||||||
+ q->quantum = psched_mtu(sch->dev); /* default */
|
+ q->quantum = psched_mtu(sch->dev); /* default */
|
||||||
+ if ((err = esfq_q_init(q, opt)))
|
+ if ((err = esfq_q_init(q, opt)))
|
||||||
+ return err;
|
+ return err;
|
||||||
|
@ -689,7 +689,7 @@
|
||||||
+ q->perturb_timer.expires = jiffies + q->perturb_period;
|
+ q->perturb_timer.expires = jiffies + q->perturb_period;
|
||||||
+ add_timer(&q->perturb_timer);
|
+ add_timer(&q->perturb_timer);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -699,7 +699,7 @@
|
||||||
+ struct esfq_sched_data new;
|
+ struct esfq_sched_data new;
|
||||||
+ struct sk_buff *skb;
|
+ struct sk_buff *skb;
|
||||||
+ int err;
|
+ int err;
|
||||||
+
|
+
|
||||||
+ /* set up new queue */
|
+ /* set up new queue */
|
||||||
+ memset(&new, 0, sizeof(struct esfq_sched_data));
|
+ memset(&new, 0, sizeof(struct esfq_sched_data));
|
||||||
+ new.quantum = psched_mtu(sch->dev); /* default */
|
+ new.quantum = psched_mtu(sch->dev); /* default */
|
||||||
|
@ -710,7 +710,7 @@
|
||||||
+ sch_tree_lock(sch);
|
+ sch_tree_lock(sch);
|
||||||
+ while ((skb = esfq_q_dequeue(q)) != NULL)
|
+ while ((skb = esfq_q_dequeue(q)) != NULL)
|
||||||
+ esfq_q_enqueue(skb, &new, ESFQ_TAIL);
|
+ esfq_q_enqueue(skb, &new, ESFQ_TAIL);
|
||||||
+
|
+
|
||||||
+ /* clean up the old queue */
|
+ /* clean up the old queue */
|
||||||
+ esfq_q_destroy(q);
|
+ esfq_q_destroy(q);
|
||||||
+
|
+
|
||||||
|
@ -786,7 +786,7 @@
|
||||||
+{
|
+{
|
||||||
+ return register_qdisc(&esfq_qdisc_ops);
|
+ return register_qdisc(&esfq_qdisc_ops);
|
||||||
+}
|
+}
|
||||||
+static void __exit esfq_module_exit(void)
|
+static void __exit esfq_module_exit(void)
|
||||||
+{
|
+{
|
||||||
+ unregister_qdisc(&esfq_qdisc_ops);
|
+ unregister_qdisc(&esfq_qdisc_ops);
|
||||||
+}
|
+}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
+ if (c->mtd->unlock)
|
+ if (c->mtd->unlock)
|
||||||
+ c->mtd->unlock(c->mtd, 0, c->mtd->size);
|
+ c->mtd->unlock(c->mtd, 0, c->mtd->size);
|
||||||
+ printk("done.\n");
|
+ printk("done.\n");
|
||||||
+
|
+
|
||||||
+ printk("%s(): erasing all blocks after the end marker... ", __func__);
|
+ printk("%s(): erasing all blocks after the end marker... ", __func__);
|
||||||
+ jffs2_erase_pending_blocks(c, -1);
|
+ jffs2_erase_pending_blocks(c, -1);
|
||||||
+ printk("done.\n");
|
+ printk("done.\n");
|
||||||
|
@ -20,14 +20,21 @@
|
||||||
/* Now scan the directory tree, increasing nlink according to every dirent found. */
|
/* Now scan the directory tree, increasing nlink according to every dirent found. */
|
||||||
--- a/fs/jffs2/scan.c
|
--- a/fs/jffs2/scan.c
|
||||||
+++ b/fs/jffs2/scan.c
|
+++ b/fs/jffs2/scan.c
|
||||||
@@ -143,9 +143,12 @@
|
@@ -72,7 +72,7 @@
|
||||||
|
return ret;
|
||||||
|
if ((ret = jffs2_scan_dirty_space(c, jeb, jeb->free_size)))
|
||||||
|
return ret;
|
||||||
|
- /* Turned wasted size into dirty, since we apparently
|
||||||
|
+ /* Turned wasted size into dirty, since we apparently
|
||||||
|
think it's recoverable now. */
|
||||||
|
jeb->dirty_size += jeb->wasted_size;
|
||||||
|
c->dirty_size += jeb->wasted_size;
|
||||||
|
@@ -144,8 +144,11 @@
|
||||||
/* reset summary info for next eraseblock scan */
|
/* reset summary info for next eraseblock scan */
|
||||||
jffs2_sum_reset_collected(s);
|
jffs2_sum_reset_collected(s);
|
||||||
-
|
|
||||||
- ret = jffs2_scan_eraseblock(c, jeb, buf_size?flashbuf:(flashbuf+jeb->offset),
|
- ret = jffs2_scan_eraseblock(c, jeb, buf_size?flashbuf:(flashbuf+jeb->offset),
|
||||||
- buf_size, s);
|
- buf_size, s);
|
||||||
+
|
|
||||||
+ if (c->flags & (1 << 7))
|
+ if (c->flags & (1 << 7))
|
||||||
+ ret = BLK_STATE_ALLFF;
|
+ ret = BLK_STATE_ALLFF;
|
||||||
+ else
|
+ else
|
||||||
|
@ -36,6 +43,57 @@
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@@ -400,7 +403,7 @@
|
||||||
|
if (!ref)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
- /* BEFORE jffs2_build_xattr_subsystem() called,
|
||||||
|
+ /* BEFORE jffs2_build_xattr_subsystem() called,
|
||||||
|
* and AFTER xattr_ref is marked as a dead xref,
|
||||||
|
* ref->xid is used to store 32bit xid, xd is not used
|
||||||
|
* ref->ino is used to store 32bit inode-number, ic is not used
|
||||||
|
@@ -473,7 +476,7 @@
|
||||||
|
struct jffs2_sum_marker *sm;
|
||||||
|
void *sumptr = NULL;
|
||||||
|
uint32_t sumlen;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
if (!buf_size) {
|
||||||
|
/* XIP case. Just look, point at the summary if it's there */
|
||||||
|
sm = (void *)buf + c->sector_size - sizeof(*sm);
|
||||||
|
@@ -489,9 +492,9 @@
|
||||||
|
buf_len = sizeof(*sm);
|
||||||
|
|
||||||
|
/* Read as much as we want into the _end_ of the preallocated buffer */
|
||||||
|
- err = jffs2_fill_scan_buf(c, buf + buf_size - buf_len,
|
||||||
|
+ err = jffs2_fill_scan_buf(c, buf + buf_size - buf_len,
|
||||||
|
jeb->offset + c->sector_size - buf_len,
|
||||||
|
- buf_len);
|
||||||
|
+ buf_len);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
@@ -510,9 +513,9 @@
|
||||||
|
}
|
||||||
|
if (buf_len < sumlen) {
|
||||||
|
/* Need to read more so that the entire summary node is present */
|
||||||
|
- err = jffs2_fill_scan_buf(c, sumptr,
|
||||||
|
+ err = jffs2_fill_scan_buf(c, sumptr,
|
||||||
|
jeb->offset + c->sector_size - sumlen,
|
||||||
|
- sumlen - buf_len);
|
||||||
|
+ sumlen - buf_len);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
@@ -525,7 +528,7 @@
|
||||||
|
|
||||||
|
if (buf_size && sumlen > buf_size)
|
||||||
|
kfree(sumptr);
|
||||||
|
- /* If it returns with a real error, bail.
|
||||||
|
+ /* If it returns with a real error, bail.
|
||||||
|
If it returns positive, that's a block classification
|
||||||
|
(i.e. BLK_STATE_xxx) so return that too.
|
||||||
|
If it returns zero, fall through to full scan. */
|
||||||
@@ -546,6 +549,17 @@
|
@@ -546,6 +549,17 @@
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +108,25 @@
|
||||||
+
|
+
|
||||||
+ return BLK_STATE_ALLFF;
|
+ return BLK_STATE_ALLFF;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/* We temporarily use 'ofs' as a pointer into the buffer/jeb */
|
/* We temporarily use 'ofs' as a pointer into the buffer/jeb */
|
||||||
ofs = 0;
|
ofs = 0;
|
||||||
|
|
||||||
|
@@ -671,7 +685,7 @@
|
||||||
|
scan_end = buf_len;
|
||||||
|
goto more_empty;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
/* See how much more there is to read in this eraseblock... */
|
||||||
|
buf_len = min_t(uint32_t, buf_size, jeb->offset + c->sector_size - ofs);
|
||||||
|
if (!buf_len) {
|
||||||
|
@@ -907,7 +921,7 @@
|
||||||
|
|
||||||
|
D1(printk(KERN_DEBUG "Block at 0x%08x: free 0x%08x, dirty 0x%08x, unchecked 0x%08x, used 0x%08x, wasted 0x%08x\n",
|
||||||
|
jeb->offset,jeb->free_size, jeb->dirty_size, jeb->unchecked_size, jeb->used_size, jeb->wasted_size));
|
||||||
|
-
|
||||||
|
+
|
||||||
|
/* mark_node_obsolete can add to wasted !! */
|
||||||
|
if (jeb->wasted_size) {
|
||||||
|
jeb->dirty_size += jeb->wasted_size;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
+ spin_lock(&sequence_lock);
|
+ spin_lock(&sequence_lock);
|
||||||
+ seq = ++uevent_seqnum;
|
+ seq = ++uevent_seqnum;
|
||||||
+ spin_unlock(&sequence_lock);
|
+ spin_unlock(&sequence_lock);
|
||||||
+
|
+
|
||||||
+ return seq;
|
+ return seq;
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL_GPL(uevent_next_seqnum);
|
+EXPORT_SYMBOL_GPL(uevent_next_seqnum);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
+ if (copy_to_user(useraddr, &ecmd, sizeof(ecmd)))
|
+ if (copy_to_user(useraddr, &ecmd, sizeof(ecmd)))
|
||||||
+ return -EFAULT;
|
+ return -EFAULT;
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+
|
+
|
||||||
+ case ETHTOOL_SSET:
|
+ case ETHTOOL_SSET:
|
||||||
+ if (copy_from_user(&ecmd, useraddr, sizeof(ecmd)))
|
+ if (copy_from_user(&ecmd, useraddr, sizeof(ecmd)))
|
||||||
+ return -EFAULT;
|
+ return -EFAULT;
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
+ tmp |= (BMCR_ANRESTART);
|
+ tmp |= (BMCR_ANRESTART);
|
||||||
+ phy_write(phydev, MII_BMCR, tmp);
|
+ phy_write(phydev, MII_BMCR, tmp);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ }
|
+ }
|
||||||
+ return -EINVAL;
|
+ return -EINVAL;
|
||||||
+
|
+
|
||||||
+ case ETHTOOL_GLINK:
|
+ case ETHTOOL_GLINK:
|
||||||
|
@ -51,6 +51,26 @@
|
||||||
/**
|
/**
|
||||||
* phy_mii_ioctl - generic PHY MII ioctl interface
|
* phy_mii_ioctl - generic PHY MII ioctl interface
|
||||||
* @phydev: the phy_device struct
|
* @phydev: the phy_device struct
|
||||||
|
@@ -403,8 +447,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
phy_write(phydev, mii_data->reg_num, val);
|
||||||
|
-
|
||||||
|
- if (mii_data->reg_num == MII_BMCR
|
||||||
|
+
|
||||||
|
+ if (mii_data->reg_num == MII_BMCR
|
||||||
|
&& val & BMCR_RESET
|
||||||
|
&& phydev->drv->config_init) {
|
||||||
|
phy_scan_fixups(phydev);
|
||||||
|
@@ -524,7 +568,7 @@
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
idx = phy_find_setting(phydev->speed, phydev->duplex);
|
||||||
|
-
|
||||||
|
+
|
||||||
|
idx++;
|
||||||
|
|
||||||
|
idx = phy_find_valid(idx, phydev->supported);
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -434,6 +434,7 @@
|
@@ -434,6 +434,7 @@
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
/* Get BSSID if we have a valid AP address */
|
/* Get BSSID if we have a valid AP address */
|
||||||
+
|
+
|
||||||
+ if ( val == HFA384X_LINKSTATUS_CONNECTED ||
|
+ if ( val == HFA384X_LINKSTATUS_CONNECTED ||
|
||||||
+ val == HFA384X_LINKSTATUS_DISCONNECTED )
|
+ val == HFA384X_LINKSTATUS_DISCONNECTED )
|
||||||
+ hostap_restore_power(local->dev);
|
+ hostap_restore_power(local->dev);
|
||||||
+
|
+
|
||||||
if (connected) {
|
if (connected) {
|
||||||
|
@ -127,7 +127,7 @@
|
||||||
+{
|
+{
|
||||||
+ struct hostap_interface *iface = dev->priv;
|
+ struct hostap_interface *iface = dev->priv;
|
||||||
+ local_info_t *local = iface->local;
|
+ local_info_t *local = iface->local;
|
||||||
+
|
+
|
||||||
+ u16 val;
|
+ u16 val;
|
||||||
+ int ret = 0;
|
+ int ret = 0;
|
||||||
+
|
+
|
||||||
|
|
|
@ -573,7 +573,12 @@
|
||||||
/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */
|
/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */
|
||||||
--- a/crypto/crc32c.c
|
--- a/crypto/crc32c.c
|
||||||
+++ b/crypto/crc32c.c
|
+++ b/crypto/crc32c.c
|
||||||
@@ -5,20 +5,23 @@
|
@@ -1,24 +1,27 @@
|
||||||
|
-/*
|
||||||
|
+/*
|
||||||
|
* Cryptographic API.
|
||||||
|
*
|
||||||
|
* CRC32C chksum
|
||||||
*
|
*
|
||||||
* This module file is a wrapper to invoke the lib/crc32c routines.
|
* This module file is a wrapper to invoke the lib/crc32c routines.
|
||||||
*
|
*
|
||||||
|
@ -581,7 +586,8 @@
|
||||||
+ *
|
+ *
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the Free
|
* under the terms of the GNU General Public License as published by the Free
|
||||||
* Software Foundation; either version 2 of the License, or (at your option)
|
- * Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
+ * Software Foundation; either version 2 of the License, or (at your option)
|
||||||
* any later version.
|
* any later version.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -599,7 +605,21 @@
|
||||||
#define CHKSUM_DIGEST_SIZE 4
|
#define CHKSUM_DIGEST_SIZE 4
|
||||||
|
|
||||||
struct chksum_ctx {
|
struct chksum_ctx {
|
||||||
@@ -71,7 +74,7 @@
|
@@ -27,7 +30,7 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Steps through buffer one byte at at time, calculates reflected
|
||||||
|
+ * Steps through buffer one byte at at time, calculates reflected
|
||||||
|
* crc using table.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@@ -67,11 +70,11 @@
|
||||||
|
static void chksum_final(struct crypto_tfm *tfm, u8 *out)
|
||||||
|
{
|
||||||
|
struct chksum_ctx *mctx = crypto_tfm_ctx(tfm);
|
||||||
|
-
|
||||||
|
+
|
||||||
*(__le32 *)out = ~cpu_to_le32(mctx->crc);
|
*(__le32 *)out = ~cpu_to_le32(mctx->crc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -675,7 +695,7 @@
|
||||||
+static int crc32c_final(struct ahash_request *req)
|
+static int crc32c_final(struct ahash_request *req)
|
||||||
+{
|
+{
|
||||||
+ u32 *crcp = ahash_request_ctx(req);
|
+ u32 *crcp = ahash_request_ctx(req);
|
||||||
+
|
+
|
||||||
+ *(__le32 *)req->result = ~cpu_to_le32p(crcp);
|
+ *(__le32 *)req->result = ~cpu_to_le32p(crcp);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
|
@ -8329,12 +8349,12 @@
|
||||||
@@ -0,0 +1,154 @@
|
@@ -0,0 +1,154 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Hash: Hash algorithms under the crypto API
|
+ * Hash: Hash algorithms under the crypto API
|
||||||
+ *
|
+ *
|
||||||
+ * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
+ * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
+ *
|
+ *
|
||||||
+ * This program is free software; you can redistribute it and/or modify it
|
+ * This program is free software; you can redistribute it and/or modify it
|
||||||
+ * under the terms of the GNU General Public License as published by the Free
|
+ * under the terms of the GNU General Public License as published by the Free
|
||||||
+ * Software Foundation; either version 2 of the License, or (at your option)
|
+ * Software Foundation; either version 2 of the License, or (at your option)
|
||||||
+ * any later version.
|
+ * any later version.
|
||||||
+ *
|
+ *
|
||||||
+ */
|
+ */
|
||||||
|
@ -8486,12 +8506,12 @@
|
||||||
@@ -0,0 +1,78 @@
|
@@ -0,0 +1,78 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Hash algorithms.
|
+ * Hash algorithms.
|
||||||
+ *
|
+ *
|
||||||
+ * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
+ * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
+ *
|
+ *
|
||||||
+ * This program is free software; you can redistribute it and/or modify it
|
+ * This program is free software; you can redistribute it and/or modify it
|
||||||
+ * under the terms of the GNU General Public License as published by the Free
|
+ * under the terms of the GNU General Public License as published by the Free
|
||||||
+ * Software Foundation; either version 2 of the License, or (at your option)
|
+ * Software Foundation; either version 2 of the License, or (at your option)
|
||||||
+ * any later version.
|
+ * any later version.
|
||||||
+ *
|
+ *
|
||||||
+ */
|
+ */
|
||||||
|
|
|
@ -26,11 +26,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||||
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
|
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
|
||||||
---
|
---
|
||||||
|
|
||||||
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
|
|
||||||
index c52738a..c96fe20 100644
|
|
||||||
--- a/drivers/net/Makefile
|
--- a/drivers/net/Makefile
|
||||||
+++ b/drivers/net/Makefile
|
+++ b/drivers/net/Makefile
|
||||||
@@ -237,6 +237,7 @@ obj-$(CONFIG_USB_CATC) += usb/
|
@@ -237,6 +237,7 @@
|
||||||
obj-$(CONFIG_USB_KAWETH) += usb/
|
obj-$(CONFIG_USB_KAWETH) += usb/
|
||||||
obj-$(CONFIG_USB_PEGASUS) += usb/
|
obj-$(CONFIG_USB_PEGASUS) += usb/
|
||||||
obj-$(CONFIG_USB_RTL8150) += usb/
|
obj-$(CONFIG_USB_RTL8150) += usb/
|
||||||
|
@ -38,11 +36,9 @@ index c52738a..c96fe20 100644
|
||||||
obj-$(CONFIG_USB_USBNET) += usb/
|
obj-$(CONFIG_USB_USBNET) += usb/
|
||||||
obj-$(CONFIG_USB_ZD1201) += usb/
|
obj-$(CONFIG_USB_ZD1201) += usb/
|
||||||
|
|
||||||
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
|
|
||||||
index 0604f3f..68e198b 100644
|
|
||||||
--- a/drivers/net/usb/Kconfig
|
--- a/drivers/net/usb/Kconfig
|
||||||
+++ b/drivers/net/usb/Kconfig
|
+++ b/drivers/net/usb/Kconfig
|
||||||
@@ -154,6 +154,16 @@ config USB_NET_AX8817X
|
@@ -154,6 +154,16 @@
|
||||||
This driver creates an interface named "ethX", where X depends on
|
This driver creates an interface named "ethX", where X depends on
|
||||||
what other networking devices you have in use.
|
what other networking devices you have in use.
|
||||||
|
|
||||||
|
@ -59,11 +55,9 @@ index 0604f3f..68e198b 100644
|
||||||
|
|
||||||
config USB_NET_CDCETHER
|
config USB_NET_CDCETHER
|
||||||
tristate "CDC Ethernet support (smart devices such as cable modems)"
|
tristate "CDC Ethernet support (smart devices such as cable modems)"
|
||||||
diff --git a/drivers/net/usb/Makefile b/drivers/net/usb/Makefile
|
|
||||||
index 595a539..24800c1 100644
|
|
||||||
--- a/drivers/net/usb/Makefile
|
--- a/drivers/net/usb/Makefile
|
||||||
+++ b/drivers/net/usb/Makefile
|
+++ b/drivers/net/usb/Makefile
|
||||||
@@ -6,6 +6,7 @@ obj-$(CONFIG_USB_CATC) += catc.o
|
@@ -6,6 +6,7 @@
|
||||||
obj-$(CONFIG_USB_KAWETH) += kaweth.o
|
obj-$(CONFIG_USB_KAWETH) += kaweth.o
|
||||||
obj-$(CONFIG_USB_PEGASUS) += pegasus.o
|
obj-$(CONFIG_USB_PEGASUS) += pegasus.o
|
||||||
obj-$(CONFIG_USB_RTL8150) += rtl8150.o
|
obj-$(CONFIG_USB_RTL8150) += rtl8150.o
|
||||||
|
@ -71,9 +65,6 @@ index 595a539..24800c1 100644
|
||||||
obj-$(CONFIG_USB_NET_AX8817X) += asix.o
|
obj-$(CONFIG_USB_NET_AX8817X) += asix.o
|
||||||
obj-$(CONFIG_USB_NET_CDCETHER) += cdc_ether.o
|
obj-$(CONFIG_USB_NET_CDCETHER) += cdc_ether.o
|
||||||
obj-$(CONFIG_USB_NET_DM9601) += dm9601.o
|
obj-$(CONFIG_USB_NET_DM9601) += dm9601.o
|
||||||
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..031d07b
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/net/usb/hso.c
|
+++ b/drivers/net/usb/hso.c
|
||||||
@@ -0,0 +1,2836 @@
|
@@ -0,0 +1,2836 @@
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue