diff options
| -rw-r--r-- | Documentation/SubmittingPatches | 46 | ||||
| -rw-r--r-- | arch/x86/Kconfig.debug | 20 | ||||
| -rw-r--r-- | drivers/ata/libata-sff.c | 2 | ||||
| -rw-r--r-- | drivers/block/brd.c | 1 | ||||
| -rw-r--r-- | drivers/mtd/maps/omap_nor.c | 2 | ||||
| -rw-r--r-- | drivers/mtd/nand/pxa3xx_nand.c | 2 | ||||
| -rw-r--r-- | drivers/mtd/onenand/generic.c | 2 | ||||
| -rw-r--r-- | drivers/pnp/system.c | 2 | ||||
| -rw-r--r-- | fs/cifs/asn1.c | 14 | ||||
| -rw-r--r-- | include/asm-frv/checksum.h | 2 | ||||
| -rw-r--r-- | net/ipv4/netfilter/nf_nat_snmp_basic.c | 14 |
11 files changed, 93 insertions, 14 deletions
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 9c93a03ea33b..118ca6e9404f 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
| @@ -327,6 +327,52 @@ Some people also put extra tags at the end. They'll just be ignored for | |||
| 327 | now, but you can do this to mark internal company procedures or just | 327 | now, but you can do this to mark internal company procedures or just |
| 328 | point out some special detail about the sign-off. | 328 | point out some special detail about the sign-off. |
| 329 | 329 | ||
| 330 | If you are a subsystem or branch maintainer, sometimes you need to slightly | ||
| 331 | modify patches you receive in order to merge them, because the code is not | ||
| 332 | exactly the same in your tree and the submitters'. If you stick strictly to | ||
| 333 | rule (c), you should ask the submitter to rediff, but this is a totally | ||
| 334 | counter-productive waste of time and energy. Rule (b) allows you to adjust | ||
| 335 | the code, but then it is very impolite to change one submitter's code and | ||
| 336 | make him endorse your bugs. To solve this problem, it is recommended that | ||
| 337 | you add a line between the last Signed-off-by header and yours, indicating | ||
| 338 | the nature of your changes. While there is nothing mandatory about this, it | ||
| 339 | seems like prepending the description with your mail and/or name, all | ||
| 340 | enclosed in square brackets, is noticeable enough to make it obvious that | ||
| 341 | you are responsible for last-minute changes. Example : | ||
| 342 | |||
| 343 | Signed-off-by: Random J Developer <random@developer.example.org> | ||
| 344 | [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] | ||
| 345 | Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org> | ||
| 346 | |||
| 347 | This practise is particularly helpful if you maintain a stable branch and | ||
| 348 | want at the same time to credit the author, track changes, merge the fix, | ||
| 349 | and protect the submitter from complaints. Note that under no circumstances | ||
| 350 | can you change the author's identity (the From header), as it is the one | ||
| 351 | which appears in the changelog. | ||
| 352 | |||
| 353 | Special note to back-porters: It seems to be a common and useful practise | ||
| 354 | to insert an indication of the origin of a patch at the top of the commit | ||
| 355 | message (just after the subject line) to facilitate tracking. For instance, | ||
| 356 | here's what we see in 2.6-stable : | ||
| 357 | |||
| 358 | Date: Tue May 13 19:10:30 2008 +0000 | ||
| 359 | |||
| 360 | SCSI: libiscsi regression in 2.6.25: fix nop timer handling | ||
| 361 | |||
| 362 | commit 4cf1043593db6a337f10e006c23c69e5fc93e722 upstream | ||
| 363 | |||
| 364 | And here's what appears in 2.4 : | ||
| 365 | |||
| 366 | Date: Tue May 13 22:12:27 2008 +0200 | ||
| 367 | |||
| 368 | wireless, airo: waitbusy() won't delay | ||
| 369 | |||
| 370 | [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a] | ||
| 371 | |||
| 372 | Whatever the format, this information provides a valuable help to people | ||
| 373 | tracking your trees, and to people trying to trouble-shoot bugs in your | ||
| 374 | tree. | ||
| 375 | |||
| 330 | 376 | ||
| 331 | 13) When to use Acked-by: and Cc: | 377 | 13) When to use Acked-by: and Cc: |
| 332 | 378 | ||
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index ac1e31ba4795..18363374d51a 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
| @@ -6,15 +6,19 @@ config TRACE_IRQFLAGS_SUPPORT | |||
| 6 | source "lib/Kconfig.debug" | 6 | source "lib/Kconfig.debug" |
| 7 | 7 | ||
| 8 | config NONPROMISC_DEVMEM | 8 | config NONPROMISC_DEVMEM |
| 9 | bool "Disable promiscuous /dev/mem" | 9 | bool "Filter access to /dev/mem" |
| 10 | help | 10 | help |
| 11 | The /dev/mem file by default only allows userspace access to PCI | 11 | If this option is left off, you allow userspace access to all |
| 12 | space and the BIOS code and data regions. This is sufficient for | 12 | of memory, including kernel and userspace memory. Accidental |
| 13 | dosemu and X and all common users of /dev/mem. With this config | 13 | access to this is obviously disastrous, but specific access can |
| 14 | option, you allow userspace access to all of memory, including | 14 | be used by people debugging the kernel. |
| 15 | kernel and userspace memory. Accidental access to this is | 15 | |
| 16 | obviously disasterous, but specific access can be used by people | 16 | If this option is switched on, the /dev/mem file only allows |
| 17 | debugging the kernel. | 17 | userspace access to PCI space and the BIOS code and data regions. |
| 18 | This is sufficient for dosemu and X and all common users of | ||
| 19 | /dev/mem. | ||
| 20 | |||
| 21 | If in doubt, say Y. | ||
| 18 | 22 | ||
| 19 | config EARLY_PRINTK | 23 | config EARLY_PRINTK |
| 20 | bool "Early printk" if EMBEDDED | 24 | bool "Early printk" if EMBEDDED |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 90d20c615ef5..215d18672a5a 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
| @@ -278,7 +278,7 @@ static u8 ata_sff_irq_status(struct ata_port *ap) | |||
| 278 | return status; | 278 | return status; |
| 279 | } | 279 | } |
| 280 | /* Clear INTRQ latch */ | 280 | /* Clear INTRQ latch */ |
| 281 | status = ata_sff_check_status(ap); | 281 | status = ap->ops->sff_check_status(ap); |
| 282 | return status; | 282 | return status; |
| 283 | } | 283 | } |
| 284 | 284 | ||
diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 680cdfc00b90..24b97b0bef99 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c | |||
| @@ -397,6 +397,7 @@ module_param(max_part, int, 0); | |||
| 397 | MODULE_PARM_DESC(max_part, "Maximum number of partitions per RAM disk"); | 397 | MODULE_PARM_DESC(max_part, "Maximum number of partitions per RAM disk"); |
| 398 | MODULE_LICENSE("GPL"); | 398 | MODULE_LICENSE("GPL"); |
| 399 | MODULE_ALIAS_BLOCKDEV_MAJOR(RAMDISK_MAJOR); | 399 | MODULE_ALIAS_BLOCKDEV_MAJOR(RAMDISK_MAJOR); |
| 400 | MODULE_ALIAS("rd"); | ||
| 400 | 401 | ||
| 401 | #ifndef MODULE | 402 | #ifndef MODULE |
| 402 | /* Legacy boot options - nonmodular */ | 403 | /* Legacy boot options - nonmodular */ |
diff --git a/drivers/mtd/maps/omap_nor.c b/drivers/mtd/maps/omap_nor.c index 240b0e2d095d..c12d8056bebd 100644 --- a/drivers/mtd/maps/omap_nor.c +++ b/drivers/mtd/maps/omap_nor.c | |||
| @@ -110,7 +110,7 @@ static int __init omapflash_probe(struct platform_device *pdev) | |||
| 110 | err = parse_mtd_partitions(info->mtd, part_probes, &info->parts, 0); | 110 | err = parse_mtd_partitions(info->mtd, part_probes, &info->parts, 0); |
| 111 | if (err > 0) | 111 | if (err > 0) |
| 112 | add_mtd_partitions(info->mtd, info->parts, err); | 112 | add_mtd_partitions(info->mtd, info->parts, err); |
| 113 | else if (err < 0 && pdata->parts) | 113 | else if (err <= 0 && pdata->parts) |
| 114 | add_mtd_partitions(info->mtd, pdata->parts, pdata->nr_parts); | 114 | add_mtd_partitions(info->mtd, pdata->parts, pdata->nr_parts); |
| 115 | else | 115 | else |
| 116 | #endif | 116 | #endif |
diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c index fceb468ccdec..fe2bc7e42119 100644 --- a/drivers/mtd/nand/pxa3xx_nand.c +++ b/drivers/mtd/nand/pxa3xx_nand.c | |||
| @@ -1216,7 +1216,7 @@ static int pxa3xx_nand_resume(struct platform_device *pdev) | |||
| 1216 | 1216 | ||
| 1217 | clk_enable(info->clk); | 1217 | clk_enable(info->clk); |
| 1218 | 1218 | ||
| 1219 | return pxa3xx_nand_config_flash(info); | 1219 | return pxa3xx_nand_config_flash(info, info->flash_info); |
| 1220 | } | 1220 | } |
| 1221 | #else | 1221 | #else |
| 1222 | #define pxa3xx_nand_suspend NULL | 1222 | #define pxa3xx_nand_suspend NULL |
diff --git a/drivers/mtd/onenand/generic.c b/drivers/mtd/onenand/generic.c index 3d44d040a47d..ad81ab8e95e2 100644 --- a/drivers/mtd/onenand/generic.c +++ b/drivers/mtd/onenand/generic.c | |||
| @@ -76,7 +76,7 @@ static int __devinit generic_onenand_probe(struct device *dev) | |||
| 76 | err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0); | 76 | err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0); |
| 77 | if (err > 0) | 77 | if (err > 0) |
| 78 | add_mtd_partitions(&info->mtd, info->parts, err); | 78 | add_mtd_partitions(&info->mtd, info->parts, err); |
| 79 | else if (err < 0 && pdata->parts) | 79 | else if (err <= 0 && pdata->parts) |
| 80 | add_mtd_partitions(&info->mtd, pdata->parts, pdata->nr_parts); | 80 | add_mtd_partitions(&info->mtd, pdata->parts, pdata->nr_parts); |
| 81 | else | 81 | else |
| 82 | #endif | 82 | #endif |
diff --git a/drivers/pnp/system.c b/drivers/pnp/system.c index 8f0a570509c5..cf4e07b01d48 100644 --- a/drivers/pnp/system.c +++ b/drivers/pnp/system.c | |||
| @@ -81,7 +81,7 @@ static void reserve_resources_of_dev(struct pnp_dev *dev) | |||
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) { | 83 | for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) { |
| 84 | if (res->flags & IORESOURCE_DISABLED) | 84 | if (res->flags & (IORESOURCE_UNSET | IORESOURCE_DISABLED)) |
| 85 | continue; | 85 | continue; |
| 86 | 86 | ||
| 87 | reserve_range(dev, res->start, res->end, 0); | 87 | reserve_range(dev, res->start, res->end, 0); |
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c index cb52cbbe45ff..f58e41d3ba48 100644 --- a/fs/cifs/asn1.c +++ b/fs/cifs/asn1.c | |||
| @@ -186,6 +186,11 @@ asn1_length_decode(struct asn1_ctx *ctx, unsigned int *def, unsigned int *len) | |||
| 186 | } | 186 | } |
| 187 | } | 187 | } |
| 188 | } | 188 | } |
| 189 | |||
| 190 | /* don't trust len bigger than ctx buffer */ | ||
| 191 | if (*len > ctx->end - ctx->pointer) | ||
| 192 | return 0; | ||
| 193 | |||
| 189 | return 1; | 194 | return 1; |
| 190 | } | 195 | } |
| 191 | 196 | ||
| @@ -203,6 +208,10 @@ asn1_header_decode(struct asn1_ctx *ctx, | |||
| 203 | if (!asn1_length_decode(ctx, &def, &len)) | 208 | if (!asn1_length_decode(ctx, &def, &len)) |
| 204 | return 0; | 209 | return 0; |
| 205 | 210 | ||
| 211 | /* primitive shall be definite, indefinite shall be constructed */ | ||
| 212 | if (*con == ASN1_PRI && !def) | ||
| 213 | return 0; | ||
| 214 | |||
| 206 | if (def) | 215 | if (def) |
| 207 | *eoc = ctx->pointer + len; | 216 | *eoc = ctx->pointer + len; |
| 208 | else | 217 | else |
| @@ -389,6 +398,11 @@ asn1_oid_decode(struct asn1_ctx *ctx, | |||
| 389 | unsigned long *optr; | 398 | unsigned long *optr; |
| 390 | 399 | ||
| 391 | size = eoc - ctx->pointer + 1; | 400 | size = eoc - ctx->pointer + 1; |
| 401 | |||
| 402 | /* first subid actually encodes first two subids */ | ||
| 403 | if (size < 2 || size > ULONG_MAX/sizeof(unsigned long)) | ||
| 404 | return 0; | ||
| 405 | |||
| 392 | *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); | 406 | *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); |
| 393 | if (*oid == NULL) | 407 | if (*oid == NULL) |
| 394 | return 0; | 408 | return 0; |
diff --git a/include/asm-frv/checksum.h b/include/asm-frv/checksum.h index 9b1689850187..269da09ff637 100644 --- a/include/asm-frv/checksum.h +++ b/include/asm-frv/checksum.h | |||
| @@ -75,7 +75,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | |||
| 75 | : "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (inc), "=&r"(tmp) | 75 | : "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (inc), "=&r"(tmp) |
| 76 | : "0" (sum), "1" (iph), "2" (ihl), "3" (4), | 76 | : "0" (sum), "1" (iph), "2" (ihl), "3" (4), |
| 77 | "m"(*(volatile struct { int _[100]; } *)iph) | 77 | "m"(*(volatile struct { int _[100]; } *)iph) |
| 78 | : "icc0", "icc1" | 78 | : "icc0", "icc1", "memory" |
| 79 | ); | 79 | ); |
| 80 | 80 | ||
| 81 | return (__force __sum16)~sum; | 81 | return (__force __sum16)~sum; |
diff --git a/net/ipv4/netfilter/nf_nat_snmp_basic.c b/net/ipv4/netfilter/nf_nat_snmp_basic.c index 5daefad3d193..7750c97fde7b 100644 --- a/net/ipv4/netfilter/nf_nat_snmp_basic.c +++ b/net/ipv4/netfilter/nf_nat_snmp_basic.c | |||
| @@ -232,6 +232,11 @@ static unsigned char asn1_length_decode(struct asn1_ctx *ctx, | |||
| 232 | } | 232 | } |
| 233 | } | 233 | } |
| 234 | } | 234 | } |
| 235 | |||
| 236 | /* don't trust len bigger than ctx buffer */ | ||
| 237 | if (*len > ctx->end - ctx->pointer) | ||
| 238 | return 0; | ||
| 239 | |||
| 235 | return 1; | 240 | return 1; |
| 236 | } | 241 | } |
| 237 | 242 | ||
| @@ -250,6 +255,10 @@ static unsigned char asn1_header_decode(struct asn1_ctx *ctx, | |||
| 250 | if (!asn1_length_decode(ctx, &def, &len)) | 255 | if (!asn1_length_decode(ctx, &def, &len)) |
| 251 | return 0; | 256 | return 0; |
| 252 | 257 | ||
| 258 | /* primitive shall be definite, indefinite shall be constructed */ | ||
| 259 | if (*con == ASN1_PRI && !def) | ||
| 260 | return 0; | ||
| 261 | |||
| 253 | if (def) | 262 | if (def) |
| 254 | *eoc = ctx->pointer + len; | 263 | *eoc = ctx->pointer + len; |
| 255 | else | 264 | else |
| @@ -434,6 +443,11 @@ static unsigned char asn1_oid_decode(struct asn1_ctx *ctx, | |||
| 434 | unsigned long *optr; | 443 | unsigned long *optr; |
| 435 | 444 | ||
| 436 | size = eoc - ctx->pointer + 1; | 445 | size = eoc - ctx->pointer + 1; |
| 446 | |||
| 447 | /* first subid actually encodes first two subids */ | ||
| 448 | if (size < 2 || size > ULONG_MAX/sizeof(unsigned long)) | ||
| 449 | return 0; | ||
| 450 | |||
| 437 | *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); | 451 | *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); |
| 438 | if (*oid == NULL) { | 452 | if (*oid == NULL) { |
| 439 | if (net_ratelimit()) | 453 | if (net_ratelimit()) |
