···542542 2 : search cores in a package.543543 3 : search cpus in a node [= system wide on non-NUMA system]544544 ( 4 : search nodes in a chunk of node [on NUMA system] )545545- ( 5~ : search system wide [on NUMA system])545545+ ( 5 : search system wide [on NUMA system] )546546547547This file is per-cpuset and affect the sched domain where the cpuset548548belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
+13-20
Documentation/hwmon/sysfs-interface
···22------------------------------------------------3344The libsensors library offers an interface to the raw sensors data55-through the sysfs interface. See libsensors documentation and source for66-further information. As of writing this document, libsensors77-(from lm_sensors 2.8.3) is heavily chip-dependent. Adding or updating88-support for any given chip requires modifying the library's code.99-This is because libsensors was written for the procfs interface1010-older kernel modules were using, which wasn't standardized enough.1111-Recent versions of libsensors (from lm_sensors 2.8.2 and later) have1212-support for the sysfs interface, though.1313-1414-The new sysfs interface was designed to be as chip-independent as1515-possible.55+through the sysfs interface. Since lm-sensors 3.0.0, libsensors is66+completely chip-independent. It assumes that all the kernel drivers77+implement the standard sysfs interface described in this document.88+This makes adding or updating support for any given chip very easy, as99+libsensors, and applications using it, do not need to be modified.1010+This is a major improvement compared to lm-sensors 2.16111712Note that motherboards vary widely in the connections to sensor chips.1813There is no standard that ensures, for example, that the second···3035will have to implement conversion, labeling and hiding of inputs. For3136this reason, it is still not recommended to bypass the library.32373333-If you are developing a userspace application please send us feedback on3434-this standard.3535-3636-Note that this standard isn't completely established yet, so it is subject3737-to changes. If you are writing a new hardware monitoring driver those3838-features can't seem to fit in this interface, please contact us with your3939-extension proposal. Keep in mind that backward compatibility must be4040-preserved.4141-4238Each chip gets its own directory in the sysfs /sys/devices tree. To4339find all sensor chips, it is easier to follow the device symlinks from4440/sys/class/hwmon/hwmon*.4141+4242+Up to lm-sensors 3.0.0, libsensors looks for hardware monitoring attributes4343+in the "physical" device directory. Since lm-sensors 3.0.1, attributes found4444+in the hwmon "class" device directory are also supported. Complex drivers4545+(e.g. drivers for multifunction chips) may want to use this possibility to4646+avoid namespace pollution. The only drawback will be that older versions of4747+libsensors won't support the driver in question.45484649All sysfs values are fixed point numbers.4750
+3-3
MAINTAINERS
···44314431S: Maintained4432443244334433W83791D HARDWARE MONITORING DRIVER44344434-P: Charles Spirakis44354435-M: bezaur@gmail.com44344434+P: Marc Hulsman44354435+M: m.hulsman@tudelft.nl44364436L: lm-sensors@lm-sensors.org44374437-S: Odd Fixes44374437+S: Maintained4438443844394439W83793 HARDWARE MONITORING DRIVER44404440P: Rudolf Marek
···7474# define DBG(args)7575#endif76767777+DEFINE_SPINLOCK(t2_hae_lock);7878+7779static volatile unsigned int t2_mcheck_any_expected;7880static volatile unsigned int t2_mcheck_last_taken;7981
+17
arch/alpha/kernel/pci.c
···7171static void __init7272quirk_cypress(struct pci_dev *dev)7373{7474+ /* The Notorious Cy82C693 chip. */7575+7676+ /* The generic legacy mode IDE fixup in drivers/pci/probe.c7777+ doesn't work correctly with the Cypress IDE controller as7878+ it has non-standard register layout. Fix that. */7979+ if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE) {8080+ dev->resource[2].start = dev->resource[3].start = 0;8181+ dev->resource[2].end = dev->resource[3].end = 0;8282+ dev->resource[2].flags = dev->resource[3].flags = 0;8383+ if (PCI_FUNC(dev->devfn) == 2) {8484+ dev->resource[0].start = 0x170;8585+ dev->resource[0].end = 0x177;8686+ dev->resource[1].start = 0x376;8787+ dev->resource[1].end = 0x376;8888+ }8989+ }9090+7491 /* The Cypress bridge responds on the PCI bus in the address range7592 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no7693 way to turn this off. The bridge also supports several extended
+2-1
arch/alpha/kernel/traps.c
···447447448448449449/* Macro for exception fixup code to access integer registers. */450450-#define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])450450+#define una_reg(r) (_regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])451451452452453453asmlinkage void···456456{457457 long error, tmp1, tmp2, tmp3, tmp4;458458 unsigned long pc = regs->pc - 4;459459+ unsigned long *_regs = regs->regs;459460 const struct exception_table_entry *fixup;460461461462 unaligned[0].count++;
+2
arch/ia64/sn/kernel/sn2/sn2_smp.c
···512512 int cpu;513513 char optstr[64];514514515515+ if (count > sizeof(optstr))516516+ return -EINVAL;515517 if (copy_from_user(optstr, user, count))516518 return -EFAULT;517519 optstr[count - 1] = '\0';
···166166 static int has_vsa2 = -1;167167168168 if (has_vsa2 == -1) {169169+ u16 val;170170+169171 /*170172 * The VSA has virtual registers that we can query for a171173 * signature.···175173 outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);176174 outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);177175178178- has_vsa2 = (inw(VSA_VRC_DATA) == VSA_SIG);176176+ val = inw(VSA_VRC_DATA);177177+ has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);179178 }180179181180 return has_vsa2;
···532532 (unsigned long)(crash_size >> 20),533533 (unsigned long)(crash_base >> 20),534534 (unsigned long)(total_mem >> 20));535535+536536+ if (reserve_bootmem(crash_base, crash_size,537537+ BOOTMEM_EXCLUSIVE) < 0) {538538+ printk(KERN_INFO "crashkernel reservation "539539+ "failed - memory is in use\n");540540+ return;541541+ }542542+535543 crashk_res.start = crash_base;536544 crashk_res.end = crash_base + crash_size - 1;537537- reserve_bootmem(crash_base, crash_size,538538- BOOTMEM_DEFAULT);539545 } else540546 printk(KERN_INFO "crashkernel reservation failed - "541547 "you have to specify a base address\n");
+8-10
arch/x86/kernel/tsc_32.c
···14141515#include "mach_timer.h"16161717-static int tsc_disabled;1717+/* native_sched_clock() is called before tsc_init(), so1818+ we must start with the TSC soft disabled to prevent1919+ erroneous rdtsc usage on !cpu_has_tsc processors */2020+static int tsc_disabled = -1;18211922/*2023 * On some systems the TSC frequency does not···405402{406403 int cpu;407404408408- if (!cpu_has_tsc || tsc_disabled) {409409- /* Disable the TSC in case of !cpu_has_tsc */410410- tsc_disabled = 1;405405+ if (!cpu_has_tsc || tsc_disabled > 0)411406 return;412412- }413407414408 cpu_khz = calculate_cpu_khz();415409 tsc_khz = cpu_khz;416410417411 if (!cpu_khz) {418412 mark_tsc_unstable("could not calculate TSC khz");419419- /*420420- * We need to disable the TSC completely in this case421421- * to prevent sched_clock() from using it.422422- */423423- tsc_disabled = 1;424413 return;425414 }415415+416416+ /* now allow native_sched_clock() to use rdtsc */417417+ tsc_disabled = 0;426418427419 printk("Detected %lu.%03lu MHz processor.\n",428420 (unsigned long)cpu_khz / 1000,
···1713171317141714 status = acpi_video_bus_get_one_device(dev, video);17151715 if (ACPI_FAILURE(status)) {17161716- ACPI_EXCEPTION((AE_INFO, status, "Cant attach device"));17161716+ ACPI_DEBUG_PRINT((ACPI_DB_WARN,17171717+ "Cant attach device"));17171718 continue;17181719 }17191720 }
+9-1
drivers/ata/Kconfig
···651651 Support for the Winbond W83759A controller on Vesa Local Bus652652 systems.653653654654+config HAVE_PATA_PLATFORM655655+ bool656656+ help657657+ This is an internal configuration node for any machine that658658+ uses pata-platform driver to enable the relevant driver in the659659+ configuration structure without having to submit endless patches660660+ to update the PATA_PLATFORM entry.661661+654662config PATA_PLATFORM655663 tristate "Generic platform device PATA support"656656- depends on EMBEDDED || ARCH_RPC || PPC664664+ depends on EMBEDDED || ARCH_RPC || PPC || HAVE_PATA_PLATFORM657665 help658666 This option enables support for generic directly connected ATA659667 devices commonly found on embedded systems.
···13221322 goto out_port_free_dma_mem;13231323 memset(pp->crpb, 0, MV_CRPB_Q_SZ);1324132413251325+ /* 6041/6081 Rev. "C0" (and newer) are okay with async notify */13261326+ if (hpriv->hp_flags & MV_HP_ERRATA_60X1C0)13271327+ ap->flags |= ATA_FLAG_AN;13251328 /*13261329 * For GEN_I, there's no NCQ, so we only allocate a single sg_tbl.13271330 * For later hardware, we need one unique sg_tbl per NCQ tag.···1595159215961593 if ((qc->tf.protocol != ATA_PROT_DMA) &&15971594 (qc->tf.protocol != ATA_PROT_NCQ)) {15951595+ static int limit_warnings = 10;15961596+ /*15971597+ * Errata SATA#16, SATA#24: warn if multiple DRQs expected.15981598+ *15991599+ * Someday, we might implement special polling workarounds16001600+ * for these, but it all seems rather unnecessary since we16011601+ * normally use only DMA for commands which transfer more16021602+ * than a single block of data.16031603+ *16041604+ * Much of the time, this could just work regardless.16051605+ * So for now, just log the incident, and allow the attempt.16061606+ */16071607+ if (limit_warnings && (qc->nbytes / qc->sect_size) > 1) {16081608+ --limit_warnings;16091609+ ata_link_printk(qc->dev->link, KERN_WARNING, DRV_NAME16101610+ ": attempting PIO w/multiple DRQ: "16111611+ "this may fail due to h/w errata\n");16121612+ }15981613 /*15991614 * We're about to send a non-EDMA capable command to the16001615 * port. Turn off EDMA so there won't be problems accessing
+1-1
drivers/char/agp/intel-agp.c
···948948 intel_private.ifp_resource.flags = IORESOURCE_MEM;949949950950 /* Setup chipset flush for 915 */951951- if (IS_I965 || IS_G33) {951951+ if (IS_I965 || IS_G33 || IS_G4X) {952952 intel_i965_g33_setup_chipset_flush();953953 } else {954954 intel_i915_setup_chipset_flush();
+3-5
drivers/char/drm/ati_pcigart.c
···7676 for (i = 0; i < pages; i++) {7777 if (!entry->busaddr[i])7878 break;7979- pci_unmap_single(dev->pdev, entry->busaddr[i],7979+ pci_unmap_page(dev->pdev, entry->busaddr[i],8080 PAGE_SIZE, PCI_DMA_TODEVICE);8181 }8282···137137138138 for (i = 0; i < pages; i++) {139139 /* we need to support large memory configurations */140140- entry->busaddr[i] = pci_map_single(dev->pdev,141141- page_address(entry->142142- pagelist[i]),143143- PAGE_SIZE, PCI_DMA_TODEVICE);140140+ entry->busaddr[i] = pci_map_page(dev->pdev, entry->pagelist[i],141141+ 0, PAGE_SIZE, PCI_DMA_TODEVICE);144142 if (entry->busaddr[i] == 0) {145143 DRM_ERROR("unable to map PCIGART pages!\n");146144 drm_ati_pcigart_cleanup(dev, gart_info);
···11-comment "An alternative FireWire stack is available with EXPERIMENTAL=y"11+comment "A new alternative FireWire stack is available with EXPERIMENTAL=y"22 depends on EXPERIMENTAL=n3344+comment "Enable only one of the two stacks, unless you know what you are doing"55+ depends on EXPERIMENTAL66+47config FIREWIRE55- tristate "IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL"88+ tristate "New FireWire stack, EXPERIMENTAL"69 depends on EXPERIMENTAL710 select CRC_ITU_T811 help912 This is the "Juju" FireWire stack, a new alternative implementation1013 designed for robustness and simplicity. You can build either this1111- stack, or the classic stack (the ieee1394 driver, ohci1394 etc.)1212- or both. Please read http://wiki.linux1394.org/JujuMigration before1313- you enable the new stack.1414+ stack, or the old stack (the ieee1394 driver, ohci1394 etc.) or both.1515+ Please read http://wiki.linux1394.org/JujuMigration before you1616+ enable the new stack.14171518 To compile this driver as a module, say M here: the module will be1619 called firewire-core. It functionally replaces ieee1394, raw1394,1720 and video1394.18211919- NOTE:2020-2121- You should only build ONE of the stacks, unless you REALLY know what2222- you are doing.2323-2422config FIREWIRE_OHCI2525- tristate "Support for OHCI FireWire host controllers"2323+ tristate "OHCI-1394 controllers"2624 depends on PCI && FIREWIRE2725 help2826 Enable this driver if you have a FireWire controller based···3133 called firewire-ohci. It replaces ohci1394 of the classic IEEE 13943234 stack.33353434- NOTE:3636+ NOTE:35373636- You should only build ohci1394 or firewire-ohci, but not both.3737- If you nevertheless want to install both, you should configure them3838- only as modules and blacklist the driver(s) which you don't want to3939- have auto-loaded. Add either3838+ You should only build either firewire-ohci or the old ohci1394 driver,3939+ but not both. If you nevertheless want to install both, you should4040+ configure them only as modules and blacklist the driver(s) which you4141+ don't want to have auto-loaded. Add either40424143 blacklist firewire-ohci4244 or···5860 default y59616062config FIREWIRE_SBP26161- tristate "Support for storage devices (SBP-2 protocol driver)"6363+ tristate "Storage devices (SBP-2 protocol)"6264 depends on FIREWIRE && SCSI6365 help6466 This option enables you to use SBP-2 devices connected to a
+7-2
drivers/firewire/fw-cdev.c
···205205 return dequeue_event(client, buffer, count);206206}207207208208+/* caller must hold card->lock so that node pointers can be dereferenced here */208209static void209210fill_bus_reset_event(struct fw_cdev_event_bus_reset *event,210211 struct client *client)···215214 event->closure = client->bus_reset_closure;216215 event->type = FW_CDEV_EVENT_BUS_RESET;217216 event->generation = client->device->generation;218218- smp_rmb(); /* node_id must not be older than generation */219217 event->node_id = client->device->node_id;220218 event->local_node_id = card->local_node->node_id;221219 event->bm_node_id = 0; /* FIXME: We don't track the BM. */···274274{275275 struct fw_cdev_get_info *get_info = buffer;276276 struct fw_cdev_event_bus_reset bus_reset;277277+ struct fw_card *card = client->device->card;277278 unsigned long ret = 0;278279279280 client->version = get_info->version;···300299 client->bus_reset_closure = get_info->bus_reset_closure;301300 if (get_info->bus_reset != 0) {302301 void __user *uptr = u64_to_uptr(get_info->bus_reset);302302+ unsigned long flags;303303304304+ spin_lock_irqsave(&card->lock, flags);304305 fill_bus_reset_event(&bus_reset, client);306306+ spin_unlock_irqrestore(&card->lock, flags);307307+305308 if (copy_to_user(uptr, &bus_reset, sizeof(bus_reset)))306309 return -EFAULT;307310 }308311309309- get_info->card = client->device->card->index;312312+ get_info->card = card->index;310313311314 return 0;312315}
···251251 the SMBus standard. */252252static int lm75_read_value(struct i2c_client *client, u8 reg)253253{254254+ int value;255255+254256 if (reg == LM75_REG_CONF)255257 return i2c_smbus_read_byte_data(client, reg);256256- else257257- return swab16(i2c_smbus_read_word_data(client, reg));258258+259259+ value = i2c_smbus_read_word_data(client, reg);260260+ return (value < 0) ? value : swab16(value);258261}259262260263static int lm75_write_value(struct i2c_client *client, u8 reg, u16 value)···290287 int i;291288 dev_dbg(&client->dev, "Starting lm75 update\n");292289293293- for (i = 0; i < ARRAY_SIZE(data->temp); i++)294294- data->temp[i] = lm75_read_value(client,295295- LM75_REG_TEMP[i]);290290+ for (i = 0; i < ARRAY_SIZE(data->temp); i++) {291291+ int status;292292+293293+ status = lm75_read_value(client, LM75_REG_TEMP[i]);294294+ if (status < 0)295295+ dev_dbg(&client->dev, "reg %d, err %d\n",296296+ LM75_REG_TEMP[i], status);297297+ else298298+ data->temp[i] = status;299299+ }296300 data->last_updated = jiffies;297301 data->valid = 1;298302 }
+11-14
drivers/hwmon/lm85.c
···192192{193193 int i;194194195195- if ( range < lm85_range_map[0] ) { 196196- return 0 ;197197- } else if ( range > lm85_range_map[15] ) {195195+ if (range >= lm85_range_map[15])198196 return 15 ;199199- } else { /* find closest match */200200- for ( i = 14 ; i >= 0 ; --i ) {201201- if ( range > lm85_range_map[i] ) { /* range bracketed */202202- if ((lm85_range_map[i+1] - range) < 203203- (range - lm85_range_map[i])) {204204- i++;205205- break;206206- }207207- break;208208- }197197+198198+ /* Find the closest match */199199+ for (i = 14; i >= 0; --i) {200200+ if (range >= lm85_range_map[i]) {201201+ if ((lm85_range_map[i + 1] - range) <202202+ (range - lm85_range_map[i]))203203+ return i + 1;204204+ return i;209205 }210206 }211211- return( i & 0x0f );207207+208208+ return 0;212209}213210#define RANGE_FROM_REG(val) (lm85_range_map[(val)&0x0f])214211
-7
drivers/ide/Kconfig
···823823 Say Y here if you want to support the Yellowstone RapIDE controller824824 manufactured for use with Acorn computers.825825826826-config BLK_DEV_IDE_BAST827827- tristate "Simtec BAST / Thorcom VR1000 IDE support"828828- depends on ARM && (ARCH_BAST || MACH_VR1000)829829- help830830- Say Y here if you want to support the onboard IDE channels on the831831- Simtec BAST or the Thorcom VR1000832832-833826config IDE_H8300834827 tristate "H8300 IDE support"835828 depends on H8300
···11-/*22- * Copyright (c) 2003-2004 Simtec Electronics33- * Ben Dooks <ben@simtec.co.uk>44- *55- * This program is free software; you can redistribute it and/or modify66- * it under the terms of the GNU General Public License version 2 as77- * published by the Free Software Foundation.88- *99-*/1010-1111-#include <linux/module.h>1212-#include <linux/errno.h>1313-#include <linux/ide.h>1414-#include <linux/init.h>1515-1616-#include <asm/mach-types.h>1717-1818-#include <asm/io.h>1919-#include <asm/irq.h>2020-#include <asm/arch/map.h>2121-#include <asm/arch/bast-map.h>2222-#include <asm/arch/bast-irq.h>2323-2424-#define DRV_NAME "bast-ide"2525-2626-static int __init bastide_register(unsigned int base, unsigned int aux, int irq)2727-{2828- ide_hwif_t *hwif;2929- hw_regs_t hw;3030- int i;3131- u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };3232-3333- memset(&hw, 0, sizeof(hw));3434-3535- base += BAST_IDE_CS;3636- aux += BAST_IDE_CS;3737-3838- for (i = 0; i <= 7; i++) {3939- hw.io_ports_array[i] = (unsigned long)base;4040- base += 0x20;4141- }4242-4343- hw.io_ports.ctl_addr = aux + (6 * 0x20);4444- hw.irq = irq;4545- hw.chipset = ide_generic;4646-4747- hwif = ide_find_port();4848- if (hwif == NULL)4949- goto out;5050-5151- i = hwif->index;5252-5353- ide_init_port_data(hwif, i);5454- ide_init_port_hw(hwif, &hw);5555- hwif->port_ops = NULL;5656-5757- idx[0] = i;5858-5959- ide_device_add(idx, NULL);6060-out:6161- return 0;6262-}6363-6464-static int __init bastide_init(void)6565-{6666- unsigned long base = BAST_VA_IDEPRI + BAST_IDE_CS;6767-6868- /* we can treat the VR1000 and the BAST the same */6969-7070- if (!(machine_is_bast() || machine_is_vr1000()))7171- return 0;7272-7373- printk("BAST: IDE driver, (c) 2003-2004 Simtec Electronics\n");7474-7575- if (!request_mem_region(base, 0x400000, DRV_NAME)) {7676- printk(KERN_ERR "%s: resources busy\n", DRV_NAME);7777- return -EBUSY;7878- }7979-8080- bastide_register(BAST_VA_IDEPRI, BAST_VA_IDEPRIAUX, IRQ_IDE0);8181- bastide_register(BAST_VA_IDESEC, BAST_VA_IDESECAUX, IRQ_IDE1);8282-8383- return 0;8484-}8585-8686-module_init(bastide_init);8787-8888-MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");8989-MODULE_LICENSE("GPL");9090-MODULE_DESCRIPTION("Simtec BAST / Thorcom VR1000 IDE driver");
+13-9
drivers/ide/arm/palm_bk3710.c
···353353 struct clk *clkp;354354 struct resource *mem, *irq;355355 ide_hwif_t *hwif;356356- void __iomem *base;357357- int pribase, i;356356+ unsigned long base;357357+ int i;358358 hw_regs_t hw;359359 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };360360···374374 printk(KERN_ERR "failed to get memory region resource\n");375375 return -ENODEV;376376 }377377+377378 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);378379 if (irq == NULL) {379380 printk(KERN_ERR "failed to get IRQ resource\n");380381 return -ENODEV;381382 }382383383383- base = (void *)mem->start;384384+ if (request_mem_region(mem->start, mem->end - mem->start + 1,385385+ "palm_bk3710") == NULL) {386386+ printk(KERN_ERR "failed to request memory region\n");387387+ return -EBUSY;388388+ }389389+390390+ base = IO_ADDRESS(mem->start);384391385392 /* Configure the Palm Chip controller */386386- palm_bk3710_chipinit(base);393393+ palm_bk3710_chipinit((void __iomem *)base);387394388388- pribase = mem->start + IDE_PALM_ATA_PRI_REG_OFFSET;389395 for (i = 0; i < IDE_NR_PORTS - 2; i++)390390- hw.io_ports_array[i] = pribase + i;391391- hw.io_ports.ctl_addr = mem->start +392392- IDE_PALM_ATA_PRI_CTL_OFFSET;396396+ hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;397397+ hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;393398 hw.irq = irq->start;394399 hw.chipset = ide_palm3710;395400···439434440435module_init(palm_bk3710_init);441436MODULE_LICENSE("GPL");442442-
+3-3
drivers/ide/ide-taskfile.c
···225225 u8 stat;226226227227 /*228228- * Last sector was transfered, wait until drive is ready.229229- * This can take up to 10 usec, but we will wait max 1 ms.228228+ * Last sector was transfered, wait until device is ready. This can229229+ * take up to 6 ms on some ATAPI devices, so we will wait max 10 ms.230230 */231231- for (retries = 0; retries < 100; retries++) {231231+ for (retries = 0; retries < 1000; retries++) {232232 stat = ide_read_status(drive);233233234234 if (stat & BUSY_STAT)
···44source "drivers/firewire/Kconfig"5566config IEEE139477- tristate "IEEE 1394 (FireWire) support"77+ tristate "Stable FireWire stack"88 depends on PCI || BROKEN99 help1010 IEEE 1394 describes a high performance serial bus, which is also···1919 To compile this driver as a module, say M here: the2020 module will be called ieee1394.21212222-comment "Subsystem Options"2323- depends on IEEE13942424-2525-config IEEE1394_VERBOSEDEBUG2626- bool "Excessive debugging output"2727- depends on IEEE13942222+config IEEE1394_OHCI13942323+ tristate "OHCI-1394 controllers"2424+ depends on PCI && IEEE13942825 help2929- If you say Y here, you will get very verbose debugging logs from3030- the subsystem which includes a dump of the header of every sent3131- and received packet. This can amount to a high amount of data3232- collected in a very short time which is usually also saved to3333- disk by the system logging daemons.2626+ Enable this driver if you have an IEEE 1394 controller based on the2727+ OHCI-1394 specification. The current driver is only tested with OHCI2828+ chipsets made by Texas Instruments and NEC. Most third-party vendors2929+ use one of these chipsets. It should work with any OHCI-13943030+ compliant card, however.34313535- Say Y if you really want or need the debugging output, everyone3636- else says N.3232+ To compile this driver as a module, say M here: the3333+ module will be called ohci1394.37343838-comment "Controllers"3939- depends on IEEE13943535+ NOTE:40364141-comment "Texas Instruments PCILynx requires I2C"3737+ You should only build either ohci1394 or the new firewire-ohci driver,3838+ but not both. If you nevertheless want to install both, you should3939+ configure them only as modules and blacklist the driver(s) which you4040+ don't want to have auto-loaded. Add either4141+4242+ blacklist firewire-ohci4343+ or4444+ blacklist ohci13944545+ blacklist video13944646+ blacklist dv13944747+4848+ to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf4949+ depending on your distribution. The latter two modules should be5050+ blacklisted together with ohci1394 because they depend on ohci1394.5151+5252+ If you have an old modprobe which doesn't implement the blacklist5353+ directive, use "install modulename /bin/true" for the modules to be5454+ blacklisted.5555+5656+comment "PCILynx controller requires I2C"4257 depends on IEEE1394 && I2C=n43584459config IEEE1394_PCILYNX4545- tristate "Texas Instruments PCILynx support"6060+ tristate "PCILynx controller"4661 depends on PCI && IEEE1394 && I2C4762 select I2C_ALGOBIT4863 help···7257 PowerMacs G3 B&W contain the PCILynx controller. Therefore7358 almost everybody can say N here.74597575-config IEEE1394_OHCI13947676- tristate "OHCI-1394 support"7777- depends on PCI && IEEE13947878- help7979- Enable this driver if you have an IEEE 1394 controller based on the8080- OHCI-1394 specification. The current driver is only tested with OHCI8181- chipsets made by Texas Instruments and NEC. Most third-party vendors8282- use one of these chipsets. It should work with any OHCI-13948383- compliant card, however.8484-8585- To compile this driver as a module, say M here: the8686- module will be called ohci1394.8787-8888-comment "Protocols"8989- depends on IEEE13949090-9191-config IEEE1394_VIDEO13949292- tristate "OHCI-1394 Video support"9393- depends on IEEE1394 && IEEE1394_OHCI13949494- help9595- This option enables video device usage for OHCI-1394 cards. Enable9696- this option only if you have an IEEE 1394 video device connected to9797- an OHCI-1394 card.9898-9960comment "SBP-2 support (for storage devices) requires SCSI"10061 depends on IEEE1394 && SCSI=n1016210263config IEEE1394_SBP2103103- tristate "SBP-2 support (Harddisks etc.)"6464+ tristate "Storage devices (SBP-2 protocol)"10465 depends on IEEE1394 && SCSI10566 help10667 This option enables you to use SBP-2 devices connected to an IEEE···118127119128 The module is called eth1394 although it does not emulate Ethernet.120129130130+config IEEE1394_RAWIO131131+ tristate "raw1394 userspace interface"132132+ depends on IEEE1394133133+ help134134+ This option adds support for the raw1394 device file which enables135135+ direct communication of user programs with IEEE 1394 devices136136+ (isochronous and asynchronous). Almost all application programs137137+ which access FireWire require this option.138138+139139+ To compile this driver as a module, say M here: the module will be140140+ called raw1394.141141+142142+config IEEE1394_VIDEO1394143143+ tristate "video1394 userspace interface"144144+ depends on IEEE1394 && IEEE1394_OHCI1394145145+ help146146+ This option adds support for the video1394 device files which enable147147+ isochronous communication of user programs with IEEE 1394 devices,148148+ especially video capture or export. This interface is used by all149149+ libdc1394 based programs and by several other programs, in addition to150150+ the raw1394 interface. It is generally not required for DV capture.151151+152152+ To compile this driver as a module, say M here: the module will be153153+ called video1394.154154+121155config IEEE1394_DV1394122122- tristate "OHCI-DV I/O support (deprecated)"156156+ tristate "dv1394 userspace interface (deprecated)"123157 depends on IEEE1394 && IEEE1394_OHCI1394124158 help125159 The dv1394 driver is unsupported and may be removed from Linux in a126160 future release. Its functionality is now provided by raw1394 together127161 with libraries such as libiec61883.128162129129-config IEEE1394_RAWIO130130- tristate "Raw IEEE1394 I/O support"163163+config IEEE1394_VERBOSEDEBUG164164+ bool "Excessive debugging output"131165 depends on IEEE1394132166 help133133- This option adds support for the raw1394 device file which enables134134- direct communication of user programs with the IEEE 1394 bus and thus135135- with the attached peripherals. Almost all application programs which136136- access FireWire require this option.167167+ If you say Y here, you will get very verbose debugging logs from the168168+ ieee1394 drivers, including sent and received packet headers. This169169+ will quickly result in large amounts of data sent to the system log.137170138138- To compile this driver as a module, say M here: the module will be139139- called raw1394.171171+ Say Y if you really need the debugging output. Everyone else says N.140172141173endmenu
···855855 */856856857857 /* Update group descriptor block for new group */858858- gdp = (struct ext4_group_desc *)primary->b_data + gdb_off;858858+ gdp = (struct ext4_group_desc *)((char *)primary->b_data +859859+ gdb_off * EXT4_DESC_SIZE(sb));859860860861 ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */861862 ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */
+1-1
include/asm-alpha/core_mcpcia.h
···261261 }262262#endif263263264264-static inline int __mcpcia_is_mmio(unsigned long addr)264264+extern inline int __mcpcia_is_mmio(unsigned long addr)265265{266266 return (addr & 0x80000000UL) == 0;267267}
+7-7
include/asm-alpha/core_t2.h
···356356#define vip volatile int *357357#define vuip volatile unsigned int *358358359359-static inline u8 t2_inb(unsigned long addr)359359+extern inline u8 t2_inb(unsigned long addr)360360{361361 long result = *(vip) ((addr << 5) + T2_IO + 0x00);362362 return __kernel_extbl(result, addr & 3);363363}364364365365-static inline void t2_outb(u8 b, unsigned long addr)365365+extern inline void t2_outb(u8 b, unsigned long addr)366366{367367 unsigned long w;368368···371371 mb();372372}373373374374-static inline u16 t2_inw(unsigned long addr)374374+extern inline u16 t2_inw(unsigned long addr)375375{376376 long result = *(vip) ((addr << 5) + T2_IO + 0x08);377377 return __kernel_extwl(result, addr & 3);378378}379379380380-static inline void t2_outw(u16 b, unsigned long addr)380380+extern inline void t2_outw(u16 b, unsigned long addr)381381{382382 unsigned long w;383383···386386 mb();387387}388388389389-static inline u32 t2_inl(unsigned long addr)389389+extern inline u32 t2_inl(unsigned long addr)390390{391391 return *(vuip) ((addr << 5) + T2_IO + 0x18);392392}393393394394-static inline void t2_outl(u32 b, unsigned long addr)394394+extern inline void t2_outl(u32 b, unsigned long addr)395395{396396 *(vuip) ((addr << 5) + T2_IO + 0x18) = b;397397 mb();···435435 set_hae(msb); \436436}437437438438-static DEFINE_SPINLOCK(t2_hae_lock);438438+extern spinlock_t t2_hae_lock;439439440440/*441441 * NOTE: take T2_DENSE_MEM off in each readX/writeX routine, since
+3-3
include/asm-alpha/io.h
···3535 * register not being up-to-date with respect to the hardware3636 * value.3737 */3838-static inline void __set_hae(unsigned long new_hae)3838+extern inline void __set_hae(unsigned long new_hae)3939{4040 unsigned long flags;4141 local_irq_save(flags);···4949 local_irq_restore(flags);5050}51515252-static inline void set_hae(unsigned long new_hae)5252+extern inline void set_hae(unsigned long new_hae)5353{5454 if (new_hae != alpha_mv.hae_cache)5555 __set_hae(new_hae);···176176#undef REMAP1177177#undef REMAP2178178179179-static inline void __iomem *generic_ioportmap(unsigned long a)179179+extern inline void __iomem *generic_ioportmap(unsigned long a)180180{181181 return alpha_mv.mv_ioportmap(a);182182}
···11#ifndef __ALPHA_PERCPU_H22#define __ALPHA_PERCPU_H33+#include <linux/compiler.h>44+#include <linux/threads.h>3544-#include <asm-generic/percpu.h>66+/*77+ * Determine the real variable name from the name visible in the88+ * kernel sources.99+ */1010+#define per_cpu_var(var) per_cpu__##var1111+1212+#ifdef CONFIG_SMP1313+1414+/*1515+ * per_cpu_offset() is the offset that has to be added to a1616+ * percpu variable to get to the instance for a certain processor.1717+ */1818+extern unsigned long __per_cpu_offset[NR_CPUS];1919+2020+#define per_cpu_offset(x) (__per_cpu_offset[x])2121+2222+#define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())2323+#ifdef CONFIG_DEBUG_PREEMPT2424+#define my_cpu_offset per_cpu_offset(smp_processor_id())2525+#else2626+#define my_cpu_offset __my_cpu_offset2727+#endif2828+2929+#ifndef MODULE3030+#define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset))3131+#define PER_CPU_ATTRIBUTES3232+#else3333+/*3434+ * To calculate addresses of locally defined variables, GCC uses 32-bit3535+ * displacement from the GP. Which doesn't work for per cpu variables in3636+ * modules, as an offset to the kernel per cpu area is way above 4G.3737+ *3838+ * This forces allocation of a GOT entry for per cpu variable using3939+ * ldq instruction with a 'literal' relocation.4040+ */4141+#define SHIFT_PERCPU_PTR(var, offset) ({ \4242+ extern int simple_identifier_##var(void); \4343+ unsigned long __ptr, tmp_gp; \4444+ asm ( "br %1, 1f \n\4545+ 1: ldgp %1, 0(%1) \n\4646+ ldq %0, per_cpu__" #var"(%1)\t!literal" \4747+ : "=&r"(__ptr), "=&r"(tmp_gp)); \4848+ (typeof(&per_cpu_var(var)))(__ptr + (offset)); })4949+5050+#define PER_CPU_ATTRIBUTES __used5151+5252+#endif /* MODULE */5353+5454+/*5555+ * A percpu variable may point to a discarded regions. The following are5656+ * established ways to produce a usable pointer from the percpu variable5757+ * offset.5858+ */5959+#define per_cpu(var, cpu) \6060+ (*SHIFT_PERCPU_PTR(var, per_cpu_offset(cpu)))6161+#define __get_cpu_var(var) \6262+ (*SHIFT_PERCPU_PTR(var, my_cpu_offset))6363+#define __raw_get_cpu_var(var) \6464+ (*SHIFT_PERCPU_PTR(var, __my_cpu_offset))6565+6666+#else /* ! SMP */6767+6868+#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu_var(var)))6969+#define __get_cpu_var(var) per_cpu_var(var)7070+#define __raw_get_cpu_var(var) per_cpu_var(var)7171+7272+#endif /* SMP */7373+7474+#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu_var(name)575676#endif /* __ALPHA_PERCPU_H */
···1414#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)15151616#ifdef CONFIG_X86_PAE1717-#define __PHYSICAL_MASK_SHIFT 361717+/* 44=32+12, the limit we can fit into an unsigned long pfn */1818+#define __PHYSICAL_MASK_SHIFT 441819#define __VIRTUAL_MASK_SHIFT 321920#define PAGETABLE_LEVELS 32021
+1-1
include/linux/bootmem.h
···9494 unsigned long freepfn,9595 unsigned long startpfn,9696 unsigned long endpfn);9797-extern void reserve_bootmem_node(pg_data_t *pgdat,9797+extern int reserve_bootmem_node(pg_data_t *pgdat,9898 unsigned long physaddr,9999 unsigned long size,100100 int flags);
···9595#ifdef CONFIG_NET_NS9696extern void __put_net(struct net *net);97979898+static inline int net_alive(struct net *net)9999+{100100+ return net && atomic_read(&net->count);101101+}102102+98103static inline struct net *get_net(struct net *net)99104{100105 atomic_inc(&net->count);···130125 return net1 == net2;131126}132127#else128128+129129+static inline int net_alive(struct net *net)130130+{131131+ return 1;132132+}133133+133134static inline struct net *get_net(struct net *net)134135{135136 return net;
+2-2
kernel/cpuset.c
···1037103710381038static int update_relax_domain_level(struct cpuset *cs, s64 val)10391039{10401040- if ((int)val < 0)10411041- val = -1;10401040+ if (val < -1 || val >= SD_LV_MAX)10411041+ return -EINVAL;1042104210431043 if (val != cs->relax_domain_level) {10441044 cs->relax_domain_level = val;
-2
kernel/rcupreempt.c
···217217}218218EXPORT_SYMBOL_GPL(rcu_batches_completed);219219220220-EXPORT_SYMBOL_GPL(rcu_batches_completed_bh);221221-222220void __rcu_read_lock(void)223221{224222 int idx;
+6-1
kernel/sched.c
···6877687768786878static int __init setup_relax_domain_level(char *str)68796879{68806880- default_relax_domain_level = simple_strtoul(str, NULL, 0);68806880+ unsigned long val;68816881+68826882+ val = simple_strtoul(str, NULL, 0);68836883+ if (val < SD_LV_MAX)68846884+ default_relax_domain_level = val;68856885+68816886 return 1;68826887}68836888__setup("relax_domain_level=", setup_relax_domain_level);
+10-5
kernel/softlockup.c
···4949 return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */5050}51515252-void touch_softlockup_watchdog(void)5252+static void __touch_softlockup_watchdog(void)5353{5454 int this_cpu = raw_smp_processor_id();55555656 __raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu);5757+}5858+5959+void touch_softlockup_watchdog(void)6060+{6161+ __raw_get_cpu_var(touch_timestamp) = 0;5762}5863EXPORT_SYMBOL(touch_softlockup_watchdog);5964···8580 unsigned long now;86818782 if (touch_timestamp == 0) {8888- touch_softlockup_watchdog();8383+ __touch_softlockup_watchdog();8984 return;9085 }9186···1009510196 /* do not print during early bootup: */10297 if (unlikely(system_state != SYSTEM_RUNNING)) {103103- touch_softlockup_watchdog();9898+ __touch_softlockup_watchdog();10499 return;105100 }106101···219214 sched_setscheduler(current, SCHED_FIFO, ¶m);220215221216 /* initialize timestamp */222222- touch_softlockup_watchdog();217217+ __touch_softlockup_watchdog();223218224219 set_current_state(TASK_INTERRUPTIBLE);225220 /*···228223 * debug-printout triggers in softlockup_tick().229224 */230225 while (!kthread_should_stop()) {231231- touch_softlockup_watchdog();226226+ __touch_softlockup_watchdog();232227 schedule();233228234229 if (kthread_should_stop())
+4-2
mm/bootmem.c
···442442 return init_bootmem_core(pgdat, freepfn, startpfn, endpfn);443443}444444445445-void __init reserve_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,445445+int __init reserve_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,446446 unsigned long size, int flags)447447{448448 int ret;449449450450 ret = can_reserve_bootmem_core(pgdat->bdata, physaddr, size, flags);451451 if (ret < 0)452452- return;452452+ return -ENOMEM;453453 reserve_bootmem_core(pgdat->bdata, physaddr, size, flags);454454+455455+ return 0;454456}455457456458void __init free_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,
+13-4
mm/memory.c
···999999 goto no_page_table;1000100010011001 ptep = pte_offset_map_lock(mm, pmd, address, &ptl);10021002- if (!ptep)10031003- goto out;1004100210051003 pte = *ptep;10061004 if (!pte_present(pte))10071007- goto unlock;10051005+ goto no_page;10081006 if ((flags & FOLL_WRITE) && !pte_write(pte))10091007 goto unlock;10101008 page = vm_normal_page(vma, address, pte);10111009 if (unlikely(!page))10121012- goto unlock;10101010+ goto bad_page;1013101110141012 if (flags & FOLL_GET)10151013 get_page(page);···10221024out:10231025 return page;1024102610271027+bad_page:10281028+ pte_unmap_unlock(ptep, ptl);10291029+ return ERR_PTR(-EFAULT);10301030+10311031+no_page:10321032+ pte_unmap_unlock(ptep, ptl);10331033+ if (!pte_none(pte))10341034+ return page;10351035+ /* Fall through to ZERO_PAGE handling */10251036no_page_table:10261037 /*10271038 * When core dumping an enormous anonymous area that nobody···1166115911671160 cond_resched();11681161 }11621162+ if (IS_ERR(page))11631163+ return i ? i : PTR_ERR(page);11691164 if (pages) {11701165 pages[i] = page;11711166
+10
mm/migrate.c
···865865 goto set_status;866866867867 page = follow_page(vma, pp->addr, FOLL_GET);868868+869869+ err = PTR_ERR(page);870870+ if (IS_ERR(page))871871+ goto set_status;872872+868873 err = -ENOENT;869874 if (!page)870875 goto set_status;···933928 goto set_status;934929935930 page = follow_page(vma, pm->addr, 0);931931+932932+ err = PTR_ERR(page);933933+ if (IS_ERR(page))934934+ goto set_status;935935+936936 err = -ENOENT;937937 /* Use PageReserved to check for zero page */938938 if (!page || PageReserved(page))
+4-1
mm/slab.c
···3263326332643264 if (cpuset_zone_allowed_hardwall(zone, flags) &&32653265 cache->nodelists[nid] &&32663266- cache->nodelists[nid]->free_objects)32663266+ cache->nodelists[nid]->free_objects) {32673267 obj = ____cache_alloc_node(cache,32683268 flags | GFP_THISNODE, nid);32693269+ if (obj)32703270+ break;32713271+ }32693272 }3270327332713274 if (!obj) {
+4
net/core/dev.c
···2077207720782078 rcu_read_lock();2079207920802080+ /* Don't receive packets in an exiting network namespace */20812081+ if (!net_alive(dev_net(skb->dev)))20822082+ goto out;20832083+20802084#ifdef CONFIG_NET_CLS_ACT20812085 if (skb->tc_verd & TC_NCLS) {20822086 skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
+3
net/core/net_namespace.c
···140140 struct pernet_operations *ops;141141 struct net *net;142142143143+ /* Be very certain incoming network packets will not find us */144144+ rcu_barrier();145145+143146 net = container_of(work, struct net, work);144147145148 mutex_lock(&net_mutex);
+9
net/ipv6/ip6_input.c
···102102 if (hdr->version != 6)103103 goto err;104104105105+ /*106106+ * RFC4291 2.5.3107107+ * A packet received on an interface with a destination address108108+ * of loopback must be dropped.109109+ */110110+ if (!(dev->flags & IFF_LOOPBACK) &&111111+ ipv6_addr_loopback(&hdr->daddr))112112+ goto err;113113+105114 skb->transport_header = skb->network_header + sizeof(*hdr);106115 IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);107116
+7-4
net/ipv6/ipv6_sockglue.c
···345345 case IPV6_DSTOPTS:346346 {347347 struct ipv6_txoptions *opt;348348+349349+ /* remove any sticky options header with a zero option350350+ * length, per RFC3542.351351+ */348352 if (optlen == 0)349353 optval = NULL;354354+ else if (optlen < sizeof(struct ipv6_opt_hdr) ||355355+ optlen & 0x7 || optlen > 8 * 255)356356+ goto e_inval;350357351358 /* hop-by-hop / destination options are privileged option */352359 retv = -EPERM;353360 if (optname != IPV6_RTHDR && !capable(CAP_NET_RAW))354361 break;355355-356356- if (optlen < sizeof(struct ipv6_opt_hdr) ||357357- optlen & 0x7 || optlen > 8 * 255)358358- goto e_inval;359362360363 opt = ipv6_renew_options(sk, np->opt, optname,361364 (struct ipv6_opt_hdr __user *)optval,
+8-1
net/mac80211/tx.c
···11321132 ieee80211_tx_handler *handler;11331133 struct ieee80211_tx_data tx;11341134 ieee80211_tx_result res = TX_DROP, res_prepare;11351135- int ret, i;11351135+ int ret, i, retries = 0;1136113611371137 WARN_ON(__ieee80211_queue_pending(local, control->queue));11381138···12161216 if (!__ieee80211_queue_stopped(local, control->queue)) {12171217 clear_bit(IEEE80211_LINK_STATE_PENDING,12181218 &local->state[control->queue]);12191219+ retries++;12201220+ /*12211221+ * Driver bug, it's rejecting packets but12221222+ * not stopping queues.12231223+ */12241224+ if (WARN_ON_ONCE(retries > 5))12251225+ goto drop;12191226 goto retry;12201227 }12211228 memcpy(&store->control, control,
+3-1
net/sctp/socket.c
···44014401 if (copy_from_user(&getaddrs, optval, len))44024402 return -EFAULT;4403440344044404- if (getaddrs.addr_num <= 0) return -EINVAL;44044404+ if (getaddrs.addr_num <= 0 ||44054405+ getaddrs.addr_num >= (INT_MAX / sizeof(union sctp_addr)))44064406+ return -EINVAL;44054407 /*44064408 * For UDP-style sockets, id specifies the association to query.44074409 * If the id field is set to the value '0' then the locally bound