Summary of changes from v2.6.7 to v2.6.8 ============================================ Kconfig typo fix from Jochen Voss [ACPI] PCI IRQ update (Bjorn Helgaas) http://bugme.osdl.org/show_bug.cgi?id=2574 mp_parse_prt() and iosapic_parse_prt() used to allocate all IRQs, whether devices needed them or not. Some devices failed because the this method enabled unused PCI Interrupt Link Devices, which disrupted active link devices. Now the PRT knowledge is pulled out of the arch code and the IRQ allocation and IO-APIC programming is done by pci_enable_device(). This is also a step toward allowing the addition of new root bridges and PRTs at run-time. The architecture supplies unsigned int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) which is called by acpi_pci_irq_enable(). ACPI supplies all the information from the PRT, and the arch sets up the routing and returns the IRQ it allocated. [PATCH] Nuke HAS_IP_COPYSUM for net drivers Entirely untested, but Obviously Correct(TM). HAS_IP_COPYSUM has been utterly meaningless for a long time. [NETDRV #1] Ifdef builtin-only probe in ISA/MCA drivers Here is the bit which conditionalises the builtin-only probe functions. [NETDRV #2] Use driver-specific name for resources Here is the next part which uses a driver-specific name instead of dev->name for resource allocations prior to netdev registration. It also changes printks that are in direct response to errors in resource allocations. [PATCH] move scsi debugging helpers and give them sane names - give the constants.c prettyprinting helpers proper scsi_ prefixed names (and keep compat versions for 2.6.x) - move them to include/scsi/scsi_dbg.h so now really only legacy stuff is left in drivers/scsi/scsi.h Signed-off-by: James Bottomley SCSI: slave_detach -> slave_destory comment fix From: Guennadi Liakhovetski Signed-off-by: James Bottomley Convert tmcscsim to new probing interfaces From: Guennadi Liakhovetski Update the driver to use the new pci, scsi and module interfaces. Modified with feedback from hch Signed-off-by: James Bottomley [PATCH] ipr scsi busy io hang Signed-off-by: James Bottomley [PATCH] ipr duplicate ioa reset fix This patch closes a window where if a device had a cancel all outstanding as a result of a check condition and the adapter was reset for some reason, a request sense would still be issued, which would end up timing out and issuing an additional adapter reset. It could also result in a leak of command blocks, depending on when it timed out. Signed-off-by: James Bottomley [PATCH] ipr driver version 2.0.8 Bump driver version Signed-off-by: James Bottomley [PATCH] USB / SCSI multi-card reader whitelist updates. For more info see Red Hat bugzilla entries #85851 and #124048 Signed-off-by: James Bottomley MPT Fusion driver 3.01.07 update From: "Moore, Eric Dean" Clean up backword compatibility with 2.4 kernel and older. Patch provided by Christoph Hellwig Signed-off-by: James Bottomley [PATCH] SCSI: remove extra queue unplug calls blk_insert_request will do the right thing and either unplug the queue or call the request_fn, so users of scsi_do_req do not need to call generic_unplug_device themselves. The attached patch just removes that call from scsi_lib.c and the sg driver after they do a scsi_do_req. Signed-off-by: James Bottomley [PATCH] qla1280.c warning fix. drivers/scsi/qla1280.c:3124: warning: `qla1280_64bit_start_scsi' defined but not used Signed-off-by: James Bottomley [PATCH] Stop megaraid trashing other i960 based devices From: Alan Cox In 2.4 the megaraid driver was careful to avoid stepping on wrong devices. Specifically the megaraid3 series devices used an intel pci ID (8086:1960) which is the generic i960 identifier not their own. The code to do this in 2.4 worked for almost all cases, but even that code has mysteriously vanished in 2.6 meaning the megaraid driver trashes stuff like promise i2o cards and compaq management cards. The following patch puts back the 2.4 stuff + one additional check so that the driver isn't quite as rude as it was before. Signed-off-by: James Bottomley [PATCH] SCSI: more whitelist updates for usb card readers ATech 9-in-1 card reader. Cbox 3 5 1/2 bay with 6in1 card reader Signed-off-by: James Bottomley [PATCH] SCSI: Correct BELKIN card reader whitelist entry. Should be FORCELUN not SPARSELUN ? Signed-off-by: James Bottomley [PATCH] tmscsim: Update version after "new API" The "API-update" patch, just approved by Christoph deserves a new version. Signed-off-by: James Bottomley [PATCH] tmscsim: remove DeviceCnt On Wed, 26 May 2004, Christoph Hellwig wrote: > On Sun, May 23, 2004 at 11:19:58PM +0200, Guennadi Liakhovetski wrote: > > > > Whereas, DCBCnt is incremented on slave_alloc, decremented on > > slave_destroy and used in a couple more places. So, is it safe to assume > > that DeviceCnt is redundant and remove it in a next patch?... Then it > > might be already safe to move scan_devices as you suggest? > > Looks like a way to go. I'm not sure what scan_device is supposed to > do as I already wrote, but from looking at when it's set/cleared I'm > pretty sure it tries to indicate whethere we're currently scanning for > devices. And useing slave_alloc/slave_configure is a much safer way to > find that out then guessing from the commands sent. So, here's the first one - remove DeviceCnt. Signed-off-by: James Bottomley [PATCH] unchecked kmalloc in sr_audio_ioctl() From: "Luiz Fernando N. Capitulino" Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] tmscsim: convert to slave_... On Wed, 26 May 2004, Christoph Hellwig wrote: > Looks like a way to go. I'm not sure what scan_device is supposed to > do as I already wrote, but from looking at when it's set/cleared I'm > pretty sure it tries to indicate whethere we're currently scanning for > devices. And useing slave_alloc/slave_configure is a much safer way to > find that out then guessing from the commands sent. Attached is a patch, that moves scan_device to slave_alloc/_configure/_destroy, as you suggested (to be precise, as I understood your suggestion:-)) Signed-off-by: James Bottomley [PATCH] ipr operational timeout oops This patch fixes an oops that can occur if an adapter times out coming operational. Signed-off-by: James Bottomley [PATCH] get I2O working with Adaptec's zero channel this patch now gets the mentioned controllers working with the I2O subsystem. It tested on two different system with ASR-2005S and ASR-2010S and reported as working. It's also tested on i686 and x86_64 with already working I2O controllers without a problem. Signed-off-by: James Bottomley [PATCH] remove calls of obsolete scsi APIs in i2o_scsi From: Markus Lidel Here is a patch from Christoph Hellwig, which removes calls of the obsolete scsi API in i2o_scsi. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] Nuke HAS_IP_COPYSUM HAS_IP_COPYSUM has been utterly meaningless for a long time. Signed-off-by: Roger Luethi [PATCH] Nuke CanHaveMII and related code All Rhines can have a MII. Signed-off-by: Roger Luethi [PATCH] Nuke HasESIPhy and related code This has been dead code forever. Signed-off-by: Roger Luethi [PATCH] Nuke default_port, references to if_port, medialock As is, code doesn't do anything useful. Signed-off-by: Roger Luethi [PATCH] Nuke all pci_flags All this code together can be replaced with a single #ifdef USE_MMIO. Signed-off-by: Roger Luethi [PATCH] Return codes for rhine_init_one Use return codes in rhine_init_one instead of -ENODEV for all errors. Signed-off-by: Roger Luethi [PATCH] Rewrite special-casing Use PCI revision to determine special cases. One bit field replaces a bunch of data structures holding special case information. Replace chip_id, drv_flags in rhine_private with quirks Remove enum rhine_chips, struct rhine_chip_info (and array), enum chip_capability_flags Add enum rhine_revs, enum rhine_quirks (some values in preparation for subsequent changes) wait_for_reset() and enable_mmio() now use quirks instead of chip_id Remove model names from ident strings for now. Signed-off-by: Roger Luethi [PATCH] Add rhine_power_init(): get power regs into sane state Add rhine_power_init(): get power regs into sane state. Move the respective code out of rhine_init_one. Add code for two additional patterns (Rhine III). Signed-off-by: Roger Luethi [PATCH] USB: unusual_devs.h update On Mon, 3 May 2004, zcat wrote: > I am trying to get my camera going as a webcam (concord EyeQ Duo in PC > mode, not HDD mode) with the 2.6.4 kernel using the se401 driver > (compiled in).. It logged the following message, which doesn't mean much > to me so I have no idea if it's useful information or not; > > May 3 21:08:11 mrsnorris kernel: usb 1-1: new full speed USB device > using address 2 > May 3 21:08:16 mrsnorris kernel: usb 1-1: control timeout on ep0out > May 3 21:08:16 mrsnorris kernel: usb-storage: This device > (0595,4343,0100 S 00 P 00) has an unneeded Protocol entry in unusual_devs.h > May 3 21:08:16 mrsnorris kernel: Please send a copy of this message > to This fixes the "unneeded Protocol entry" message. We never solved the control timeout problem. Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix disconnect bug in dummy_hcd Greg: This patch fixes a bug in disconnect handling for the dummy_hcd driver. After a disconnect the driver would still accept URBs for endpoint 0, leading to an oops. It also improves the ad-hoc technique used by the driver to track its gadget's struct usb_device and fixes the way port-power changes are handled. Please apply. Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] Add support for ISD-300 controller This patch adds support in unusual_devs.h for the ISD-300 USB controller used in CD-ROM enclosures. With it, since 2.6.0 it allowed me to move gigabytes of data and worked without a hitch. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pxa/rndis device descriptor This fixes a problem that all pxa2xx_udc g_ether devices would run into. They'd give the wrong descriptors, like: > --------msg1- usbview ---------- > Device Descriptor: bcdUSB: 0x0200 > bDeviceClass: 0xFF > bDeviceSubClass: 0x00 > bDeviceProtocol: 0x00 > bMaxPacketSize0: 0x10 (16) Windows doesn't like RNDIS-supporting devices to point out that they're really vendor-specific. So this patch makes sure they don't. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb retry cleanups This patch stops changing the reported fault mode in cases where retries of GET_DESCRIPTOR fail because the device just doesn't have such a descriptor. Plus, it stops printing messages when retrying. It also reduces the number of retries; the first retry seems to resolve most of these firmware problems. Signed-Off-By: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: proper evaluation of the union descriptor for CDC ACM this changes acm_probe() to using the proper union descriptor. It contains the workaround David suggested. Please apply. - fix probing to use cdc union descriptor Signed-off-by: Oliver Neukum Signed-off-by: Vojtech Pavlik Signed-off-by: Greg Kroah-Hartman [PATCH] USB: error handling of open of acm driver this adds error handling to the open method of the cdc acm driver. The change set is relative to my last patch rewriting probe. - add error handling to open method Signed-off-by: Oliver Neukum Signed-off-by: Vojtech Pavlik Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix racy access to urb->status in cdc acm driver Hi, fix access to urb->status by introduction of an explicit flag for finished data transfer. - fix racy access to urb->status Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix race between disconnect and write of acm driver acm uses a workqueue to defer part of a write operation. In case of disconnect this work must be waited for. - fix race between write and disconnect Signed-off-by: Oliver Neukum Signed-off-by: Vojtech Pavlik Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Minor cleanups for hub driver Greg: This patch takes care of some small miscellaneous items in hub.c: Move the definition of CONFIG to the right place; Print the proper value for submission status in the error log; Remove an unused list of all hubs; Remove some unneeded braces; Kill an accidentally-resurrected comment. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Move usb_new_device() et al. into hub.c This patch moves usb_new_device(), usb_disconnect(), usb_choose_address(), and usb_release_address() from usb.c to hub.c. As a side benefit, choose_address() and release_address() can now become static. The other two can't, because they have to be exported for use by HCD's when registering/unregistering root hubs. Some other features of the patch: The usb_snddefctrl() and usb_rcvdefctrl() macros have been removed, since only one of them was used and only in one spot. The comment about configuration choice needing to interact with hub power budgeting has been moved in accordance with David's wish. usb_new_device() checks to make sure a configuration could be chosen and logs a warning if no choice was made. Following Linus's preference, the #ifdef preprocessor stuff has been removed from around the calls the show_string routine. It is now defined as a non-inline routine when debugging is enabled and as an inline no-op otherwise (the compiler will optimize away the useless tests). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [Driver Model] Consolidate attribute definition macros - Create __ATTR(), __ATTR_RO(), and __ATTR_NULL macros to help define attributes in a neat, short-hand form. - Apply these macros to the attribute definition in include/linux/device.h - Note: These can be used to more cleanly define attributes in your own code. e.g: static struct device_attribute attrs[] = { __ATTR_RO(foo), __ATTR_RO(bar), __ATTR(baz,0666,baz_show,baz_store), __ATTR_NULL, }; ...etc. Signed-off-by: Greg Kroah-Hartman [PATCH] ata_check_bmdma Move hand-coded BMDMA status check into separate function. [ACPI] fix !CONFIG_PCI build (Bjorn Helgaas) [Driver Model] Fix up silly scsi usage of DEVICE_ATTR() macros. - Hey, just because the macro incorrectly included a ';' doesn't mean one shouldn't add one on their own.. (Or at least be consistent.) Signed-off-by: Greg Kroah-Hartman Add basic sysfs support for raw devices This is needed by people who use udev and want raw devices. SuSE is shipping with this patch. Signed-off-by: Greg Kroah-Hartman [sysfs] Add attr_name() macro - Returns the name of an embedded attribute in a higher-level attribute. [Driver Model] Add default attributes for classes class devices. - add struct class::class_attrs, which is designed to point to an array of class_attributes that are added when the class is registered and removed when the class is unregistered. This allows for more consolidated and cleaner definition of and management of attributes. - Add struct class::class_dev_attrs to do something similarly for class devices. Each class device that is registered with the class gets that set of attributes added for them, and subsequently removed when the device is unregistered. Each array depends on a terminating attribute with a NULL name. Hint: use the new __ATTR_NULL macro to terminate it. Driver Model: More cleanup of silly scsi use of the *ATTR macros... Signed-off-by: Greg Kroah-Hartman Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke Signed-off-by: Greg Kroah-Hartman Cset exclude: vojtech@suse.cz|ChangeSet|20040602201956|45549 Oops, this broke device removal pretty badly :( Signed-off-by: Greg Kroah-Hartman [PATCH] Add class support to cpuid.c This patch adds class support to arch/i386/kernel/cpuid.c. This enables udev support. I have tested on a 2-way SMP system and on a 2-way built as UP. Here are the results for the SMP: [hlinder@w-hlinder2 hlinder]$ tree /sys/class/cpuid /sys/class/cpuid |-- cpu0 | `-- dev `-- cpu1 `-- dev 2 directories, 2 files [hlinder@w-hlinder2 hlinder]$ more /sys/class/cpuid/cpu0/dev 203:0 [hlinder@w-hlinder2 hlinder]$ more /sys/class/cpuid/cpu1/dev 203:1 [hlinder@w-hlinder2 hlinder]$ And for the UP: [root@w-hlinder2 root]# tree /sys/class/cpuid /sys/class/cpuid `-- cpu0 `-- dev 1 directory, 1 file Signed-off-by: Greg Kroah-Hartman [PATCH] USB: 2.6-BK usb (printing) broken On Sat, 29 May 2004, Jens Axboe wrote: > > > Both 2.6.7-rc1 and BK current spit out a bunch of: > > > > > > drivers/usb/class/usblp.c: usblp1: nonzero read/write bulk status received: -2 > > > drivers/usb/class/usblp.c: usblp1: error -2 reading from printer > > > drivers/usb/class/usblp.c: usblp1: error -115 reading from printer > > > drivers/usb/class/usblp.c: usblp1: error -115 reading from printer > > > ... > > > > > > (about ~80 of that last line) but work for me. > Sorry wasn't quite clear - the above messages are with 2.6.7-rc1 and > current bk with your patch backed out. Current bk with the patch reports > only the timeouts I originally listed. Okay, I feel better. It looks like those errors you see are caused by a bug in the usblp driver. The patch below ought to help. [PATCH] USB: kyocera 7135 patch Here is a patch based on 2.6.7-rc2 that makes the Kyocera 7135 work. The Kyocera appears to have the same setup as the Trio. Its endpoints are laid out like this: > >>>type address > >>>usb bulk out: 0x01 > >>>usb interrupt in: 0x82 > >>>usb bulk out: 0x03 > >>>usb bulk in: 0x84 The last two are the ones used for the syncing communication. So the patch adds the ids for the kyocera and makes the treo_attach function handle the kyocera too. I also changed the comment; it appears there was an error in the original comment about the treo: Joe Nardelli wrote: > Actually, the comment isn't quite right for Treos either (oops). It > should read: > > ... > 1st bulk in endpoint to communicate with the 2nd bulk out endpoint > ... Signed-off-by: Greg Kroah-Hartman [Driver Model] Add default attributes for struct bus_type. - Similar to default attributes for struct class, this is an array of attributes, terminated with an attribute with a NULL name, that are added when the bus is registered, and removed when the bus is unregistered. USB: remove "devfs" message from kernel log for usb-serial driver No one uses devfs on 2.6 :) Signed-off-by: Greg Kroah-Hartman [Driver Model] Add default device attributes to struct bus_type. - Add struct bus_type::dev_attrs, which is an array of device attributes that are added to each device as they are registered. - Also make sure that we don't hang when removing bus attributes if adding one failed.. [PATCH] 1/2 3ware 9000 SATA-RAID driver v2.26.00.009 Here is an updated version v2.26.00.009 of the 3ware 9000 SATA-RAID driver. Changes in this release: - Convert driver to pci_driver format. - Remove proc interface, add sysfs attributes. - Return SCSI_MLQUEUE_HOST_BUSY when card status is busy. Future versions may include: - PAE fix - 80 column wrap fixes - Remove more prototypes by re-ordering functions. - sysfs queue depth adjustment instead of module_param Signed-off-by: James Bottomley [PATCH] 2/2 3ware 9000 SATA-RAID driver v2.26.00.009 Signed-off-by: James Bottomley [ACPI] acpi=force overrides blacklist pci=noacpi or acpi=noirq (Andi Kleen) [PATCH] fix dpt_i2o compilation for alpha and sparc This patch has been floating around for ages, got reminded of it again when looking at the debian kernel package. Signed-off-by: James Bottomley [PATCH] tmscsim: Store pDCB in device->hostdata On Sun, 23 May 2004, Christoph Hellwig wrote: > The other thing is that most calls to dc390_findDCB could probably be > replaced with stroing the pDCB in scsi_device->hostdata on slave_alloc, > but that could aswell be done in an incremental patch. Done in the attached patch. Tested as usual and a bit harder. Signed-off-by: James Bottomley [PATCH] remove sleep_on_timeout usage in megaraid megaraid does sleep_on_timeout on a stack waitq - use msleep instead. Signed-off-by: James Bottomley [PATCH] handle NO_SENSE in sd Original patch from http://marc.theaimsgroup.com/?l=linux-scsi&m=107428662718579&w=2 reworked to according to James' suggestion to handle NO_SENSE the same as RECOVERED_ERROR. Signed-off-by: James Bottomley [PATCH] fix check_region usage in eata_pio I'd love to rework the init sequence a bit more, but without beeing able to actually test the driver I'd rather stick to the bulletproof fix. Signed-off-by: James Bottomley [PATCH] fix sym53c416 check_region usage again, the init code could use some bigger rework, but let's stick to the minimal fix until we have some testers. Signed-off-by: James Bottomley [PATCH] remove obsolete API usage from dpt_i2o Signed-off-by: James Bottomley [PATCH] Advansys: Add basic highmem/DMA support On Wed, 2004-05-19 at 05:38, Herbert Xu wrote: > This is a resend of my patch that adds basic support for highmem > on i386 to the advansys driver. It has been tested in > http://bugs.debian.org/245238. > > The maintainer email address listed in the MAINTAINERS file bounced > so someone else will need to look at this. I converted your patch to use the DMA-API. This will be necessary to use the EISA advansys boards---Of course, EISA won't work properly until the entire driver is converted to the driverfs probing API, sigh, but I'll get around to that eventually. OK, and I couldn't resist getting rid of the stupid in_isr locking on the done function. Converted from original patch by Herbert Xu Signed-off-by: James Bottomley [PATCH] fix check_region usage in eata_pio Based on "eata_generic.h", this SCSI controller has 9 bytes of IO space, not 8, so update request_region(), release_region(), and n_io_port to use 9 instead of 8. diffstat:= drivers/scsi/eata_pio.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Signed-off-by: James Bottomley [PATCH] scsi_dev_flags must be __initdata, not __init __init is only for functions Signed-off-by: James Bottomley [PATCH] Lost 2.4 change for BusLogic info From: Alan Cox I think it might be a good thing if this was fixed to match 2.4 Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] scsi_transport_spi.c build fix Signed-off-by: James Bottomley [PATCH] SCSI: replace deprecated hosts.h file Signed-off-by: James Bottomley [PATCH] 3ware 9000 driver update From: "Adam Radford" This patch updates the 3w-9xxx driver in 2.6.7-rc2-mm1 to v2.26.02.000 to cleanup several things pointed out by Chris Hellwig / Jeff Garzik. Changes in this release: - Use descriptive defines for phase numbers. - Remove un-needed casts for TW_Command_Full - Rework eh_reset(), eh_abort() spinlocks. - Remove all mdelays, replace w/ schedule_timeout(). - Remove MODULE_PARAM cmds_per_lun, add sysfs device attribute 'queue_depth'. - Remove twa_slave_configure(). - Remove twa_info(). - Remove all bitfields from structures, add bitmask macros. - Remove twa_setup_irq() wrapper, call directly. - Remove un-needed prototypes. - Propogate return value of pci_enable_device(), pci_set_dma_mask(), ioremap(). - Use pci_request/free_regions(). - Add missing call to pci_disable_device() on probe failure. - Unregister character ioctl interface in twa_remove(). - Make some excessively lengthy lines < 80 columns. - Use pci_module_init() instead of pci_register_driver(). - Remove bogus TW_IN_INTR check, fix twa_interrupt() spinlock. - Rev driver branch to .02 to denote kernel version. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] 3ware 9000 schedule_timeout fix From: "Adam Radford" This small patch fixes the broken schedule_timeout() usage in the 3w-9xxx driver, and replaces the calls with msleep(). Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] missing forward declarations in scsi_eh.h Signed-off-by: James Bottomley [PATCH] update 53c700 to avoid obsolete headers Signed-off-by: James Bottomley [PATCH] kill dead compat code in advansys I actually wanted to fix up the check_region usage there but got lost in the mess. Let's start by kicking out the 2.2 compat and using scsi layer constants instead of their own redefinitions first. Signed-off-by: James Bottomley sg update to 20040516 From: Douglas Gilbert Here are some further refinements to this patch with help from Pat Mansfield: - replace vmalloc() with kmalloc(,GFP_KERNEL) - bump max sg devices from 8192 to 32768 Tested to 16k devices (and 8k devices on a box with 512MB ram), Patch is against lk 2.6.6 (or 2.6.6-bk1). Signed-off-by: James Bottomley Driver Model: And even more cleanup of silly scsi use of the *ATTR macros... Signed-off-by: Greg Kroah-Hartman PCI: convert to using dev_attrs for all PCI devices. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C i2c-piix: Don't treat ServerWorks servers as Laptops I'm sending you this little obvious patch which should enable i2c-piix to work on IBM servers with ServerWorks chipsets. It still will treat any IBM/Intel machine as a laptop and refuse to work, but it's better than before. i2c: Treat only IBM machines with Intel chipsets as IBM laptops. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: update I2C IDs > > Greg, should I send a patch to you with these? > > Sure, if it's needed. Just noticed that I never sent the promised patch. Here it is. I also added a few other IDs, since we have them in our (2.4) i2c CVS repository. Having them in 2.6 as well will at least prevent collisions. Signed-off-by: Greg Kroah-Hartman [PATCH] Driver Core: fix struct device::release issue Signed-off-by: Greg Kroah-Hartman On Saturday 27 March 2004 02:14, Greg KH wrote: > On Sat, Mar 06, 2004 at 12:47:24PM +0100, Frank A. Uepping wrote: > > Hi, > > if device_add fails (e.g. bus_add_device returns an error) then the release > > method will be called for the device. Is this a bug or a feature? > > Are you sure this will happen? device_initialize() gets a reference > that is still present after device_add() fails, right? So release() > will not get called. At the label PMError, kobject_unregister is called, which decrements the recount by 2, which will result in calling release at label Done (put_device). kobject_unregister should be superseded by kobject_del. Here is a patch: [PATCH] Fixes for hot-plug drivers (updated) Here is the updated patch (against 2.6.7-rc1) for the shpchp and pciehp drivers that fixes the following issues: - proper LED status when latch is open or card is not present while the user tries to power up the slot; (reported by D. Keck) - check if kmalloc() return NULL before proceeding in acpi_get__hpp(); (provided by L. Capitulino) - add up(&ctrl->crit_sect) before return in error cases in several places; - proper handling of resources when there are other onboard devices behind the p2p bridge that has the hot-plug capabaility; - need to check negotiated link width in check_lnk_status(); - cleanup board_added() in pciehp Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pegasus driver and ATEN device support I have created a patch to add support for ATEN device in pegasus usb driver. I've sent the patch to the maintainer stated in pegasus.h but after several weeks I didn't recieve a response, so I'm sending it to you now. The patch should apply cleanly on 2.6.6, but it doesn't apply cleanly on todays -bk as there was some patch adding some other device. One thing I'm not 100% sure are the flags specified to PEGASUS_DEV, what means HAS_HOME_PNA? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix Memory leak in visor.c and ftdi_sio.c Signed-off-by: Joe Nardelli Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Code cleanup for the UHCI driver This patch makes some simple cleanups in the UHCI driver: It introduces msecs_to_jiffies() conversions and uses msleep(). It wakes up threads waiting for an endpoint to be disabled in the oddball case where interrupts aren't working. (This should have been in a previous patch but I missed it.) It disables PCI interrupt generation whenever the controller is reset and enables it when the controller is started. This may possibly solve some people's problems with suspend/resume. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Debounce all connect change events This patch makes the hub driver debounce all connection changes. Right now the driver only does so if the status happens to be CONNECTED at one particular instant. However, the whole point of debouncing is that the connection is subject to transient interruptions until it has stabilized; hence deciding whether to debounce based on a single initial test defeats the entire purpose. There are some additional smaller changes that go along with the major one: Comments added to hub_port_connect_change() detailing the conditions under which it will be called. Don't clear the port's connect-changed feature if it wasn't set. Skip debouncing if there wasn't a physical connection change but only a logical port-enable change (or a firmware-download- induced device morph -- not yet implemented). Clear all the hub status change indicators in hub_events() before handling a connect change. This will reduce syslog clutter from status change bits that remain set while khubd is busy taking care of a new device. The patch includes no changes to the debounce routine itself. Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Superficial improvements to hub_port_debounce() Since my previous suggestions for changes to hub_port_debounce() encountered so much resistance, this patch makes some fairly superficial improvements to the code while leaving the logic of the algorithm almost completely intact. The only behavioral change is that it actually requests the port status at the start, rather than assuming the status is not CONNECTED. Changes include: Vastly improved comments that are now unambiguous and accurately descriptive of the code. Local variables changed to more sensible names. The stability period is now reported in milliseconds rather than a meaningless poll count. The sleep interval is moved from the start of the loop to the end, so that the first time through we read the port status immediately. If the connection has not stabilized after the total timeout expires, -ETIMEDOUT is returned rather than whatever the current connect status happens to be. If the connection does stabilize then the port status is returned so that hub_port_connect_change() will have an up-to-date value for the status rather than relying on the pre-debounce value. The changes I wanted to make but other people were worried about are included as comments. A later (small) patch will uncomment them for testing. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Genuine changes to hub_port_debounce() This patch includes the algorithmic changes I would like to see in hub_port_debounce(). They are: Increase the total timeout period from 400 ms to 1500 ms. Check the port's connect-changed status during the polling loop. Return as soon as the connection has been stable for the required time, even if it has been stably _dis_-connected. (The current code waits for the full timeout period if there isn't a connection.) In previous emails I have responded to all the concerns raised by others about these changes, and I can't imagine how they could cause any trouble. Increasing the total timeout won't affect people with properly functioning hardware. Their connections will quickly stabilize and the routine will return just as before. People with flaky hardware that takes a long time to settle down will now be able to use their devices. Checking the connect-changed status during the polling loop will make the test more conservative. The code will be able to detect transient disconnections that it would have missed before, and it won't return until the connection really _is_ stable. Furthermore, this makes the test compliant with the USB specification, which requires the stability timer to be restarted whenever a connection change occurs. Returning early for disconnections is a simple optimization. It's more important now that the total timeout length is 1.5 seconds rather than 0.4 seconds. I urge you to apply this patch and for people to try it out. If there do turn out to be problems... the patch is very small, well-contained, and easy to revert. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] Make the scsi error handler bus settle delay a per template option On 1 Jun 2004, James Bottomley wrote: > On Tue, 2004-06-01 at 15:29, Alan Stern wrote: > > In addition, the settle-time delays would have to be removed from the > > error handler -- which means adding it to all the low-level drivers. Is > > that doable? > > Well, for 2.6, I think that a simple flag indicating that the driver > will implement it's own timeout should suffice rather than altering > every LLD... Signed-off-by: Alan Stern Signed-off-by: James Bottomley [PATCH] Module section offsets in /sys/module So here I am trying to write about how one can apply gdb to a running kernel, and I'd like to tell people how to debug loadable modules. Only with the 2.6 module loader, there's no way to find out where the various sections in the module image ended up, so you can't do much. This patch attempts to fix that by adding a "sections" subdirectory to every module's entry in /sys/module; each attribute in that directory associates a beginning address with the section name. Those attributes can be used by a a simple script to generate an add-symbol-file command for gdb, something like: #!/bin/bash # # gdbline module image # # Outputs an add-symbol-file line suitable for pasting into gdb to examine # a loaded module. # cd /sys/module/$1/sections echo -n add-symbol-file $2 `/bin/cat .text` for section in .[a-z]* *; do if [ $section != ".text" ]; then echo " \\" echo -n " -s" $section `/bin/cat $section` fi done echo Currently, this feature is absent if CONFIG_KALLSYMS is not set. I do wonder if CONFIG_DEBUG_INFO might not be a better choice, now that I think about it. Section names are unmunged, so "ls -a" is needed to see most of them. Signed-off-by: Greg Kroah-Hartman Driver core: finally add a MAINTAINERS entry for it. Signed-off-by: Greg Kroah-Hartman [AGPGART] Kconfig Typo fix From: Tuncer M zayamut Ayaz Signed-off-by: Dave Jones USB: make usb devices remove their sysfs files when disconnected. Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: delete McKinley A-stepping code The patch below removes the config option and one bit of code for McKinley A0/A1 CPU workarounds. These CPUs were never used in production, and IIRC this workaround really only affected X11. Signed-off-by: David Mosberger [PATCH] Re: Problems with cyberjack usb-serial-module since kernel 2.6.2 > Send me a patch to back those changes out to fix your device and I'll > apply it. If the author is around to realize this, that should wake > them up :) Ok, here you are! :) Attached is a patch for linux-2.6.7-rc2. (though the patch hasn't changed since -rc1) Again a short description: (the patch removes most of the changes done in linux-2.6.2) 1. Removed the local buffer of cyberjack_write, because something goes wrong upon a write-request bigger than the buffer. Without this, a write-request stalls with error -3. 2. Removed some usb_clear_halt() lines. Without this, the device doesn't even open and returns -7. It works for my cyberjack pinpad USB card reader on - nforce2 chipset - VIA KM266 chipset - AMD Irongate chipset Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: GetMaxLUN tightening This patch started life from Alan Stern as as274, and has been heavily modified. It narrows the case where a clear_halt() is issued after a failed GetMaxLUN command to only a STALL case. Since the only legimate responses to a GetMaxLUN are STALL or data, anything else is now considered a fatal error and we give up on the device. Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: enable pwc usb camera driver The attached patch enables the pwc driver included with kernel 2.6.7-rc2 It also removes the warnings during compilation. However, note that I blindly duplicated the release approach used by other usb camera drivers, replacing the current no-op. The driver works for me with a Logitech QuickCam Notebook Pro and GnomeMeeting. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix logic in usb_get_descriptor() This patch fixes a simple logic error in usb_get_descriptor(). It also takes the opportunity to make the subroutine a little easier to read. Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: fix ia32 virtual memory leaks due to partial-page mappings Certain IA-32 applications which do mmap/munmaps which are not PAGE_SIZE aligned could see temporary (recovered at process exit time) memory leaks, because the kernel didn't have enough data to decide if the complete page could be unmapped. This patch adds a new data structure called the "partial page list" which helps the kernel keep track of precisely which 4k pages are in use by the IA-32 application. Armed with this data, the kernel can make better decisions at munmap and mprotect time. No significant performance degradation was observed in the workloads we tested and in some cases, the performance actually improved! This is possibly due to the reduced length of the vma list. Signed-off-by: Arun Sharma Signed-off-by: Gordon Jin Signed-off-by: David Mosberger [PATCH] USB devio.c: deadlock fix proc_resetdevice is called with dev->serialize held. usb_reset_device takes dev->serialize and then calls __usb_reset_device. To avoid deadlock, proc_resetdevice should call __usb_reset_device directly. Signed-off-by: Duncan Sands Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Check port reset return code This patch adds checking for the SET-FEATURE request that actually does a port reset. Without the check, the hub driver just assumes that the port reset command actually was transferred okay. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix resource leakage in the hub driver The hub driver is very careless about returning resources when an error occurs while installing a new device. This patch attempts to put some order back into the situation. Details: Since usb_new_device() allocates neither the device structure nor the device address, it shouldn't release either one. Because usb_new_device() no longer releases the device structure, usb_register_root_hub() doesn't need to take an extra reference to it. Since the device address selection and TT setup code is used only for new devices, not ones being reset, move that code from hub_port_init() to hub_port_connect_change(). By the same token, hub_port_init() doesn't have to release the device address or the device structure. Just to make things look better, move the failure code in hub_port_init() to the end of the routine. And when disabling endpoint 0, disable both the IN and OUT parts of the endpoint. In hub_port_connect_change(), make all the failure paths execute the same code so that resources are always released. These resources comprise: the pointer from the parent to the new child device, the HCD state for ep0, the device's address, and the device structure itself -- in short, everything that's set up before calling usb_new_device(). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update Given the problems that Dan Scholnik has reported, we should combine the unusual_devs.h entries for the Casio QV cameras into one. The new NEED_OVERRIDE flag will prevent complaints about unnecessary overrides, and Dan says the same subclass and protocol values should work for all the cameras. If they don't we'll hear about it soon enough! On Tue, 1 Jun 2004, Dan Scholnik wrote: > On Tue, 2004-06-01 at 14:14, Alan Stern wrote: > > On Tue, 1 Jun 2004, Dan Scholnik wrote: > > > > > Up until the 2.6 kernels, there was one entry for all the QV cameras > > > with both US_SC_8070 and US_PR_CB that I think seemed to work fine for > > > everyone. As far as I know the only problem was all the folks emailing > > > the log entry stating that the Casio entry wasn't needed. So, you could > > > revert back to that, or revert back to the 2.6.3ish version (pre-as190) > > > that had the overrides just for product IDs 1001-9009. I'm not really > > > an expert on Casio's cameras, I'm afraid, just the one model I own which > > > is 4-5 years old now. > > > > > > I'll be happy to prepare a patch any way you choose to go. > > > > How does this work for you? > > > > Alan Stern > > Works fine for me; that's I think exactly how it was from the beginning > until 2.6 and the later 2.4 kernels when all the changes were made. > Just cross your fingers that it doesn't somehow break newer Casios, as > it would seem every camera they ever made falls under that entry. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: rndis (1/4) update OID support NDIS devices have a generic attribute get/set API where the attributes are identified by 32 bit "OIDs". This fixes some problems with the OIDs supported by the original RNDIS patch: - It included OIDs not found in the RNDIS spec. These have been removed. As a rule, these weren't exported in the "OIDs I support" list, and only a couple wouldn't fail those accesses, so this mostly changes what debug printk appears. - OIDs used for optional 802.3 statistics were partially supported. They're all in the OID list now, but the support is #ifdeffed out. (Those statistics were mostly just made up, anyway!) - "Required" OIDs for suspend, resume, and wakeup support weren't listed. Their messages are now defined, but support is #ifdeffed out. Seems the docs aren't entirely accurate, and Windows can behave reasonably without them. (This area needs help from someone who knows MS-Windows power management.) There are also a few minor cleanups, more reasonable default volume level for debug messages (never at KERN_INFO, keepalives only if VERBOSE), and dumping of all bytes of some undocumented messages Windows XP has been seen emitting shortly before the host suspended itself. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: rndis (2/4) fix memory leaks Tao Huang wrote: > I'm writing udc driver for S3C2410. I found RNDIS almost not call my > driver's free_request and free_buffer. So after run my driver about 3 > hours the system will out of memory. > > This patch will fix the memory leak. > > There will still have memory leak when driver unload, but I don't known > where is the proper place to fix it. > 1) rndis.c should free resp_queue when it unload > 2) ether.c should free tx_reqs and rx_reqs when it unload (as > eth_reset_config) Thanks ... this is a nice patch to have. From: Tao Huang Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: rndis (4/4) start documenting spec variances This partially reverts one of the changes in an earlier patch, starting to document where Microsoft's spec is lying. Needed to interop with Windows ME. The Windows ME implementation of RNDIS relies on a message that Microsoft's specification says isn't used. Restore this (removed in earlier cleanup), and start collecting comments specifically on where MSFT violates its own specifications. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: Rename SN "modules" variable to "sn_modules". SN code has a "modules" variable that conflicts with a variable of the same name in kernel/module.c. This conflict breaks lcrash for ia64. Rename "modules" to "sn_modules". Signed-off-by: Keith Owens Signed-off-by: David Mosberger [AGPGART] Don't waffle about unsupported serverworks chipsets if they don't do AGP. From: Matt Domsch Signed-off-by: Dave Jones [PATCH] PCI: fix irq routing on acer travelmate 360 laptop Fixes interrupt routing on acer travelmate 360 notebooks. it looks like the bios assigned the wrong pirq value for the cardbus bridge. just assigning irq 10 to all devices with pirq 0x63 would break second usb port. pirq 0x68 seems to be right one for cardbus. Signed-off-by: Daniel Ritz Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add alternate VCORE calculations for w83627thf and w83637hf This patch adds support for the alternate in0/VCORE calculation which is available for 2 of 4 chips this driver supports. It also fixes a minor bug in the standard voltage input calculation. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: drivers/i2c/chips/it87.c cleanup patch Attached is a cleanup patch for the it87 sensor driver, against 2.6.7-rc2. Jean Delvare has reviewed it. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb root hubs can set power budgets This adds hub_set_power_budget(), mostly so that HCDs for low powered ports (cell phone, PDA, etc) can more easily report their true power budgets. It's not always 500mA per root hub port; this makes dummy_hcd report the minimum, 8mA. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb suspend/resume work better on net2280 This makes net2280 behave more correctly with respect to usb suspend and resume processing. So for example gadget zero autoresume testing works. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: rndis (3/4) Big Endian support for gadget RNDIS Add byteswapping. Original version partially worked on PPC with Net2280, this version applies to the latest RNDIS code but hasn't been retested on big-endian. Ping should be working in at least one one direction. Also added a handful of other things from my BK: track suspend/resume (to eventually implement wake-on-lan), give a better rndis error message, and add missing declarations for PM-related OIDs (usage is #ifdeffed out by previous patch). From: Jon Neal Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] lh7a404 USB host against 2.6.7-rc2 Support for the Sharp LH7A404 OHCI, another non-PCI implementation. This uses a platform_device and a workaround for a register read problem. Signed-off-by: Marc Singer Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Initialize endpoint autoconfig in g_file_storage This one-line patch corrects a simple problem in the g_file_storage driver. It neglected to initialize the endpoint-autoconfiguration library before using it. Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] Add cpu hotplug support to cpuid.c Here is the patch that uses a cpu hotplug callback, to allow dynamic support of cpu id for classes in sysfs. This patch applies on top of the one I sent out earlier that Greg included. I do not have access to hardware that supports cpu hotswapping (virtually or not) so have not been able to test that aspect of the patch. However, the original functionality of listing static cpu's still works. Please consider for testing or inclusion. Signed-off-by: Hanna Linder Signed-off-by: Greg Kroah-Hartman [PATCH] Add platform_get_resource() This patch adds management of platform device resources to the device model, allowing drivers to lookup resources, IRQs and DMA numbers in the platform device resource array. We also add a couple of functions which allow platform devices and their resources to be registered. Signed-off-by: Russell King Signed-off-by: Greg Kroah-Hartman cpuid: fix hotplug cpu remove bug for class device. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: w83627hf.c build fix with gcc-2.95: drivers/i2c/chips/w83627hf.c:482: parse error before `static' drivers/i2c/chips/w83627hf.c:502: parse error before `static' drivers/i2c/chips/w83627hf.c: In function `show_regs_fan_1': drivers/i2c/chips/w83627hf.c:541: warning: implicit declaration of function `show_fan' drivers/i2c/chips/w83627hf.c: In function `w83627hf_detect': drivers/i2c/chips/w83627hf.c:1074: `dev_attr_in0_min' undeclared (first use in this function) drivers/i2c/chips/w83627hf.c:1074: (Each undeclared identifier is reported only once drivers/i2c/chips/w83627hf.c:1074: for each function it appears in.) drivers/i2c/chips/w83627hf.c: At top level: drivers/i2c/chips/w83627hf.c:428: warning: `show_regs_in_min0' defined but not used drivers/i2c/chips/w83627hf.c:441: warning: `store_regs_in_min0' defined but not used Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add printer reset ioctl - add soft reset ioctl Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix bus-list root-hub race There are a few places where the code enumerates through all the USB devices on all the buses, starting with each bus's root hub and working down. However a bus does not always have a root hub, and the code does not check that the root_hub pointer is non-NULL. This patch fixes the problem, using the usb_bus_list_lock semaphore to synchronize access when root hubs are added or removed. In addition it seemed like a good idea to minimize the time that a non-fully-configured root hub is accessible through the bus's pointer. So this patch delays setting the pointer and holds usb_bus_list_lock while configuring a root hub. It turned out that a bunch of things needed to be changed for all this to work: Check for NULL root_hub pointer in usb_device_read() and usb_find_device(). Pass the root-hub device as a separate argument to hcd_register_root(). Make usb_register_root_hub() acquire the usb_bus_list_lock and set the bus->root_hub pointer. For consistency's sake, move the place where the children[] pointer to a non-root-hub device gets stored as close as possible to where usb_new_device() is called. Make usb_disconnect() acquire the usb_bus_list_lock when removing a root hub. Change usb_hcd_pci_remove() and the non-PCI host drivers so that they call usb_disconnect() with a pointer to the bus's root_hub pointer, not a pointer to a temporary variable. Change all the host controller drivers not to store the root_hub pointer in the bus structure but instead to pass it as a new argument to hcd_register_root(). I made some attempt to update the hc_sl811 driver along with the rest, but it's pretty clear that driver won't work in the current framework. Among other things, it never reads the root hub's device descriptor. To what extent is the driver really supported? Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Minor tidying up of hub driver After my last few changesets there were a few small items that needed to be tidied up. Update kerneldoc to reflect the actual operation of usb_disconnect() and usb_new_device(). The new locking requirements are listed too, though they aren't all implemented yet. Fulfill the new locking requirement in hcd_panic(). Remove unneeded local variables to conserve stack space in usb_disconnect(), which calls itself recursively. In hub_port_connect_change(), store the parent's children[] pointer as late as possible and don't lock the new device until then (that's when it becomes globally accessible). This will minimize the time that the not-fully-configured device structure is visible to other parts of the kernel. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Update root-hub code for the ohci-lh7a404 driver On Wed, 9 Jun 2004, David Brownell wrote: > Needs an update for ohci-lh7a404.c too ... I didn't even know this driver existed! Where did usb/host/* come from? Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman USB: crap, I misapplied a patch with the wrong level This gets rid of usb/host and puts the file in the proper drivers/usb/host directory. Signed-off-by: Greg Kroah-Hartman [SPARC32]: Regenerate defconfig [SPARC32]: Move non-PCI DMA definitions out of pgtable.h This also avoids a cyclic header inclusion problem with dma-mapping.h and linux/mm.h triggered by the recent change to standard DMA definitions. [SPARC32]: Continue to avoid the use of __builtin_trap for BUG() gcc 3.3.3 continues to ICE on the BUG_ON() in mm/fremap.c. [SPARC32]: Fix CONFIG_SUN4 build [PATCH] Driver Core: Suppress platform device suffixes Do not add numeric suffix to platform device name if device id is set to -1. This can be used when there can be only one instance of a device (like i8042). Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver Core: Whitespace fixes Whitespace and formatting changes (a,b,c -> a, b, c) in drivers/base Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman Driver Core: more whitespace fixups This catches the files I had to do by hand as Dmitry's patch differed from my tree. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] PATCH: 2.6.7-rc3 drivers/usb/core/devio.c: user/kernel pointer bugs Since ctrl is copied in from userspace, ctrl.data cannot safely be dereferenced. Let me know if you have any questions or if I've made a mistake. Signed-off-by: Greg Kroah-Hartman USB: sparse cleanups for the whole driver/usb/* tree. Signed-off-by: Greg Kroah-Hartman USB: fix up dumb int_user_arg variable name as pointed out by Al Viro. Signed-off-by: Greg Kroah-Hartman I2C: sparse cleanups for drivers/i2c/* Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: mark non-existent NUMA-nodes as offline I found a problem with HP NUMA configuration in 2.6.7-rc3-mm1. The node_online_map is incorrect because of actions taken by reassign_cpu_only_nodes in arch/ia64/mm/discontig.c. The mm1 patch which changes the mempolicy for the init_task uses this invalid node_online_map and eventually uses a non-existent node's zonelist when calling __alloc_pages. The patch below takes care of this issue. It puts the non-existent nodes offline. Signed-off-by: David Mosberger [PATCH] ia64: fix race in fsys_bubble_down to avoid fp-register corruption The fast system-call fall-back-path has a race: it reads PSR, modifies some bits, then writes back the new PSR. Unfortunately, the contents of PSR may change between reading and writing it. For example, an interrupt could occur which could trigger a context-switch. The context-switch might in turn flush the floating-point-high (FPH) partition to memory, clear PSR.MFH, and set PSR.DFH. To prevent this race, the patch below turns off PSR.I before reading PSR. This fixes a floating-point corruption problem that was observed on a system with a libc which has the fast system-call support enabled. The performance impact is minimal (on the order of a handful of cycles). Signed-off-by: Kevin Tian Signed-off-by: Ken Chen Signed-off-by: Asit Mallick Signed-off-by: David Mosberger [PATCH] fealnx-mac-address-and-other-issues.patch (resend - I need to get this out of my tree my one means or another..) From: "SuD (Alex)" I recently was given a surecom 10/100 ethernet card and found that i could not change Mac address for it as other driver/devices allow. I tried to implement the missing feature and noticed that the device is quite peculiar (or either my system is broken), when trying to fill mac address registers (no matter whether io_ops is set): - If I write a byte (writeb) to an even i/o address it seems like actually a word was written (the next byte is set to 0). - If I write a byte to an odd i/o address my pc gets bad freezed. That made think of writing 16bit words (writew) for the memory address, as opposed to what most driver examples do. It works for me (I hope i set the lines at the right place in device_open function after the device is reset). I hope the code is clean enough and does not mess with byte ordering. This is the patch (this time against 2.6.5): (akpm: Is this right on big-endian?) [PATCH] prism54: Kernel compatibility 2004-03-20 Margit Schubert-While * isl_38xx.[ch], isl_ioctl.c, islpci_dev.[ch], islpci_eth.c islpci_hotplug.c, islpci_mgt.[ch], oid_mgt.c, prismcompat.h: Adopt new prism54 kernel compatibility. Remove remaining kernel version ifdefs. [PATCH] fix oops from acenic ethtool Fix the following OOPS that happens when doing ifup on FC-2 with 2.6.7 in acenic and a security hole due to missing capable(NET_ADMIN), by replacing private ethtool handling with ethtool_ops. (Yes, Jes because of DEV_ETHTOOL_OPS define it will still work on ancient kernels.) [netdrvr acenic] remove unneeded ifdefs [PATCH] prism54: Fix endian patch * Split out patch islpci_eth.c : * Fix endian problem (bug 74/75 related) [PATCH] add ARM smc91x driver [PATCH] add NAPI help texts NAPI seems to be so self-explaining that no help texts are needed. ;-) I combined the two help texts that were at NAPI options, and added them to all NAPI options. [PATCH] prism54: Fix bugs 74/75 2004-03-22 Aurelien Alleaume * oid_mgt.c, isl_ioctl.c : Minor bugfixes : #74 and #75. [PATCH] prism54: Fix bugs 39/73 2004-04-07 Margit Schubert-While * Bugs 39 and 73 [PATCH] prism54: Fix bug 77, strengthened oid txn 2004-04-09 Aurelien Alleaume * oid_mgt.c, isl_ioctl.c : Cleanups. Bug #77. Minor stuffs. * islpci_mgt.c (islpci_mgt_transaction) : enforce serialization in oid transaction. lindent.sh. * islpci_mgt.c (islpci_mgt_transaction) : Strengthened oid transaction. [PATCH] prism54: Don't allow mib reads while unconfigured 004-04-17 Aurelien Alleaume * oid_mgt.c, isl_ioctl.c : Cleanup. Prevented real oid reading before the card is configured with mib values (might be related to bug #53). [PATCH] prism54: Add likely/unlikely, KO wds completely * islpci_mgt.h : Change init_wds definition * islpci_eth.c : Do some likely/unlikely [PATCH] prism54: Align skb patch * islpci_eth.c, islpci_dev.c : Align skb->data unconditonally after allocation. This would appear to improve RX rate [PATCH] prism54: Reduce module verbosity 2004-05-01 Margit Schubert-While * Reduce module verbosity [PATCH] prism54: Fix channel stats, bump version to 1.2 2004-05-20 Aurelien Alleaume * islpci_eth.c : use dev_kfree_skb_irq instead of dev_kfree_skb where needed. * isl_ioctl.c : report channel instead of frequency in scan. * islpci_hotplug.c : bump version to 1.2 [PATCH] prism54: Fix typo 2004-05-29 Margit Schubert-While * isl_ioctl.c : Fix typo [PATCH] prism54: White space and indentation 2004-05-29 Margit Schubert-While * White space and indentation patch [PATCH] ia64: Remove warnings when unwind debug is turned on Turning on UNW_DEBUG generates warnings for incorrect number of parameters for formats and several cases of "suggest explicit braces to avoid ambiguous `else'", because UNW_DPRINT contains an if statement. Signed-off-by: Keith Owens Signed-off-by: David Mosberger ia64: Update defconfig [PATCH] USB: Mark devices as NOTATTACHED as soon as possible This patch implements something we've been lacking for a long time: a way to mark devices as USB_STATE_NOTATTACHED as soon as we know that they're gone. The usb_device->state member is no longer protected by the ->serialize semaphore; instead there's a new private spinlock. Usbcore routines should no longer set ->state directly; instead they should use the new utility routine usb_set_device_state(). There are protections against changing states while devices are being added or removed. Change assignments to udev->state into calls of usb_set_device_state(). Add new private device_state_lock to the hub driver, along with usb_set_device_state() and recursively_mark_NOTATTACHED(). Acquire the new spinlock while adding or removing children[] pointers. When disabling a port that has a child device, mark the child as NOTATTACHED. You mentioned once having tried to do something like this and running into trouble. Take a good look and let me know if you see any difficulties here. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ATI Remote driver update Here are some contributed improvements for the ATI remote driver. I submitted the driver and it was accepted several months ago. Since then a few people have sent me patches and suggestions. This patch adds two things: (1) support for the "Lola" X10 remote, sent to me by Seth Cohn (2) key autorepeat support, sent to me by Vincent Vanackere The key autorepeat support has been tested by me, but the Lola support has not, as I don't have the hardware. Thanks to Seth and Vincent, with my apologies for taking so long to forward their improvements along. Signed-off-by: Torrey Hoffman Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbtest just uses module_param() This prevents some warnings during modprobe. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet shouldn't oops on cdc error path If the string descriptor fetch works, no problem. Else make the disconnect() logic -- newly called because of "recent" changes to interface claiming logic -- use its fast cleanup path, since we're still not fully set up yet. Should resolve OSDL bugid 2714; please merge. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: retry string fetches on ZLPs not just STALLs This matches the behavior for other descriptor fetches. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb on big endian, ehci needs a byteswap Adds a missing byteswap that would affect interrupt transfers with EHCI on big-endian platforms, like Rick's MIPS-4km uClinux. Needed for external hubs, and then likely for mice, keyboards, and so on. From: Rick Sewill Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: clarify pci.txt wrt IRQ allocation I think we should make it explicit that PCI IRQs shouldn't be relied upon until after pci_enable_device(). This patch: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7-rc3/2.6.7-rc3-mm1/broken-out/bk-acpi.patch does PCI interrupt routing (based on ACPI _PRT) and IRQ allocation at pci_enable_device()-time. (To avoid breaking things in 2.6, the above patch still allocates all PCI IRQs in pci_acpi_init(), before any drivers are initialized. But that shouldn't be needed by correct drivers, and I'd like to remove it in 2.7.) Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly I made changes to rpaphp code, so it can handle multi-fuction devices correctly. The problem is that the pci_dev field of slot struct can only record one pci_dev of the devices of a multi-fuction card. I changed pci_dev (a single pci_dev type pointer) to pci_funcs( a list of pci_dev type pointers). I rewrote some of the config/unconfig code to support the slot struct change. Along with above changes, I added LDRSLOT(logical I/O slot) support. We need LDRSLOT support for DLPAR I/O. A card in a LDRSLOT can't be physically removed, but can be logically removed from one partiton and reassinged to another partition. I also merged rpaphp changes from ames tree. Signed-off-by: Greg Kroah-Hartman [PATCH] Driver Model: Add class support to msr.c This patch enables class support in arch/i386/kernel/msr.c. Very simliar to cpuid (with the fixes Zwane/Greg made, thanks). [root@w-hlinder2 root]# tree /sys/class/msr /sys/class/msr | -- msr0 | `-- dev `-- msr1 `-- dev 2 directories, 2 files Thanks to Randy Dunlap for pointing out the unnecessary tabs. Fixed. Signed-off-by Hanna Linder Signed-off-by: Greg Kroah-Hartman [PATCH] sysfs: fs/sysfs/inode.c: modify parents ctime and mtime on creation When a node is added to sysfs (e.g. a device plugged in via USB), the filesystem fails to make this change visible in the parent directory's ctime/mtime. This is in contrast to removing a device, because in that case, sysfs makes use of the function simple_unlink from fs/libfs.c which takes care of that. Instead of using simple_link from fs/libfs.c on creation, sysfs implements its own mechanism. This patch hooks into the function sysfs_create and sets the ctime and the mtime of the parent to CURRENT_TIME. Signed-off-by: Sebastian Henschel Signed-off-by: Greg Kroah-Hartman [NET] first bits of net/core/stream.c Move tcp sk_wmem_queued related functions to net/core/stream.c, will be used by other SOCK_STREAM protocols, starting with LLC. Also move the tcp_charge_skb to sock.h, for the same reasons. Signed-off-by: Arnaldo Carvalho de Melo I2C: sparse cleanups again, based on comments from lkml This is more like the original code. Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: INQUIRY fixup, mode-sense options, Genesys devices This patch does a few things (all in the same section of code). It started life as patches as226b, as280, and as275. Later it was merged into as226e and I added significantly to it. First, this patch introduces a new config option to allow people to enable write-protect detection for their USB devices. With some luck, we've finally got it right and can eventually remove this option in favor of enabling this behavior all the time. Next, we change how we force some flags on -- it turns out that there are some 'generic' entries in the SCSI devinfo which was overriding us when we didn't want it. Finally, we add a safety check to the workaround for GeneSys Logic devices -- if the max_sectors parameter has already been turned down, we won't turn it up. Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: Fix race when removing the SCSI host This patch fixes a race is disconnecting a usb-storage device that occurs with the SCSI layer. It's primarily reproducable via adding delays into various disconnect and reset processing paths, but has also been encountered in the field. This patch started life as as281b, and was modified by me only to patch properly against current kernels. The main features of the patch are: Store the host pointer at the start of the control thread rather than trying to get it from srb->device; after the host is removed the SCSI device structure may no longer exist. Keep dev_semaphore locked during the entire time the control thread or reset handlers are using the us_data structure. Reorder the items in dissociate_dev() and release_resources() so that things are released in the opposite order from the way they were acquired originally. Don't bother to increment and decrement the usb_device's reference count; it's unnecessary. In disconnect(), first set the DISCONNECTING flag so that no more I/O will take place and no more requests will be accepted. Next, cut short the current command and wait for it to finish. Then call scsi_remove_host(). The SCSI core guarantees that when scsi_remove_host() returns, the host will not be in error recovery and all outstanding commands will have been cancelled. Remove some old useless left-over code that was #if'ed out. Use a wait_queue for the 6-second delay during device resets so that we can be woken up in the middle if a disconnect occurs. The key point here is that after scsi_remove_host(), everything is idle as far as the SCSI midlayer is concerned. But if there was a command in progress at the time, the midlayer will abort it without telling us or waiting for it to complete. Hence we have to wait for the control thread to be idle before we can try to kill it. This should happen quickly, since all I/O attempted by the thread will fail immediately. Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix bug in TT initialization introduced by earlier This patch repairs a bug introduced by an earlier patch: The TT initialization code was moved to _after_ the TT's first use. The patch simply puts the code back the way it used to be. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add alternate VCORE calculations for w83627thf and w83637hf Pick a VRM (for VID interpretation) based on the VRM & OVT config, if available. Props to Jean Delvare for the idea & code fragment. Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Fix PME bits in pci.txt Signed-off-by: Roger Luethi Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Fix off-by-one in pci_enable_wake Fix off-by-one in pci_enable_wake. Bit field location determined by mask, not value. Signed-off-by: Roger Luethi Signed-off-by: Greg Kroah-Hartman JFS: Don't allow reading beyond the inode map's EOF If we try to read inodes that are beyond the size of the inode map, __read_metapages would read unitialized pages into the inode map's address space. If the inode map is later grown in order to allocate more inodes, the page is initialized and written under a different address space. Having the stale page in the page cache prevents the properly initialized page from being read, and results in errors. This problem can be provoked by an nfs client trying to read an inode that does not exist. Signed-off-by: Dave Kleikamp [libata] don't probe from workqueue Since we want the probe phase to call other workqueues, this is required to eliminate future deadlocks. Other methods would include starting a single-shot thread just for probing, but overall, using a separate thread for probing is pointless since we are already in process context when we probe. So, we simply call ata_bus_probe directly. [PATCH] USB: Remove private khubd semaphore This patch removes the private semaphore used by the hub driver, and uses the regular "serialize" semaphore instead. This will satisfy the general locking requirements for adding and removing devices attached to the hub. The only tricky aspect is that now the hub event handler must take a reference to the hub device while waiting to acquire the semaphore, in case the hub is disconnected during the wait. The patch also replaces a few occurrences of spin_lock_irqsave() in regions where interrupts are known to be enabled with spin_lock_irq(). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] Typo in ethtool code in acenic driver In 10mbps detection code. [PATCH] Kill stale references to Documentation/networking/8139too.txt Documentation/networking/8139too.txt was removed with this ChangeSet: ChangeSet@1.1371.153.2 2004-01-10 15:34:47-05:00 jgarzik@redhat.com [netdrvr] remove Documentation/networking/8139too.txt All sections of the document are woefully outdated. However, `grep' still reveals these references to it: drivers/net/8139too.c:90: See 8139too.txt for more details. drivers/net/Kconfig:1539: as well as the Documentation/networking/00-INDEX:7:8139too.txt Signed-off-by: Arthur Othieno [PATCH] prism94 build fix init_wds is being instantiated in both isl_ioctl.c and islpci_eth.c, causing linkage errors. drivers/net/wireless/prism54/islpci_mgt.o(.rodata+0x198): In function `islpci_mgmt_rx_fill': /usr/src/25/drivers/net/wireless/prism54/islpci_mgt.c:154: multiple definition of `init_wds' drivers/net/wireless/prism54/islpci_eth.o(.rodata+0x1c8):/usr/src/25/include/linux/skbuff.h:815: first defined here Signed-off-by: Andrew Morton [libata] PCI IDE DMA code shuffling PCI IDE DMA standard (or "bmdma") helper routines ata_bmdma_stop, ata_bmdma_ack_irq, and ata_bmdma_status are added to linux/libata.h, and used in libata-core. There is a minor behavior change, such that, the Alt Status register is read before acknowledging the bmdma interrupt. This should be ok, and furthermore there will be more significant behavior changes in this area coming soon. [libata] PCI IDE command-end/irq-acknowledge cleanup Restruct default irq handler (used for many PCI IDE-like SATA controllers) to obtain device status and acknowledge interrupts a bit differently. In an attempt to better attack the "ich5 screaming interrupt" problem, acknowledge and clear the device's INTRQ by reading the Status register _before_ ack'ing the controller's irq status. This is a deviation from how the Linux IDE driver acknowledges interrupts, but it may be the best method, since the ICH5 appears to continue to assert the interrupt bit in the BMDMA until the device INTRQ line is cleared. Of course, SATA has no INTRQ line per se, so ICH5 essentially has new interrupt behavior not seen before in the PCI IDE world, while pretending that it's compatible with PCI IDE. Sigh. This change affects all SATA controllers (for which there are libata drivers) except for sata_promise and sata_sx4. [libata] ->qc_prep hook Rename ->fill_sg hook to ->qc_prep, and call it unconditionally (as opposed to ->fill_sg, which was called only when the flag ATA_QCFLAG_SG was set). NTFS: sparse fix: void function with return (value) Sparse: ======= CHECK fs/ntfs/attrib.c fs/ntfs/malloc.h:57:15: warning: return expression in void function [repeated several times] From: Mika Kukkonen Signed-off-by: Randy Dunlap Signed-off-by: Anton Altaparmakov NTFS: - Add new element itype.index.collation_rule to the ntfs inode structure and set it appropriately in ntfs_read_locked_inode(). - Implement a new inode type "index" to allow efficient access to the indices found in various system files and adapt inode handling accordingly (fs/ntfs/inode.[hc]). An index inode is essentially an attribute inode (NInoAttr() is true) with an attribute type of AT_INDEX_ALLOCATION. As such, it is no longer allowed to call ntfs_attr_iget() with an attribute type of AT_INDEX_ALLOCATION as there would be no way to distinguish between normal attribute inodes and index inodes. The function to obtain an index inode is ntfs_index_iget() and it uses the helper function ntfs_read_locked_index_inode(). Note, we do not overload ntfs_attr_iget() as indices consist of multiple attributes so using ntfs_attr_iget() to obtain an index inode would be confusing. Signed-off-by: Anton Altaparmakov [ARM] Add clock API Since peripheral clocks are be derived in SoC or even platform specific ways, we need a way to keep this information out of the drivers. AMBA Primecells are defined in terms of functional units where clocks are derived from external sources, and it is up to the SoC designer to determine where to derive those clocks from. Therefore, we provide a very basic API which allows platforms to provide this information in a generic manner to their peripherals. This framework also allows peripherals to shut down unused clock sources when they're not in use. NTFS: Ensure that there is no overflow when doing page->index << PAGE_CACHE_SHIFT by casting page->index to s64 in fs/ntfs/aops.c. Signed-off-by: Anton Altaparmakov [ARM PATCH] 1926/3: PXAFB cleanups and fixes Patch from Ian Campbell Sorry, 1926/2 was missing a brace. Fixed here. Previous commentry: I have corrected the grayscale conversion to correctly use the upper byte rather than the lower one. As requested I have also left the actual grayscale conversion where it was this time and just dealt with the palette differences in pxafb_setpalettereg. fb_alloc_cmap is only called when bits_per_pixel is < 16, otherwise any existing cmap is freed. I also fixed up all the spaces and brackets issues (not just the one you raised previously) this introduces some noise in the patch, if you'd like the two patches separately please ask. [ARM PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM Patch from Marc Singer [if's replaced by ifdef's.] While the BLOB boot loader doesn't support it, there are two others, UBOOT and Logic's LOLO, that will initialize the SDRAM controller such that the memory appears as a contiguous region. This layout to be required for WinCE and, thus, is the default for these loaders. The memory organization had been optimized for discontiguous blocks. Now, it supports a default mode that is compatible with all of the bootloaders as well as options to optimize for either contiguous or discontiguous models. Withing, there is also a slight change to the way that the DEBUG_LL macros select the UART address. Now it uses immediate constants exclusively. [ARM] pxafb doesn't need to include asm/mach-types.h [PATCH] clean up SCSI_TIMEOUT usage - qlogicfc.c abuses SCSI_TIEMOUT although it's not part of the scsi core, give it it's own ISP_TIMEOUT define - avoid redefining timeouts #ifdef DEBUG, that's a cause for heisenbugs just waiting to happen - now SCSI_TIMEOUT is private to scsi_scan.c, move it there Signed-off-by: James Bottomley [PATCH] avoid obsolete scsi APIs in eata_pio Signed-off-by: James Bottomley [PATCH] tmscsim: 64-bit cleanup > Although, I think, there's still a glitch there (modified if's order). > I'll send a new version, if the approach is approved in principle. Ok, attached is version 3:-) It also fixes a definite (although, perhaps, harmless) bug in scsiiom.c. And removes a redundant assignment in tmscsim.c. Signed-off-by: Guennadi Liakhovetski Signed-off-by: James Bottomley [PATCH] drivers/scsi/megaraid.c: user/kernel pointer bugs From: "Robert T. Johnson" Since arg is a user pointer, so are uioc_mimd and uiocp, and hence umc is a user pointer. Thus reading umc->xferaddr requires dereferencing a user pointer, which isn't safe. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] modular scsi/mca_53c9x doesn't work On Mon, Jun 14, 2004 at 08:22:15PM +0100, Christoph Hellwig wrote: > On Mon, Jun 14, 2004 at 08:52:56PM +0200, Adrian Bunk wrote: > > The issue described in the mail forwarded below is still present in > > 2.6.7-rc3-mm2 (but not specific to -mm). > > > > I'd suggest the following workaround: > > Please add the exports instead. It'll affect all the other 53C9X-based > drivers aswell. This sounds like a better solution. Signed-off-by: James Bottomley [PATCH] Comment out an unused function in drivers/scsi/wd7000.c Eliminate unused function wd7000_abort() in wd7000 driver. CC [M] drivers/scsi/wd7000.o drivers/scsi/wd7000.c:1612: warning: `wd7000_abort' defined but not used As the author states in his comment, this is "unfinished business" ;-) From: Mika Kukkonen Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley Fix endless loop in SCSI SPI transport class If the driver doesn't update the peroid, we go around forever. The fix is to keep our old period unless the driver returns a greater one. Signed-off-by: James Bottomley [PATCH] ia64: fix info in /proc/pal/*/bus_info This patch fixes to minor bugs: - corrected descriptions for bit 52 and 53 of the /proc/pal/CPU*/bus_info entry; they were swapped - corrected a typo for bit 55 of the /proc/pal/CPU*/bus_info entry Signed-off-by: Stephane Eranian Signed-off-by: David Mosberger [ARM] Timer cleanup Signed-off-by: Deepak Saxena [ARM] Remove bogus gettimeoffset ptr from machine_desc struct. This was accidently added during the timer code cleanup. Signed-off-by: Deepak Saxena [ARM] Delete include/asm-arm/arch-nexuspci/time.h Signed-off-by: Deepak Saxena [ARM] Delete include/asm-arm/arch-iop3xx/time.h Signed-off-by: Deepak Saxena [ARM] Delete include/asm-arm/arch-ixp4xx/time.h Signed-off-by: Deepak Saxena [ARM] Delete include/asm-arm/arch-versatile/time.h Signed-off-by: Deepak Saxena [ARM] Add include/asm-arm/mach/time.h for shared timer definitions Signed-off-by: Deepak Saxena [NET]: Update some sysctl documentation. I ran the following (crappy) script: ... In /proc/sys/ and found a host of undocumented sysctls. This patch documents a number of them, and at least mentions the rest as 'TODO'. Please verify my code-inspired documentation before applying! Signed-off-by: Bert Hubert Signed-off-by: David S. Miller [ECONET] kill some trivial warnings Signed-off-by: Arnaldo Carvalho de Melo [NET]: Add tc extensions infrastructure. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [SELINUX]: Fix sock_orphan race. The patch below fixes a race between sock_orphan() and selinux_socket_sock_rcv_skb() which can lead to a null pointer deref oops under heavy load. The sk_callback_lock is used in the patch to synchronize access to the incoming socket's inode security state. This patch has been under test in the Fedora kernel for over a month without incident. Author: Stephen Smalley Signed-off-by: James Morris Signed-off-by: David S. Miller [IPV6]: UDPv6 checksum. We always need to check UDPv6 checksum because it is mandatory. Author: Yoshifuji Hideaki Signed-off-by: David S. Miller [TCP]: Tweak some default sysctl values. tcp_default_win_scale: 7 tcp_vegas_cong_avoid: 1 tcp_moderate_rcvbuf: 1 tcp_bic: 1 [ATM]: Include compiler.h in atm.h [NET]: Allow IP header alignment to be overriden. Author: Anton Blanchard Signed-off-by: David S. Miller [SELINUX]: Fine-grained Netlink support - SELinux headers This patch regenerates the SELinux module headers to reflect new class and access vectors definitions. The size of the diff is misleading; much of it is simply a change in the ordering of the automatically generated definitions. The corresponding generation script has been changed to ensure a stable order in the future. Author: Stephen Smalley Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: David S. Miller [SELINUX]: Fine-grained Netlink support - move security_netlink_send() hook. This patch moves the security_netlink_send() LSM hook after the user copy, so that LSM modules can safely examine skb payload content. For SELinux, we need to look at the Netlink message type. Signed-off-by: James Morris Signed-off-by: David S. Miller [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook Modifies the LSM netlink_send() hook so that it takes a struct sock parameter. SELinux will use this parameter to lookup the class of socket, which was assigned during socket security initialization. Signed-off-by: James Morris Signed-off-by: David S. Miller [SELINUX]: Fine-grained Netlink support - SELinux changes This patch contains SELinux changes which add support for extended Netlink socket classes and the associated permissions nlmsg_read and nlmsg_write. Signed-off-by: James Morris Signed-off-by: David S. Miller SCSI: fix uninitialised variable warning Spotted By: Andrew Morton drivers/scsi/scsi_transport_spi.c: In function `spi_dv_retrain': drivers/scsi/scsi_transport_spi.c:393: warning: `period' might be used uninitialized in this function Signed-off-by: James Bottomley [AGPGART] Re-add VIA VP3 support. The refactoring of the PCI IDs supported by the VIA driver dropped this one. Spotted-by: Carsten Rietzschel Signed-off-by: Dave Jones scsi_debug: num_parts, ptype and (re-)scans From: Douglas Gilbert Changes in version 1.73: - 'num_parts' parameter to specify 0 to 4 partitions - 'ptype' to specify (or change via sysfs) SCSI peripheral device type - support ability to increase the number of targets and/or luns then re-scan a scsi_debug host - remove redundant trailing spaces The new facilties are described at: http://www.torque.net/sg/sdebug26.html A tarball of driver (version 1.73) is also there. Signed-off-by: James Bottomley (conflict resolution) [AGPGART] Delete trailing whitespace in generic routines. Bump copyright dates whilst we're there. Signed-off-by: Dave Jones [NET]: Clear dev refs in dst->child. This is a resend of an earlier patch to dst_dev_event. I've changed it slightly by moving the input/output assignment into dst_ifdown. To recap, this patch drops lingering IPsec references to a device that is being unregistered. The child processing in the GC is too late since it never runs until the reference on the dst hits zero which could take a long time for things like TCP connections. The reason I've left the input/output assignment outside the loop is because they aren't really necessary for the IPsec dst's, and if it were in the loop then we'll have to do the same child processing in ___dst_free as well. I've tested this with an ESP/IPCOMP tunnel and I can confirm that it does fix the problem. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [AGPGART] If we can't do AGP x8 in v3 mode, just drop back to x4. This should stop people seeing crazy stuff like agpgart trying to set itself to x0 mode when it sees a x8 bridge and a x4 card. Signed-off-by: Dave Jones [AGPGART] Show the untampered arguments in debug printk agp_v3_parse_one() does some changes to these args by the time we get to the printk. It'll be useful to know what they started at. Signed-off-by: Dave Jones PPC: Make Motorola CPM2 I/O core support more generic. It's used on more than one CPU. [IPV4]: Fix interface selection in multicast sockops. PPC: Move CPM2 common core routines to arch/ppc/syslib/ [AGPGART] Improved AGPx8 handling. If something fails, we should now explain what happened, before we fall back to AGPx4 gracefully. Signed-off-by: Dave Jones [AGPGART] Extra debugging info just in case. Signed-off-by: Dave Jones [AGPGART] Remove typo from comment Signed-off-by: Dave Jones [NET]: Tidy somaxconn sysctl doc. PPC: Add support for ADS8272 board. From Kumar Gala [TG3]: Always do 4gb tx dma test, and fix the test. Based upon a patch from Sun. [TCP]: No vegas by default just yet. fix throttle to limit number of requests to 50 on wire to server at one time. Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] add new via-velocity gigabit ethernet driver Contributed by VIA, cleaned up by Alan. UART driver for Motorola CPM/CPM2 I/O core on 8xx/8xxx chips. Remove old MPC82xx (CPM2) uart driver PPC SBC82xx: Move RTC to 0xd0000000 to make room for PCI I/O stuff. PCI host bridge support for Motorola MPC826x Add support for i8259 IRQ controller on WindRiver PowerQUICC II [PATCH] ia64: Support SN platform specific error features The SN prom supports fine grained error handling features, the OS needs to tell the prom if the OS expects to use these platform specific features. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ia64: update sn2_defconfig Small patch to update the sn2_defconfig file. I just did a 'make oldconfig' with the current sn2_defconfig and removed 8250 support. Signed-off-by: David Mosberger [IDE] Introduce SATA enable/disable config option This config option is introduced to help reduce user confusion, and eliminate conflicts between the IDE driver (which is often built into user kernels) and the new libata SATA driver. [libata] Add NVIDIA SATA driver [libata] put nvidia in Kconfig, in alphabetical order ia64: Fix ia32 partial-page-list code to compile cleanly in more configs. ia64: Nuke two warnings in mca.c that showed in the simulator configuration. Fix /proc/fs/cifs/Stats to handle larger return data, and correct Kconfig reference to /proc/fs/cifs/Stats Signed-off-by: Steve French (sfrench@us.ibm.com) [libata/IDE nvidia] shuffle pci ids * Mark conflicting PCI ids with CONFIG_BLK_DEV_IDE_SATA * Move not-yet-released PCI ids to libata sata_nv driver [ACPI] *** Warning: "acpi_register_gsi" [drivers/serial/8250_acpi.ko] undefined! Signed-off-by: Andrew Morton [ACPI] mp_find_ioapic() oops from mp_register_gsi() on device resume Signed-off-by: Andrew Morton [ACPI] delete "__init" from x86_64 version of mp_find_ioapic() Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton [ACPI] Fix a lockup which Sid Boyce discovered with IOAPIC disabled. The problem was that drivers/serial/8250_acpi.c found COM1 in the ACPI namespace and called acpi_register_gsi() to set up its IRQ. ACPI tells us that the COM1 IRQ is edge triggered, active high, but acpi_register_gsi() was ignoring the edge_level argument, so it blindly set the COM1 IRQ to be level-triggered. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Change new Motorola copyright notices and email addresses to Freescale. Requested by Kumar Gala Workaround for MPC826x PCI erratum #9. fix typo in cifs kernel config option title Signed-off-by: Steve French (sfrench@us.ibm.com) [SPARSE]: Get rid of warning in irtty_ioctl(). Don't really need verify_area because result of copy_to_user is checked. Add annotation to get rid of sparse warnings. Signed-off-by: Stephen Hemminger Signed-off-by: Jean Tourrilhes Signed-off-by: David S. Miller [SPARSE]: Add annotations to sock_filter.h Since sock_fprog is argument in ioctl, the filter pointer needs to be annotated. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: Fix bridge sysfs improprely initialized kobject. The bridge sysfs interface introduced around 2.6.7-rc1 created a bad entry in /sys because it didn't initialise the name member of the kobject. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [SPARSE]: Annotate csum_and_copy_to_user(). [SPARSE]: Get rid of warning in bridge ethtool ioctl. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [SPARSE]: Fix another net warning. Get rid of warning from assignment in conditional. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Cset exclude: kuznet@ms2.inr.ac.ru|ChangeSet|20040616204246|05149 [NET]: In unregister_netdevice(), do synchronize_net() before final dev_put(). This way we make sure that all destination cache updates to remove references to this device are seen by entire system before final destruction of the device. [ACPI] PCI bus numbering workaround for ServerWorks from David Shaohua Li http://bugzilla.kernel.org/show_bug.cgi?id=1662 [IPV6]: Fix OOPS in fragmentation. Incorrect SKB pointer is passed to output() callback in ip6_fragment(). Work done by James Morris and Yoshifuji Hideaki. Signed-off-by: James Morris Signed-off-by: Yoshifuji Hideaki Signed-off-by: David S. Miller [ARM] Consolidate various ARM timer fns. into single timer_tick() call. Signed-off-by: Deepak Saxena [PATCH] USB: Only process ports with change events pending This patch adds a bit-array to the hub driver's private data structure, used for storing the contents of the hub's interrupt status message. That message indicates which ports have events pending (and whether the hub itself has events pending). By only polling the status of the ports listed in the bit-array we can save a fair amount of overhead in hub communication. (The #error test added to hub.h is a little awkward, but it's purely precautionary -- it won't matter until someone decides to support hubs with more than 31 ports!) Also included in the patch, since this seemed the perfect opportunity for it, is Byron's suggestion for handling hub events in the order in which they were received. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: PhidgetServo driver fixes Here is a patch for the phidgetservo driver -- it was using memory after kfree(), and using driver_info is much nicer. :) Signed-off-by: Greg Kroah-Hartman [PATCH] proper bios handoff in ehci-hcd Stuart Hayes here at Dell has identified this or/and mix-up in the ehci-hcd driver. Because of this, ehci-hcd is not properly released by BIOSes supporting full 2.0 and port behavior can then become erratic. (Code predates general availability of such BIOS firmware. This version of the patch also fixes minor linewrap issues.) From: Gary Lerhaupt Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add support for Buffalo LUA-U2-KTX Add support for Buffalo's LUA-U2-KTX, which is a AX8817X based usb ethernet adapter. I just added the USB id and it worked like a dream. From: Neil Bortnak Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: Lexar Jumpshot CF reader This patch is required to fix up the jumpshot driver, and to supress the 'unneeded entry' message for another device which uses the same VID/PID/rev for multiple different versions of the device. Alan Stern cooked this patch up, originally. Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: unusual_devs.h update On Thu, 17 Jun 2004, Daniel Nouri wrote: > I get this message when inserting my USB MMC card reader: > > usb 3-1: new full speed USB device using address 4 > usb.agent[5388]: usb-storage: already loaded > usb-storage: This device (04e6,0006,0205 S 01 P 01) has an unneeded Protocol entry in unusual_devs.h > Please send a copy of this message to Thanks for letting us know. This patch will eliminate that log message. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix endian bug in g_file_storage This patch fixes a couple of places in g_file_storage where I forgot to use proper byte-swapping. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman ia64: Squish compiler-warning in perfmon.c when compiling for UP. [ARM] Remove ADIFCC machine type The code is completely out of date, I am no longer maintaining it, and nobdy has volunteered to do so; therefore, I am killing it. Signed-off-by: Deepak Saxena ia64: Squish some more hazards & warnings for UP compile. ia64: Fix build-problem when CONFIG_IA32 is not enabled. Without this fix, you'll get unresolved references to sys_rt_sigaction(). [PATCH] ia64: fix SN2 interrupt rerouting Signed-off-by: Patrick Gefre Signed-off-by: David Mosberger [PATCH] ia64: switching between CPEI & CPEP A couple of months ago Hidetoshi Seto from Fujitsu proposed a patch to provide similar switching between interrupt mode and polling mode for corrected platform events (CPE) as we have for processor events (CMC) [with the obvious difference that not all platforms support an interrupt for CPE]. I dusted it off and made a couple of very minor cleanups (which Seto-san checked out last night on his test setup and confirmed still passes). Signed-off-by: Tony Luck Signed-off-by: David Mosberger [XFS] No longer hold the BKL for the entire ioctl operation, its not needed here. SGI Modid: xfs-linux:xfs-kern:173032a Signed-off-by: nathans@sgi.com [XFS] Remove a couple of redundant NULL parent inode pointer checks. SGI Modid: xfs-linux:xfs-kern:173033a Signed-off-by: nathans@sgi.com [XFS] Fix xfs_lowbit64, it mishandled zero in the high bits. Cleanup a couple of other ffs users, since ffs(0) is apparently undefined on some architectures. SGI Modid: xfs-linux:xfs-kern:173034a Signed-off-by: nathans@sgi.com [XFS] sparse: fix uses of macros before their definitions, etc. SGI Modid: xfs-linux:xfs-kern:173194a Signed-off-by: nathans@sgi.com [XFS] Change things to use new version of xfs_dm_init/xfs_dm_exit SGI Modid: xfs-linux:xfs-kern:173206a Signed-off-by: nathans@sgi.com [XFS] Fix non-dmapi build SGI Modid: xfs-linux:xfs-kern:173222a Signed-off-by: nathans@sgi.com [XFS] Ensure buffers that map to unwritten extents are only submitted when properly setup. SGI Modid: xfs-linux:xfs-kern:173555a Signed-off-by: nathans@sgi.com [XFS] Sanitise the ACL initialisation macros. SGI Modid: xfs-linux:xfs-kern:173559a Signed-off-by: nathans@sgi.com [XFS] Remove unused MAC macros, never needed on Linux. SGI Modid: xfs-linux:xfs-kern:173561a Signed-off-by: nathans@sgi.com [XFS] Remove the one remaining, broken use of XFS_WRITEIO_LOG and sanitize direct IO map blocks call. SGI Modid: xfs-linux:xfs-kern:173562a Signed-off-by: nathans@sgi.com [XFS] Fix flags argument to xfs_incore call on attr removal. SGI Modid: xfs-linux:xfs-kern:173563a Signed-off-by: nathans@sgi.com [XFS] Fix a race condition in the undo-delayed-write buffer routine. SGI Modid: xfs-linux:xfs-kern:173564a Signed-off-by: nathans@sgi.com [XFS] Fix up memory allocators to be more resilient. SGI Modid: xfs-linux:xfs-kern:173571a Signed-off-by: nathans@sgi.com [ACPI] fix passive cooling mode indicator (Luming Yu) http://bugzilla.kernel.org/show_bug.cgi?id=1770 [ACPI] avoid spurious interrupts on VIA http://bugzilla.kernel.org/show_bug.cgi?id=2243 [XFS] Fix for NFS+XFS data corruption problem. See http://oss.sgi.com/bugzilla/show_bug.cgi?id=198 for full details. SGI Modid: xfs-linux:xfs-kern:173598a Signed-off-by: nathans@sgi.com Fix typo in name of CIFS Kconfig option and add rename stats [PATCH] ppc64: Implement CONFIG_PREEMPT This implements CONFIG_PREEMPT for ppc64. Aside from the entry.S changes to check the _TIF_NEED_RESCHED bit when returning from an exception, there are various changes to make the ppc64-specific code preempt-safe, mostly adding preempt_enable/disable or get_cpu/put_cpu calls where needed. I have been using this on my desktop G5 for the last week without problems. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] ppc64: Optimize exception/syscall entry/exit This rewrites the PPC64 exception entry/exit routines to make them smaller and faster. In particular we no longer save all of the registers for the common exceptions - system calls, hardware interrupts and decrementer (timer) interrupts - only the volatile registers. The other registers are saved and restored (if used) by the C functions we call. This involved changing the registers we use in early exception processing from r20-r23 to r9-r12, which ended up changing quite a lot of code in head.S. Overall this gives us about a 20% reduction in null syscall time. Some system calls need all the registers (e.g. fork/clone/vfork and [rt_]sigsuspend). For these the syscall dispatch code calls a stub that saves the nonvolatile registers before calling the real handler. This also implements the force_successful_syscall_return() thing for ppc64. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [XFS] Fix up highmem build and error handling on inode shrink register. SGI Modid: xfs-linux:xfs-kern:173764a Signed-off-by: nathans@sgi.com [PATCH] alpha: fix discontigmem+initrd build From: Ivan Kokshaysky Compilation fails due to incorrect usage of NODE_DATA(). Reported by hpa. [ACPI] handle SCI override to nth IOAPIC http://bugzilla.kernel.org/show_bug.cgi?id=2835 [IPV6] make several functions static in ip6_tunnel that should be. [IPV6] XFRM: add missing xfrm6_policy_check(). [IPV6] XFRM: support (uncompressed) tunnel mode ipcomp6 using xfrm6_tunnel infrastructure. [XFRM] fix dependency issues for CONFIG_IPV6=m. [ARM] Add support code for ARM hardware vector floating point This cset adds the code to handle the hardware vector floating point unit found on some ARM926 and later CPUs. The hardware provides an implementation for the common cases, and bounces exceptions for other cases, which have to be handled in software, and signalling SIGFPE as appropriate. [PATCH] mm: flush TLB when clearing young Traditionally we've not flushed TLB after clearing the young/referenced bit, it has seemed just a waste of time. Russell King points out that on some architectures, with the move from 2.4 mm sweeping to 2.6 rmap, this may be a serious omission: very frequently referenced pages never re-marked young, and the worst choices made for unmapping. So, replace ptep_test_and_clear_young by ptep_clear_flush_young throughout rmap.c. Originally I'd imagined making some kind of TLB gather optimization, but don't see what now: whether worth it rather depends on how common cross-cpu flushes are, and whether global or not. ppc and ppc64 have already found this issue, and worked around it by arranging TLB flush from their ptep_test_and_clear_young: with the aid of pgtable rmap pointers. I'm hoping ptep_clear_flush_young will allow ppc and ppc64 to remove that special code, but won't change them myself. It's worth noting that it is Andrea's anon_vma rmap which makes the vma available for ptep_clear_flush_young in page_referenced_one: anonmm and pte_chains would both need an additional find_vma for that. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mm: pretest pte_young and pte_dirty Test for pte_young before going to the costlier atomic test_and_clear, as asm-generic does. Test for pte_dirty before going to the costlier atomic test_and_clear, as asm-generic does (I said before that I would not do so for pte_dirty, but was missing the point: there is nothing atomic about deciding to do nothing). But I've not touched the rather different ppc and ppc64. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: support for e500 and 85xx Here is both a GNU style and BK patch for adding support for the e500 core and 85xx platform to 2.6. This is pretty much a direct port from 2.4 with a bit of cleanup around the edges. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32 irq.c cpumask fix 2.6.7-rc3-mm1 changed cpumask_t from ulong to a struct, causing compile-time errors in arch/ppc/kernel/irq.c. Proposed fix below. Tested on a G3. Signed-off-by: Mikael Pettersson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: avoid multiline /proc/cmdline content on iSeries /proc/cmdline is filled via an OS400 call iSeries_init(). It scans the returned data from the end, instead of the beginning. This leads to multiple lines in /proc/cmdline Just scan from the beginning and stop at the first newline. This patch changes also the /proc/iSeries/mf/*/cmdline interface to do the same as the initial setup. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add PPC4xx MAINTAINERS entry, merge CREDITS from 2.4 Add myself as the PPC4xx maintainer. Merge CREDITS entry from 2.4 Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Handle non-readable binfmt_misc executables I work in a group that works on enabling the IA-32 Execution Layer (http://www.intel.com/pressroom/archive/releases/20040113comp.htm) on Linux. In a few words - this is a dynamic translator for IA-32 binaries on IPF platform. Following David Mosberger's advice - we use the binfmt_misc mechanism for the invocation of the translator whenever the user tries to exec an IA-32 binary. The EL is meant to help in the migration path from IA-32 to IPF. From our beta customers we learnt that at first stage - they tend to keep their environment mostly intact, using the legacy IA-32 binaries. Such an environment has, naturally, setuid and non-readable binaries. It will be useless to ask the administrator to change the settings of such an environment - some of them are very complex, and the administrators are reluctant to make any changes in a system that already proved itself to be robust and secure. So, our target with these patches is not to enhance the support for scripts but rather to allow a translator to be integrated into a working environment that is not (and should not be) aware to the fact it's being emulated. As I said before - it is practically hopeless to expect an administrator of such a system to change it so that it will suit the current behavior of binfmt_misc. But, even if we could do that, I'm not sure it would be a good idea - these changes are likely to be less secure than the suggested patches - - In order to execute non-readable binaries the binary will have to be made readable, which is obviously less secure than allowing only a trusted translator to read it - There will be no way for the translator to calculate the accurate AT_SECURE value for the translated process. This might end up with the translated process running in a non-secured mode when it actually needs to be secured. I prepared a patch that solves a couple of problems that interpreters have when invoked via binfmt_misc. currently - 1) such interpreters cannot open non-readable binaries 2) the processes will have their credentials and security attributes calculated according to interpreter permissions and not those of the original binary the proposed patch solves these problems by - 1) opening the binary on behalf of the interpreter and passing its fd instead of the path as argv[1] to the interpreter 2) calling prepare_binprm with the file struct of the binary and not the one of the interpreter The new functionality is enabled by adding a special flag to the registration string. If this flag is not added then old behavior is not changed. A preliminary version of this patch was sent to the list on 9/1/2003 with the title "[PATCH]: non-readable binaries - binfmt_misc 2.6.0-test4". This new version fixes the concerns that were raised by the patch, except of calling unshare_files() before allocating a new fd. this is because this feature did not enter 2.6 yet. Arun Sharma says: We were going through an internal review of this patch: http://marc.theaimsgroup.com/?l=linux-kernel&m=107424598901720&w=2 which is in your tree already. I'm not sure if this line of code got sufficient review. + /* call prepare_binprm before switching to interpreter's file + * so that all security calculation will be done according to + * binary and not interpreter */ + retval = prepare_binprm(bprm); The case that concerns me is: unprivileged interpreter and a privileged binary. One can use binfmt_misc to execute untrusted code (interpreter) with elevated privileges. One could argue that all binfmt_misc interpreters are trusted, because only root can register them. But that's a change from the traditional behavior of binfmt_misc (and binfmt_script). (Update): Arun pointed out that calculating the process credentials according to the binary that needs to be translated is a bit risky, since it requires the administrator to pay extra attention not to register an interpreter which is not intended to run with root credentials. After discussing this issue with him, I would like to propose a modified patch: The old patch did 2 things - 1) open the binary for reading and 2) calculate the credentials according to the binary. I removed the riskier part of changing the credentials calculation, so the revised patch only opens the binary for reading. It also includes few words of warning in the description of the 'open-binary' feature in binfmt_misc.txt, and makes the function entry_status print the flags in use. As for the 'credentials' part of the patch, I will prepare a separate patch for it and send it again to the LKML, describe the problem and ask for people comments. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Enable clustering in the 53c700 driver Signed-off-by: James Bottomley [PATCH] binfmt_misc: improve calculation of interpreter's credentials This patch allows for misc binaries to run with credentials and security token that are calculated according to the binaries, and not according to the interpreter, which is the legacy behavior of binfmt_misc. The way it is done is by calling prepare_binprm, which is where these attributes are calculated, before switching the 'file' field in the bprm from the binary to the interpreter. This feature should be used with care, since the interpreter will have root permissions when running a setuid binary owned by root. Please note - - Only root can register an interpreter with binfmt_misc. The feature is documented and the administrator is advised to handle it with care - The new feature is enabled only with a special flag in the registration string. When this flag is not specified the current behavior of binfmt_misc is kept - This is the only 'right' way for an interpreter to know the correct AT_SECURE value for the interpreted binary From: Chris Wright This patchset looks OK, except for one problem. It installs the fd (which could've been unreadable) without unsharing the ->files. So someone can use this to read unreadable yet executable files. Here's a patch which fixes that up. I added one bit that's commented out because I'm not positive if a final steal_locks() is needed. I did a fair amount of rearranging to simplify the error conditions relative to the fd_install(), and unshare_files(). From: Chris Wright I found that the intel patchset (and mine as well) leaked i_writecount on the original executed file. In addition, I verified that the steal_locks() bit is indeed needed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Clean up asm/pgalloc.h include This patch cleans up needless includes of asm/pgalloc.h from the fs/ kernel/ and mm/ subtrees. Compile tested on multiple ARM platforms, and x86, this patch appears safe. This patch is part of a larger patch aiming towards getting the include of asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at things like mm_struct and friends. I suggest testing in -mm for a while to ensure there aren't any hidden arch issues. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Clean up asm/pgalloc.h include This patch cleans up needless includes of asm/pgalloc.h from the drivers/ subtree. drivers/char/mem.c has been compile tested; the others have not, since they are for non-x86 and non-ARM architectures. This patch is part of a larger patch aiming towards getting the include of asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at things like mm_struct and friends. I suggest testing in -mm for a while to ensure there aren't any hidden arch issues. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Clean up asm/pgalloc.h include 3 This patch cleans up needless includes of asm/pgalloc.h from the arch/i386/ subtree. Compile tested on x86_pc SMP. [I also tried VISWS + SMP without PM doesn't build in smpboot.c, though I don't believe its caused by this patch. With PM, fails to link complaining maxcpus is undefined. Therefore, I presume VISWS + SMP is an invalid configuration.] This patch is part of a larger patch aiming towards getting the include of asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at things like mm_struct and friends. I suggest testing in -mm for a while to ensure there aren't any hidden arch issues. The outstanding list of files for other architectures can be found at http://www.arm.linux.org.uk/misc/pgalloc.txt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: uninline __pte_free_tlb() The pgalloc.h changes broke ppc64: In file included from include/asm-generic/tlb.h:18, from include/asm/tlb.h:24, from arch/ppc64/mm/hash_utils.c:48: include/asm/pgalloc.h: In function `__pte_free_tlb': include/asm/pgalloc.h:110: dereferencing pointer to incomplete type include/asm/pgalloc.h:111: dereferencing pointer to incomplete type Uninlining __pte_free_tlb() fixes that. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: block allocator optimizations From: From: The current reiserfs allocator pretty much allocates things sequentially from the start of the disk, it works very nicely for desktop loads but once you've got more then one proc doing io data files can fragment badly. One obvious solution is something like ext2's bitmap groups, which puts file data into different areas of the disk based on which subdirectory they are in. The problem with bitmap groups is that if you've got a group of subdirectories their contents will be spread out all over the disk, leading to lots of seeks during a sequential read. This allocator patch uses the packing locality to determine which bitmap group to allocate from, but when you create a file it looks in the bitmaps to see how 'full' that packing locality already is. If it hasn't been heavily used yet, the packing locality is inherited from the parent directory putting files in new subdirs close to the parent subdir, otherwise it is the inode number of the parent directory putting new files far away from the parent subdir. The end result is fewer bitmap groups for the same working set. For example, one test data set created by 20 procs running in parallel has 6822 subdirs. And with vanilla reiserfs that would mean 6822 packing localities. This patch turns that into 26 packing localities. This makes sequential reads of big directory trees more efficient, but it also makes the btree more efficient in general. Things end up sorted better because groups of subdirs end up with similar keys in the btree, instead of being spread out all over. The bitmap grouping code tries to use the start of each bitmap group for metadata, and offsets the data slightly. The data and metadata are still close together, but not completely intermixed like they are in the default allocator. The end result is that leaf nodes tend to be close to each other, making metadata readahead more effective. The old block allocator had the ability to enforce a minimum allocation size, but did not use it. It now tries to do a pass looking for larger allocation chunks before falling back to the old behaviour of taking any blocks it can find. The patch changes the defaults to: mount -o alloc=skip_busy:dirid_groups:packing_groups You can get back the old behaviour with mount -o alloc=skip_busy mount -o alloc=dirid_groups will turn on the bitmap groups mount -o alloc=packing_groups turns on the packing locality reduction code mount -o alloc=skip_busy:dirid_groups turns on both dirid_groups and skip_busy Finally the patch adds a mount -o alloc=oid_groups, which puts files into bitmap groups based on a hash of their objectid. This would be used for databases or other situations where you have a limited number of very large files. This command will tell you how many packing localities are actually in use: debugreiserfs -d /dev/xxx | grep '^|.*SD' | sed 's/^.....//' | awk '{print $1}' | sort -u | wc -l Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: block allocator should not inherit "packing locality 1" reiserfsck --rebuild-tree expects the only key with a packing locality of 1 to be for the root directory (key [1 2]). The new block allocator inherited that packing locality down to subdirectories, which triggers failures in reiserfsck --rebuild-tree reiserfsck in readonly check mode doesn't complain about this, thanks to Jeff Mahoney for finding it. The fix is to never inherit packing locality #1 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: remove debugging warning from block allocator Remove debugging warning from the reiserfs block allocator code Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: btree readahead Walking the btree can trigger a number of single block synchronous reads. This patch does btree readahead during operations that are likely to be long and sequential. So far, that only includes directory reads and truncates, but it can make both much faster. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs data logging support Add data=journal support for reiserfs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PATCH: Further aacraid work I've been going through Mark's changes with a fine toothcomb and this merges most of them. Its tested on 64bit SMP hardware and seems to be fine. There are a couple of Mark's changes I've left out for now but there isnt really an easy way to break down the changes further. This fixes a whole host of problems including random hangs under high load Signed-off-by: Alan Cox Original contribution under GPL from Adaptec, updates checking by Red Hat Signed-off-by: James Bottomley [PATCH] Fixes for idr code * On a 32-bit architecture, the idr code will cease to work if you add more than 2^20 entries. You will not be able to find many of the entries. The problem is that the IDR code uses 5-bit chunks of the number and the lower portion used by IDR is 24 bits, so you have one bit that leaks over into the comparisons that should not be there. The solution is to mask off that bit before doing IDR processing. This actually causes the POSIX timer code to crash if you create that many timers. I have included an idr_test.tar.gz file that demonstrates this with and without the fix, in case you need more evidence :). * When the IDR fills up, it returns -1. However, there was no way to check for this condition. This patch adds the ability to check for the idr being full and fixes all the users. It also fixes a problem in fs/super.c where the idr code wasn't checking for -1. * There was a race condition creating POSIX timers. The timer was added to a task struct for another process then the data for the timer was filled out. The other task could use/destroy time timer as soon as it is in the task's queue and the lock is released. This moves settup up the timer data to before the timer is enqueued or (for some data) into the lock. * Change things so that the caller doesn't need to run idr_full() to find out the reason for an idr_get_new() failure. Just return -ENOSPC if the tree was full, or -EAGAIN if the caller needs to re-run idr_pre_get() and try again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] idr: remove counter bits from id's idr_get_new() currently returns an incrementing counter in the top 8 bits of the counter. Which means that most users have to mask it off again, and we only have a 24-bit range. So remove that counter. Also: - Remove the BITS_PER_INT define due to namespace collision risk. - Make MAX_ID_SHIFT 31, so counters have a 0 to 2G-1 range. - Why is MAX_ID_SHIFT using sizeof(int) and not sizeof(long)? If it's for consistency across 32- and 64-bit machines, why not just make it "31"? - Does this still hold true with the counter removed? /* We can only use half the bits in the top level because there are only four possible bits in the top level (5 bits * 4 levels = 25 bits, but you only use 24 bits in the id). */ If not, what needs to change? Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IDR fixups There were definately some problems in there. I've made some changes and tested with a lot of bounds. I don't have a machine with enough memory to fill it up (it would take ~16GB on a 64-bit machine), but I use the "above" code to simulate a lot of situations. The problems were: * IDR_FULL was not the right value * idr_get_new_above() was not defined in the headers or documented. * idr_alloc() bug-ed if there was a race and not enough memory was allocated. It should have returned NULL. * id will overflow when you go past the end. * There was a "(id >= (1 << (layers*IDR_BITS)))" comparison, but at the top layer it would overflow the id and be zero. * The allocation should return ENOSPC for an "above" value with nothing above it, but it returned EAGAIN. I have not tested on 64-bits (as I don't have a 64-bit machine). I've included the files, a diff from the previous version, and my test programs. For the test programs, idr_test will just attempt to allocate elements, check them, free them, and check them again. idr_test2 will allocate element with between them. idr_test3 just tests some bounds and tries all values with just a few in the idr. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i2c fixups for idr API change Fix up the i2c code which uses the IDR library. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add rlimit entry for controlling queued signals The following patches introduce per user rlimits for both queued signals and POSIX message queues. The changes touch all the arches resource.h files as well as init_task.c to get the rlimit defaults setup. Both require caching the user_struct to avoid problems with setuid(). The signal changes makes some small changes to send_signal() to pass along the task being signalled to get proper accounting for signals initiated in interrupt. Thanks to Marcelo for getting this one going. This patch: Add an rlimit entry to control the maximum number of pending signals a user may have. This is essentially just the resource.h changes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add sigpending field to user_struct Add sigpending field to user_struct, and make sure it's properly initialized. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add simple get_uid() helper Add simple helper function to grab a reference to a user_struct. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add rlimit entry for POSIX mqueue allocation Add an rlimit entry to control the maximum number of bytes a user can allocate to a POSIX mqueue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add mq_bytes to user_struct Add mq_bytes field to user_struct, and make sure it's properly initialized. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: add mq_attr_ok() helper Add helper function mq_attr_ok() to do mq_attr sanity checking, and do some extra overlow checking. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: enforce rlimits for POSIX mqueue allocation Add a user_struct to the mq_inode_info structure. Charge the maximum number of bytes that could be allocated to a mqueue to the user who creates the mqueue. This is checked against the per user rlimit. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: adjust default mqueue sizes Lower default sizes for POSIX mqueue allocation now that rlimits are in place. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] HPET driver The driver supports the High Precision Event Timer. The driver has adopted a similar API to the Real Time Clock driver. It can support any number of HPET devices and the maximum number of timers per HPET device. For further information look at the documentation in the patch. Thanks to Venki at Intel for testing the driver on X86 hardware with HPET. HPET documentation is available at http://www.intel.com/design/chipsets/datashts/252516.htm Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SCSI Flexible timout intfrastructure The object of this infrastructure is to give HBAs early warning that error handling is about to happen and also provide them with the opportunity to do something about it. It introduces the extra template callback: eh_timed_out() which scsi_times_out() will call if it is populated to notify the LLD that an outstanding command took a timeout. There are three possible returns: EH_HANDLED: I've fixed the problem, please complete the command for me (as soon as the timer fires, scsi_done will do nothing, so the timer itself will call a special version of scsi_done that doesn't check the timer). EH_NOT_HANDLED: Invoke error recovery as normal EH_RESET_TIMER: The command will complete, reset the timer to its original value and start it ticking again. Signed-off-by: James Bottomley Based on work by Christoph Hellwig and Luben Tuikov [PATCH] Remove PC9800 support PC9800 sub-arch is incomplete, hackish (at least in IDE), maintainers don't reply to emails and haven't touched it in awhile. Can't even config it to try to build it without other patches to the kernel tree. bk-rm-script: #! /bin/sh bk rm -r ./arch/i386/mach-pc9800 bk rm -r ./arch/i386/boot98 bk rm ./drivers/char/lp_old98.c bk rm ./drivers/serial/serial98.c bk rm ./drivers/scsi/scsi_pc98.c bk rm ./drivers/scsi/pc980155.c bk rm ./drivers/scsi/pc980155.h bk rm ./drivers/block/floppy98.c bk rm ./drivers/input/keyboard/98kbd.c bk rm ./drivers/input/serio/98kbd-io.c bk rm ./drivers/input/misc/98spkr.c bk rm ./drivers/input/mouse/98busmouse.c bk rm ./drivers/ide/legacy/pc9800.c bk rm ./drivers/ide/legacy/hd98.c bk rm -r ./include/asm-i386/mach-pc9800 bk rm ./include/asm-i386/pc9800_sca.h bk rm ./include/asm-i386/pc9800.h bk rm ./fs/partitions/nec98.c bk rm ./fs/partitions/nec98.h bk rm ./sound/isa/cs423x/pc98.c bk rm ./sound/isa/cs423x/pc9801_118_magic.h bk rm ./sound/isa/cs423x/sound_pc9800.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] more PC9800 removal Removes more PC9800 code. Requires: bk rm drivers/char/upd4990a.c bk rm drivers/net/ne2k_cbus.c bk rm drivers/net/ne2k_cbus.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pc9800: merge std_resources.c back into setup.c std_resources.{c,h} was only split off due to pc9800 wanting to override it. With it gone, it might as well be merged back in. Doesn't change any code. It was compiled and booted. This time this also actually doesn't break compilation of any of the subarches. That's to say, any further. I guess it might have been my .config (my regular PC config, with just the subarch switched through menuconfig) or O=, but only ELAN actually compiled. Voyager and VISWS bombed out at the final link and NUMAQ much sooner (with "physnode_map undeclared" during compilation of numaq.c). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Ext3: Retry allocation after transaction commit (v2) Here is a reworked version of my patch to ext3 to retry certain filesystem operations after an ENOSPC error. The ext3_should_retry_alloc() function will not wait on the currently running transaction if there is a currently active handle; hence this should avoid deadlocks in the Lustre use case. The patch is versus BK-recent. I've also included a simple, reliable test case which demonstrates the problem this patch is intended to fix. (Note that BK-recent is not sufficient to address this test case, and waiting on the commiting transaction in ext3_new_block is also not sufficient. Been there, tried that, didn't work. We need to do the full-bore retry from the top level. The ext3_should_retry_alloc() will only wait on the committing transaction if there is an active handle; hence Lustre will probably also need to use ext3_should_retry_alloc() if it wants to reliably avoid this particular problem.) #!/bin/sh # # TEST_DIR=/tmp IMAGE=$TEST_DIR/retry.img MNTPT=$TEST_DIR/retry.mnt TEST_SRC=/usr/projects/e2fsprogs/e2fsprogs/build MKE2FS_OPTS="" IMAGE_SIZE=8192 umount $MNTPT dd if=/dev/zero of=$IMAGE bs=4k count=$IMAGE_SIZE mke2fs -j -F $MKE2FS_OPTS $IMAGE function test_log () { echo $* logger -p local4.notice $* } mkdir -p $MNTPT mount -o loop -t ext3 $IMAGE $MNTPT test_log Retry test: BEGIN for i in `seq 1 3` do test_log "Retry test: Loop $i" echo 2 > /proc/sys/fs/jbd-debug while ! mkdir -p $MNTPT/foo/bar do test_log "Retry test: mkdir failed" sleep 1 done echo 0 > /proc/sys/fs/jbd-debug cp -r $TEST_SRC $MNTPT/foo/bar 2> /dev/null rm -rf $MNTPT/* done umount $MNTPT test_log "Retry test: END" akpm@osdl.org Rework the code to make it a formal JBD API entry point. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use first-fit for pty allocation (With Andrew Morton). The current dynamic pty allocation scheme has a few problems: - pty numbers grow to be very large, causing wtmp file bloat. - Seems to break libc5 and some old applications So change it to do first-fit. An IDR tree is used to provide a logarithmic-time search. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small tweaks to standard resource stuff Various small tweaks. Compiled and booted. 1. add IORESOURCE_BUSY | IORESOURCE_MEM also for the kernel code and data resources. I don't believe this actually matters one bit, but they're hooked into a BUSY/MEM parent ("System RAM") and marking them busy seems to make sense. 2. delete the .start = 1M default for the kernel code resource. This isn't actually a change; it's set to virt_to_phys(_text) in setup_arch() overriding any default anyways. 3. s/vram_resource/video_ram_resource/. Lines up much nicer with video_rom_resource... 4. s/checksum/romchecksum/. setup.c is a fairly large file, and "checksum" pollutes the namespace. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] same small resource tweaks, x86_64 version The same small tweaks for x86_64. Just to keep the two in sync. One additional wrinkle: vram_resource was exported to e820.c, which didn't actually use it. Undo that. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] getgroups16() fix sys_getgroups16 (or rather groups16_to_user()) returns large gids truncated. Needs to be fixed, one way or another. Don't know why the other similar casts are still there. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Check return status of register calls in i82365 i82365 calls driver_register and platform_device_register without checking their return values. This patch fixes that. It also runs platform_device_register() prior to isa_probe() so we don't have to undo ise_probe()'s effects if platform_device_register() ends up failing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] invalidate_inodes2(): mark pages not uptodate Andrea Arcangeli points out that invalidate_inode_pages2() is supposed to mark mapped-into-pagetable pages as not uptodate so that next time someone faults the page in we will go get a new version from backing store. The callers are the direct-io code and the NFS "something changed on the server" code. In both these cases we do need to go and re-read the page. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix read() vs truncate race do_generic_mapping_read() { isize1 = i_size_read(); ... readpage copy_to_user up to isize1; } readpage() { isize2 = i_size_read(); ... read blocks ... zero-fill all blocks past isize2 } If a second thread runs truncate and shrinks i_size, so isize1 and isize2 are different, the read can return up to a page of zero-fill that shouldn't really exist. The trick is to read isize1 after doing the readpage. I realised this is the right way to do it without having to change the readpage API. The patch should not cost any cycles when reading from pagecache. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] io_apic.c code consolidation This cleans up io_apic.c a bit -- I do not really like 4 copies of same code. Ingo said: yeah, agreed - i checked & test it, it's ok. I made a small modification (see the patch below) to uninline the __modify_IO_APIC_irq() function - shaving 0.5K off the kernel's size. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: remove APIC_LOCKUP_DEBUG the patch below gets rid of APIC_LOCKUP_DEBUG. It has been in the kernel for more than 3 years and the message was only reported once during that period of time - and even in that case it was a side-effect of a really bad crash. The lockup workaround works, the debugging code can be moved out. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: remove io_apic_sync The patch below gets rid of io_apic_sync(). io_apic_sync() was introduced in 2.1.104 and it was originally done for masking and unmasking as well. Later the unmasking use got removed but the masking use lingered around. I dont think it was ever justified to do it and clearly since the lack of io_apic_sync() didnt break some of the other writes we do to the IO-APIC registers, it must be unnecessary in the masking case too. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ahc1542 !CONFIG_MCA build fix The old 1542 scsi driver is both ISA and MCA. The MCA portions are disabled when !CONFIG_MCA through the typical wrapper scheme (a la pci.h and !CONFIG_PCI). However... the driver unconditionally includes linux/mca.h which in turn unconditionally includes asm/mca.h. This breaks drivers on platforms with ISA but not MCA, like alpha. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Validate PM-Timer rate at boot time Add a check to the PM-Timer initialization code. It validates the PM-Timer rate against PIT channel 2 and rejects the PM-Timer if its rate is not withing 5% of the expected number. Rationale: The PMTMR timers of certain (older) mainboards are running at invalid rates, often much faster than the rate expected by the PM-Timer code. This causes the system clock to run much too fast. See also http://bugme.osdl.org/show_bug.cgi?id=2375 Possible workarounds are disabling the PM-Timer in the kernel config or disabling the PM-Timer at boot time through the "clock=tsc" parameter. However, we believe it is more user friendly to automatically validate the PM-Timer rate at boot time before using it as the system time source. Tested by me (with broken timer) and John Stultz (with good timer) and believed to be ok. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix 3c59x.c to allow 3c905c 100bT-FD Fix the 3c905C 10/100 transceiver initialisation woes. (This was reverted from 2.6.7-rcX, but the bug reporter said the failure turned out to be unrepeatable). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make the 3c59x/3c90x driver somewhat more reliable The existing driver violates basic PCI rules in several places making it unusable for basic things like DHCP in Fedora Core. This patch removes all the situations I can find where it writes to the device while in D3 state and breaks stuff. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] BSD accounting format rework BSD accounting format rework: Use all explicit and implicit padding in struct acct to - correctly report 32 bit uid/gid, - correctly report jobs (e.g., daemons) running longer than 497 days, - increase the precision of ac_etime from 2^-13 to 2^-20 (i.e., from ~6 hours to ~1 min. after a year) - store the current AHZ value. - allow cross-platform processing of the accounting file (limited for m68k which has a different size struct acct). - introduce versioning for smooth transition to incompatible formats in the future. Currently the following version numbers are defined: 0: old format (until 2.6.7) with 16 bit uid/gid 1: extended variant (binary compatible to v0 on M68K) 2: extended variant (binary compatible to v0 on everything except M68K) 3: a new binary incompatible format (64 bytes) 4: new binary incompatible format (128 bytes). layout of its first 64 bytes is the same as for v3. 5: marks second half of new binary incompatible format (128 bytes) (layout is not yet defined) All this is accomplished without breaking binary compatibility. 32 bit uid/gid support is compatible with the patch previously floating around and used e.g. by Red Hat. This patch also introduces a config option for a new, binary incompatible "version 3" format that - is uniform across and properly aligned on all platforms - stores pid and ppid - uses AHZ==100 on all platforms (allows to report longer times) Much of the compatibility glue goes away when v1/v2 support is removed from the kernel. Such a patch is at http://www.physik3.uni-rostock.de/tim/kernel/2.7/acct-cleanup-04.patch and might be applied in the 2.7 timeframe. The new v3 format is source compatible with current GNU acct tools (6.3.5). However, current GNU acct tools can be compiled for only one format. As there is no way to pass the kernel configuration to userspace, with my patch it will still only support the old v2 format. Only if v1/v2 support is removed from the kernel, recompiling GNU acct tools will yield v3 support. A preliminary take at the corresponding work on cross-platform userspace tools (GNU acct package) is at http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/ This version of the package is able to read any of the v0/v2/v3 formats, regardless of byte-order (untested), even within the same file. Cross-platform compatibility with m68k (v1 format) is not yet implemented, but native use on m68k should work (untested). pid and ppid are currently only shown by the dump-acct utility. Thanks to Arthur Corliss, Albert Cahalan and Ragnar Kjørstad for their comments, and to Albert Cahalan for the u64->IEEE float conversion code. Signed-off-by: Tim Schmielau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] iso9660: fix handling of inodes beyond 4GB This is my fourth attempt to patch the isofs code. It is similar to the last posting except this one implements the NFS get_parent() method which has always been missing. The original problem I set out to addresses is that the current iso9660 file system cannot reach inodes located beyond the 4GB barrier. This is caused by using the inode number as the byte offset of the inode data. Being 32-bits wide, the inode number is unable to reach inode data that does not reside on the first 4GB of the file system. This causes real problems with "growisofs" http://fy.chalmers.se/~appro/linux/DVD+RW/#isofs4gb and my pet project "shunt" http://www.serice.net/shunt/ This patch switches the isofs code from iget() to iget5_locked() which allows extra data to be passed into isofs_read_inode() so that inode data anywhere on the disk can be reached. The inode number scheme was also changed. Continuing to use the byte offset would have resulted in non-unique inodes in many common situations, but because the inode number no longer plays any role in reading the meta-data off the disk, I was free to set the inode number to some unique characteristic of the file. I have chosen to use the block offset which is also 32-bits wide. Lastly, the pre-patch code uses the default export_operations to handle accessing the file system through NFS. The problem with this is that the default NFS operations assume that iget() works which is no longer the case because of the necessity of switching to iget5_locked(). So, I had to implement the NFS operations too. As a bonus, I went ahead and implemented the NFS get_parent() method which has always been missing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] iso9660: NFS fix Make all inode numbers unique for images less than 128GB in size. Required for knfsd. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SCSI whitelist changes The BLIST_REPORTLUN2 blacklist item has exactly the behavior that the MYLEX DACARMRB (and SGI TP9100, which is really a 2Gb upgrade to the DACARMRB) need. These devices use a PQ of 1 instead of 3 for unconfigured luns, which means that every RAID has 32 luns, many or most of which are just phantoms. However, it does support Report Luns, and it returns the correct data. Signed-off-by: James Bottomley [PATCH] sisfb update 1.7.10 attached is an update for the sisfb driver to version 1.7.10. This update includes - fixes for pure 64bit and 32/64bit mixed systems (add ioctl conversion; fix variable sizes, etc; REQUIRED for current X.org/XFree86 on 64bit systems, even if pure 64bit), - fixes for 301C video bridge, (scales TV output correctly now) - fixes for 1600x1200 and 1400x1050 LCD panels, - many fixes for 661/741/760 (amongst others, proper LFB support for the 760 and corrections for SiS' new BIOS data layout; would lead to display corruption with old driver) - add support for many modes for LCD which were unsupported previously, - add support for HiVision and YPbPr HDTV - "vga=" statement now honoured properly (sisfb will set the same mode as the kernel did by default) - use LCD native resolution mode if no mode is given - a major clean up of main driver code, - radical removal of duplicate (or nearly duplicate) code, - switched to 2.6 module_param macros, - enhanced communication with the X driver, - added eventual POSTing of SiS300/305 card for non-x86 archs, - added ability to relocate the image on the TV screen using a userland tool, - added Documentation/fb/sisfb.txt (why the heck was this missing?!) - small fix for SiS DRM driver (match 32/64bit fixes mentioned above) (cast the data passed to sis_free as u32) - make driver re-entrant by avoiding static structures and variables. As usual, heavily tested. The mode switching code is even lab-tested by SiS (although 100% written by me). Please apply asap (especially since 64bit systems were not properly supported previously; as mentioned, current X.org/XFree86 needs this update for proper communication with the framebuffer driver on 64bit systems. X crashes on such systems with the old driver). Signed-off-by: Thomas Winischhofer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] 3c59x: support for ATI Radeon 9100 IGP The following patch adds support for the 3Com networking core found in the ATI Radeon 9100 IGP southbridge used on boards like Asus P4R800-VM. The main point of this patch is using HAS_MII instead of HAS_NWAY for the definition of the board. All the previous trials since the end of last year used HAS_NWAY which disables the Tx part of the transceiver; using HAS_NWAY was the way all 3Com Cyclone and Tornado chips worked, as they had the transceiver integrated. The ATI solution has an external transceiver and I had to physically see the different chip on the board (the board was provided by ATI) to finally understand that it needs the HAS_MII definition... I'm still waiting for some docs from ATI to clarify if this is the correct way of handling this chip and if there are any differences w.r.t EEPROM handling, but as it appears to work and was also confirmed by other testers, I don't want to keep owners of such boards away from their networks :-) The textual identification was a bit hard to decide; it's called "3c920B-EMB-WNM" in the Windows .INF file that Asus provides for their boards. As this name was already used for PCI ID 9210, I added the paranthesis which specifies where this chip is found. The Scyld driver defines FEATURE_TORNADO to include HAS_NWAY. This board would then probably need to not be defined with FEATURE_TORNADO, but the same as in this patch. I would like to publicly thank Tyson Vickers for both ideas and patience during the last few weeks. He managed to get the driver working by randomly setting driver parameters :-) But then he contacted me and worked with me towards the solution. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm-io: device-mapper i/o library for kcopyd Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Device-mapper: kcopyd Add kcopyd - a daemon for copying regions of block devices around in an efficient manner. Multiple destinations can be specified for a copy. Designed to perform well both with many small chunks or few large chunks. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: kcopyd: remove superfluous INIT_LIST_HEADs Remove superfluous kcopyd INIT_LIST_HEAD. From: Alasdair Kergon Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: kcopyd: No need to lock pages No need to lock kcopyd pages. From: Alasdair Kergon Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kcopyd commentary We're also working on some general documentation which will go in Documentation/device-mapper and will include more detailed information about the core driver and the other sub-modules. We'll try to submit those patches in the near future. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Device-mapper: snapshots Add snapshot target Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: Fix error cleanup in dm_create_persistent() dm-exception-store.c: Fix error cleanup in dm_create_persistent(). This was originally found by chrisw during code review. From: Dave Olien Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Device-mapper: mirroring Add mirror target. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Device-mapper: dm-zero Add dm-zero target Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: dm-zero version Add missing dm-zero version number. From: Alasdair Kergon Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Device-mapper: dm-zero flushing fix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: Documentation Device-Mapper documentation. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: Create/destroy kcopyd on demand. Create/destroy kcopyd on demand. This changes kcopyd to initialize its mempool and workqueue only when a client specifically needs to use it. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: Use structure assignments instead of memcpy Use structure assignments instead of memcpy's. [Suggested by akpm during kcopyd review.] Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: dm-io: Error handling dm-io: Proper error handling when someone is trying to read from multiple regions. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: dm-raid1.c: Make delayed_bios a bio_list dm-raid1.c: Make struct region::delayed_bios a bio_list instead of a bio*. This will ensure the queued bios are kept in the proper order. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: dm-raid1.c: Use list_for_each_entry_safe dm-raid1.c: In rh_exit(), use list_for_each_entry_safe instead of list_for_each_safe. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] msi TARGET_CPUS fix Somehow the change in TARGET_CPUS generated this error in UP environment. Patch below will fix it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64 numa cpumask build fix arch/x86_64/mm/numa.c: In function `numa_initmem_init': arch/x86_64/mm/numa.c:185: error: incompatible types in assignment Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 uninline some bitops Uninline the non-leaf bit search functions. Saves 9 kbytes from my vmlinux. And gratuitously s/__inline__/inline/ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] APIC enumeration fixes The following patch appears sound according to an audit to ensure that all of the codepaths where it was introduced were called after the APIC fixmappings were set up. This patch introduces get_physical_broadcast(), which checks the version ID of the local APIC to determine whether it's a serial APIC or xAPIC, and returns the correct physical broadcast ID. It replaces all uses of APIC_BROADCAST_ID and IO_APIC_MAX_ID with this in order to ensure. It also changes the checks during MP table parsing so the APIC ID is checked in tandem with the version number. I'm holding out for some kind of testing to get an idea of whether this covers the cases or introduces regressions, or whatever. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] apic: fix kicking of non-present cpus The following patch repairs kicking of non-present cpus by making cpu_present_to_apicid() bounds-check its argument. It also corrects the same issue on NUMA-Q by correctly passing the generated artificial APIC ID instead of the raw value discovered in the MP table. A miscellaneous compilefix for CONFIG_ACPI_BOOT is also included for completeness. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] apic: remove marking of non-present physids in phys_cpu_present_map Marking invalid APIC ID's in phys_cpu_present_map was intended to generate "collisions" between APIC ID's in order to assist the ordinary bounds checking against the broadcast physical APIC ID. However, this is bounds checked everywhere it's necessary, and it's also not even possible to properly bounds-check everywhere. So this patch removes that marking of non-present physical APIC ID's. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] apic: make mach_default compile again While sweeping the APIC code two points were missed. The first is getting the definition of BAD_APICID available to include/asm-i386/mach-default/mach_apic.h by #including the right header, and the second is UP local APIC without UP IO-APIC linking in get_broadcast_physid(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use numa policy API for boot time policy Suggested by Manfred Spraul. __get_free_pages had a hack to do node interleaving allocation at boot time. This patch sets an interleave process policy using the NUMA API for init and the idle threads instead. Before entering the user space init the policy is reset to default again. Result is the same. Advantage is less code and removing of a check from a fast path. Removes more code than it adds. I verified that the memory distribution after boot is roughly the same. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] memory allocation checks in eth1394_update() Adds memory allocation checks in eth1394_update(). Signed-off-by: Yury Umanets Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] memory allocation checks in mtdblock_open() Fixes memory allocation check in mtdblock_open() Signed-off-by: Yury Umanets Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] memory allocation checks in cs46xx_dsp_proc_register_scb_desc() Adds memory allocation checks in cs46xx_dsp_proc_register_scb_desc() Signed-off-by: Yury Umanets Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] don't create cpu/online sysfs file This file provides ability for caller of register_cpu() to either create a control file, or not. This can be handy if a particular platform decides that certain CPU's are not removable. Hence would like to not create a control file. Signed-off-by: Dave Hansen Signed-off-by: Ashok Raj Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] checksatck.pl fixes - "\<" and "\>" can be safely replaced with "<" and ">" - "$var =~ /^string$/" is better written "$var eq 'string'" - $i is better written without the double quotes - it's not safe to use for without "my"ing the iteration variable - "print foreach @array" is better written "print @array" - declare variables - ".*" is useless at the end of a regexp - "$a[@a] = $foo" is a rather obfuscated syntax for "push @a, $foo"... let's not opencoding language basic operators... - ignoring return value from a regexp is very bad: this can results in working on previous value of $1, $2, ... Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sys_getdents64 needs compat wrapper Due to different structure alignment rules in the ABI between ia32 and ia64, certain members of the dirent structure are not guaranteed to be 8 byte aligned on ia64. This requires a compat wrapper around these 32 bit system calls. Other architectures may or may not have the problem, depending on the alignment rules. This was observed by running /emul/ia32-linux/bin/ls on 2.6.6 which produces kernel mode unaligned faults. Original patch by: Arnd Bergmann Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remap_file_pages() speedup Avoid taking down_write(mmap_sem) unless we really need it. Seems that the only reason we're taking it for writing is to protect vma->vm_flags. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss ioctl32 update This patch provides a conversion routine for 32-bit user space apps that call into a 64-bit kernel on x86_64 architectures. This is required for the HP Array Configuration utility and the HP management agents. Without this patch the apps will not function. The 2 ioctls affected are the cciss pass thru ioctls. Caveat: it spits out 2 warnings during compilation. I've tried everything I can think of to clean them up, but... If anyone has any helpful suggestions I'm all ears. Code by Stephen Cameron Tested by Stephen Cameron & Mike Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix cdrom mt rainier probe Mt rainier probe must be deferred to media load time, since it requires a valid media (the drive may present a different capability based on what media is loaded). This fixes that for ide-cd and sr. Signed-Off-By: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] blk: move threshold unplugging The 'unplug on queued exceeding unplug threshold' logic only works for file system requests currently, since it's in __make_request(). Move it where it belongs, in elv_add_request(). This way it works for queued block sg requests as well. Signed-Off-By: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix memory leak in swsusp This fixes 2 memory leaks in swsusp: during relocating pagedir, eaten pages were not properly freed in error path and even regular freeing path was freeing one page too little. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] omdisk memory leak fix Fix a couple of memory leaks in the pmdisk driver. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove unnecessary memsets from swsusp and pmdisk Here's the patch that removes the memset calls from both pmdisk and swsusp. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: remove copy_pagedir It can be replaced by a simple memcpy. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Decrease stack usage in ncpfs's ioctl It decreases stack consumption in one of ncpfs's paths from 3000 to 2200 bytes (and stack portion in ncpfs ioctl code from 1336 to 452 bytes). - some code used large structure (with embeded 256 bytes for filename) while it never passed filename around. Use something smaller in ncp_conn_logged_in. Decrease 616 => 300. - gcc-3.3 is very bad when it comes to parallel blocks in ioctl. Split some branches from large switch to separate functions. ncp_ioctl now uses 152 bytes of stack (instead of 720) and biggest child 64. Signed-off-by: Petr Vandrovec Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make update_one_process() static Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/ipmi/ipmi_devintf.c: user/kernel pointer typo Judging from context, I think there's a misplaced "&" in this code that can cause stack overflows and other nasty problems. Perhaps it's left over from when msgdata was an array instead of a pointer? Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] epoll: replace the file lookup hash with rbtrees The epoll allocation for the fd lookup hash used to allocate up to 1MB (depending on the "hint" size passed to epoll_create()) with __get_free_pages(0), and this might lead to a "malicious" user to do something like: for (i = 0; i < 1024; i++) epoll_create(BIG-NUM); You can replace "malicious user" with IBM-ltp test suite, and the meaning does not change. The above code might exhaust memory badly, even before the file creation limit is topped. Also, the allocation was independent from the number of fds pushed into the epoll fd hash. Using an rb-tree ther will be not pre-allocation of the hash, and the size of the memory used will be proportional to the number of fds pushed into the epoll fd. The patch also removes 100 lines of code, that is never a bad thing ;) Signed-off-by: Davide Libenzi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Shift+PgUp if nr of scrolled lines is < 4 Using the vga console driver, if the number of the lines scrolled out is less than four, then Shift+PageUp doesn't work. The bug is closely related to the 'margin' feature of scrolling, which means that if less than four lines should remain unvisible in the direction we are scrolling to, then we scroll a little bit more just to see those few lines. Kind of two small magnets at the borders of the buffer. This bug was also reported with maybe a less clear description by Stepan Koltsov (cc'ed just for fun) back in 2001 and he got no answer. I found it at http://seclists.org/lists/linux-kernel/2001/Nov/0080.html His patch simply disables margin support and hence everythings becomes okay, but you lose a nice feature. Here's a patch that retains margin support and fixes the bug. Works for me, tested for a week. No guarantee. As I don't fully understand the code (see also my previous mail) I'm not 100% sure that I'm doing the right thing, so I'd prefer if someone would take a closer look at it. At least 2.4 and 2.6 are affected, maybe older ones too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] istallion printk fix istallion: Remove duplicate "%d" in printk(); Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lower priority of "too many keys" msg in atkbd.c From: "Jon Thackray" * Lowered priority of "too many keys" message in drivers/input/keyboard/atkbd.c This fixes Debian BTS #239036. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239036 The keyboard under 2.6.4 seems to be behaving strangely, reporting unknown key codes and too many keys pressed, even when no keys have been pressed. The keyboard is connected via an 8 way KVM switch, but was working quite acceptably under 2.4.25 with no such messages. Trying 2.6.3 is not an option as it doesn't support the hardware properly, as previously reported. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] unregister driver if probing fails in sb_card.c * Unregister driver if probing fails in sound/oss/sb_card.c This fixes Debian BTS #218845. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=218845 From: Robin Gerard To: submit@bugs.debian.org Subject: no sound with kernel-image-2.6.0-test9-1-386 Message-ID: <20031103004939.GA2071@mauritius> I downlaoded the kernel-image-2.6.0-test9-1-386_2.6.0-test9-1_i386.deb and I installed it successfully. Everything works fine, except the sound. (I run also the kernel-image-2.4.20 and the sound is ok with this kernel) My sound card is a sb. First I launched modconf but no module was displayed. I did: modprobe sb and I got: sb: Init: Done sb: Init: Starting Probe... kobject_register failed for OSS SndBlstr (-17) Call Trace: [] kobject_register+0x3a/0x40 [] bus_add_driver+0x30/0x64 [] driver_register+0x2d/0x34 [] preempt_schedule+0x2a/0x48 [] pnp_register_driver+0x28/0x58 [] pnp_register_card_driver+0x5e/0x98 [] sb_init+0x63/0xb5 [sb] [] sys_init_module+0xe8/0x1f0 [] syscall_call+0x7/0xb Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix duplicate environment variables passed to init * Fixed argument processing bug in init/main.c (Eric Delaunay) This fixes Debian BTS #58566. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=58566 From: Eric Delaunay Message-Id: <200002201918.UAA02327@jazz.pontchartrain.fr> Subject: pb in handling parameters on kernel command line To: submit@bugs.debian.org (debian bug tracking system) Hello, I found some bugs in kernel command line parser. AFAIK, they are not Debian nor sparc specific but I'm not subscribed to linux-kernel mailing list and since I'm involved with boot-floppies (mainly for sparc), I think I'm right to report it here. Feel free to forward it upstream (I checked the latest 2.3.46 sources and it seems these bugs are still there). These bugs are not release critical. The latter just not gives the user a chance to overwrite TERM env var at boot time. It could be just inconvenient for serial console boot, and in this case, our busybox' init is already enforcing TERM=vt102. Nevertheless if it could not be fixed before the release, I could even write a workaround in busybox' init (it's just a matter of rewriting getenv()). At last, it does not affect sysvinit package because serial console tty is controlled by a getty process which is reading terminal settings on its command line (take a look in inittab for T0 entries, if any). Ok, here is my modest contribution to kernel hacking. I don't know much about kernel internals but it seems that argument parsing is a bit broken. One trivial patch for command line like "init=/bin/sh console=prom" where console=prom is replaced by lot of spaces in previous call to setup_arch() on sparc, therefore the line parsed by parse_options() is really "init=/bin/sh " and a lot of null args are pushed into argv_init. The other patch is for command line like "TERM=vt100" where both default & user TERM entries are pushed into the env array. Taking a look into /proc/1/environ, it shows up: HOME=/ TERM=linux TERM=vt100 It appears that ash (maybe other shells too) is giving the latter entry but glibc getenv() is giving the former. It is therefore impossible to get entry from the user in a C program like busybox' init (used in Debian boot-floppies). I guess getenv() is not written to support duplicate entries, therefore the kernel should avoid such construct. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix handling of '/' embedded in filenames in isofs * Fix slashes in broken Acorn ISO9660 images in fs/isofs/dir.c (Darren Salt) This fixes Debian BTS #141660. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=141660 From: Darren Salt Message-ID: <4B238BA09A%linux@youmustbejoking.demon.co.uk> To: submit@bugs.debian.org Subject: Handle '/' in filenames in broken ISO9660 images [Also applicable to 2.2.x] There has been for some time a problem with certain CD-ROMs whose images were generated using a particular tool on Acorn RISC OS. The problem is that in certain catalogue entries, the extension separator character '/' (RISC OS uses '.' and '/' the other way round) was not replaced with '.'; thus Linux cannot properly parse this without this patch, thinking that it is a directory separator. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix isofs ignoring noexec and mode mount options * Removed period check for executables in fs/isofs/inode.c This fixes Debian BTS #162190 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=162190 From: Jan Gregor To: Debian Bug Tracking System Subject: kernel-source-2.4.18: kernel ignores noexec and mode option in cdrom case Message-ID: <20020924162129.A328@pisidlo> In /etc/fstab i have following line: /dev/cdrom /cdrom iso9660 gid=100,noauto,ro,noexec,mode=0444,user 0 0 I found on one CD that some files have exec bit set. From brief view those files has no extension (filename.ext). My drive is asus-1610a (ATAPI writer) connected throught scsi-emulation. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3: htree readdir fix I've observed that ext3_htree_fill_tree() doesn't ignore empty records (de->inode == 0). test case is very simple: turn htree on, create several hundreds of files, remove them and look at strace ls: [root@victim tests]# ls -a /test/1 . .. [root@victim tests]# strace ls /test/1/ .... getdents64(3, /* 18 entries */, 4096) = 432 getdents64(3, /* 0 entries */, 4096) = 0 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix raid1 read_balancing code. The meaning of mddev->in_sync changed subtly a while ago, and raid1 wasn't changed to match. This results in raid1 read_balancing not working properly. This patch corrects the relevant test. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mull'ify multiplication with HZ in __const_udelay() John Stultz mentioned on lkml ( http://lkml.org/lkml/2004/6/5/15 ) that calls to udelay() don't delay long enough, causing trouble e.g. in the USB subsystem. The following patches address this issue. Move the multiplication of (loops_per_jiffy * xloops) with HZ into the "mull" asm operation. This increases the accuracy of the delay functions largely: n usec delay on a system with loops_per_jiffy = 1500000 : n before after 1 1000 ticks 1499 ticks 10 14000 ticks 14999 ticks n usec delay on a system with loops_per_jiffy = 100000 : n before after 1 0 ticks 99 ticks 10 0 ticks 999 ticks 100 9000 ticks 9999 ticks As noted by Kurt Garloff, it's necessary to adjust for large loops_per_jiffies, as the multiplication of it with HZ fails for 4GHz or larger. So, John Stultz suggested multiplying xloops with 4 first, and multiplying with (HZ/4). Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] round up in __udelay() Round up in __udelay(): 2**32 / 100000 is 4294.97, so it's more intuitive to round up, and it causes more predictable results: n usec delay on a 1500000 BogoMIPS system: n before -mull after 1 1000 ticks 1499 ticks 1500 ticks 10 14000 ticks 14999 ticks 15000 ticks n usec delay on a 100000 BogoMIPS system: n before -mull after 1 0 ticks 99 ticks 100 ticks 10 0 ticks 999 ticks 1000 ticks 100 9000 ticks 9999 ticks 10000 ticks While it can be argued that some time is also spent in the delay functions, it's better to spend _at least_ the specified time sleeping, in my humble opinion. And the overhead of a specific ->delay() implementation should be substracted in the specific ->delay() implementation. Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add 1 in __const_udelay() The "mull" instruction in __const_udelay() cuts off the lower 32 bits -- so, it is "rounding down". This is both an issue for small ndelay()s for _all_ values for loops_per_jiffy and for certain {n,u}delay()s for many loops_per_jiffy values. Assuming LPJ = 1501115 udelay(87) results in 130597 loops to be spent. However, 1000 * 130597 / 1501115 is 86.999997 us, so we're actually _rounding down_. 1000 * 130598 / 1501115 is 87.000662841, which would be the technically correct thing to do. Of course, for the TSC case this won't matter as the maths take some time, so the actual delay is 1000 * __udelay(x) / lpj + __OVERHEAD(x) Anybody worried about both the additional overhead and the fact that the overhead takes some time to run should add a check if (unlikely(xloops < OVERHEAD)) return; xloops -= OVERHEAD; to the delay() routines in arch/i386/kernel/timers/*.c and determine what the OVERHEAD is. Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add security_file_permission() to AIO paths. Currently, there are no LSM hooks in the AIO codepaths, which means that LSM based access controls are not revalidated upon AIO read and write operations. The patch below adds the security_file_permission() LSM hook prior to the VFS aio_read()/aio_write() calls. Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update Marcelo CREDITS info Update my CREDITS information. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix sock_orphan race. The patch below fixes a race between sock_orphan() and selinux_socket_sock_rcv_skb() which can lead to a null pointer deref oops under heavy load. The sk_callback_lock is used in the patch to synchronize access to the incoming socket's inode security state. This patch has been under test in the Fedora kernel for over a month without incident. Author: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix standalone inclusion of asm-i386/dma-mapping.h Without this a usb-storage patch I sent fails on x86 because dma-mapping.h uses struct device and various VM stuff without proper includes. It's fine on ppc at least. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: lost dirty bits The SetPageUptodate function is called for pages that are already up to date. The arch_set_page_uptodate function of s390 may not clear the dirty bit in that case otherwise a dirty bit which is set between the start of an i/o for a writeback and a following call to SetPageUptodate is lost. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] handle partial DIO write The fsx-linux hole fill failure problem was caused by generic_file_aio_write_nolock() not handling the partial DIO write correctly. Here's a patch lets DIO do the partial write, and the fallback to buffered is done (correctly) for what is left. This fixes the hole filling without retrying the entire i/o. This patch also applies to 2.6.7-rc3 with some offset. I tested this (on ext3) with fsx-linux -l 500000 -r 4096 -t 4096 -w 4096 -Z -N 10000 junk -R -W Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fb accel capabilities Baseline patch to make framebuffer/fbcon interaction more sane by basing the fbcon heuristics on capabilities advertized by underlying framebuffer via the fb_info.flags field. This patch updates fbcon, fb.h, and skeletonfb.c. It does *not* yet update the drivers themselves. They should compile and work, but their hinting is not correct yet, meaning most fb drivers will be slow until I set the flags to the right hinting driver-by-driver Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: prefer pan when available Improve heuristics to favor panning over copyarea() thanks to pseudocode from Antonino Daplas Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Updates to rivafb driver The patch updates rivafb to the following: 1. Fixed cursor corruption and simplified cursor code. 2. Maximized var->yres_virtual on initial mode setting. Scrolling, therefore, defaults to y-panning which is significantly faster. 3. Restricted var->xres_virtual and var->yres_virtual to 0x7fff (hardware limitation?). Otherwise, var->yres_virtual > 0x7fff + panning will hang the GPU. 4. Added I2C/DDC support. This feature enables independent mode setup to rivafb. 'stty rows n cols n' should now work correctly. This is a configurable option. 5. Various/minor fixes to drawing code. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] More updates to rivafb driver 1. pass info->monspecs.modedb and info->monspecs.modedb_len to fb_find_mode() instead of NULL, 0 since its contents are specific to the attached display. Anyway, if info->monspecs.modedb == NULL, fb_find_mode() will use the default database. 2. Added best fit algo to fb_find_mode(). 3. Use snprintf instead of sprintf. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] asiliantfb init fix asiliantfb seems to have only been partially merged (the fbmem.c bits in particular seem to have been missed entirely). This adds them back in, though they do seem to be present in the fbdev tree, at least they were the last time I looked. These are the last bit of outstanding changes I have in the LinuxSH tree for asiliantfb, so it would be nice to get this out of the way. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix radeonfb panning and make it play nice with copyarea() radeonfb: fix panning corruption on a large virtual screen, Make panning and copyarea() play nicely with each other. Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix warning in fbmem.c Fix a const/non-const warning. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rivafb: fb accel capabilities Here's the fb accel capabilities patch for rivafb. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix simple_strtoul base 16 handling I know it's simple_strtoul, but is it meant to be that simple? Fix up for both simple_strtoul and simple_strtoull. simple_strtoul(0x401b, NULL, 0) = 0x401b simple_strtoul(0X401b, NULL, 0) = 0x0 simple_strtoul(0x401b, NULL, 16) = 0x0 simple_strtoul(0X401b, NULL, 16) = 0x0 simple_strtoull(0x401b, NULL, 0) = 0x401b simple_strtoull(0X401b, NULL, 0) = 0x0 simple_strtoull(0x401b, NULL, 16) = 0x0 simple_strtoull(0X401b, NULL, 16) = 0x0 Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: Fine-grained Netlink support - SELinux headers update This patch regenerates the SELinux module headers to reflect new class and access vectors definitions. The size of the diff is misleading; much of it is simply a change in the ordering of the automatically generated definitions. The corresponding generation script has been changed to ensure a stable order in the future. Please apply. Author: Stephen Smalley Cc: David S. Miller Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: Fine-grained Netlink support - move security_netlink_send() hook This patch moves the security_netlink_send() LSM hook after the user copy, so that LSM modules can safely examine skb payload content. For SELinux, we need to look at the Netlink message type. Cc: David S. Miller Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: Fine-grained Netlink support - add sk to netlink_send hook Modifies the LSM netlink_send() hook so that it takes a struct sock parameter. SELinux will use this parameter to lookup the class of socket, which was assigned during socket security initialization. Cc: David S. Miller Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: Fine-grained Netlink support - SELinux changes This patch contains SELinux changes which add support for extended Netlink socket classes and the associated permissions nlmsg_read and nlmsg_write. Cc: David S. Miller Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IPMI base patch to fix channel handling and add polling This patch fixes some problems with handling of channel detection in the driver. Some systems that are IPMI 1.5 do not implement the channel query command. Also, the interface has to be fully up before the command is ready. This patch also adds a polling interface; this is required for situations where interrupts are not running, but the system must still issue IPMI commands, like when taking a crash dump. It also updates the driver version to v32. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Hugetlb page bug fix for i386 in PAE mode Hit a bug check when unmap a hugetlb vma in PAE mode on i386 (and x86-64). Bad page state at free_hot_cold_page (in process 'a.out', page c165cc40) flags:0x20000000 mapping:f75e1d00 mapped:0 count:0 Backtrace: Call Trace: [] bad_page+0x79/0x9e [] free_hot_cold_page+0x71/0xfa [] unmap_hugepage_range+0xa3/0xbf [] unmap_vmas+0xac/0x252 [] default_wake_function+0x0/0xc [] unmap_region+0xd8/0x145 [] do_munmap+0xfc/0x14d [] sys_shmdt+0xa5/0x126 [] sys_ipc+0x23c/0x27f [] sys_write+0x38/0x59 [] syscall_call+0x7/0xb It turns out there is a bug in hugetlb_prefault(): with 3 level page table, huge_pte_alloc() might return a pmd that points to a PTE page. It happens if the virtual address for hugetlb mmap is recycled from previously used normal page mmap. free_pgtables() might not scrub the pmd entry on munmap and hugetlb_prefault skips on any pmd presence regardless what type it is. Patch to fix the bug. Signed-off-by: Ken Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove blank line in show_trace() Delete a blank line for more error reporting on-screen. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove EXPORT_SYMBOL(kallsyms_lookup) Distros have started to ship kernels with this patch, as it seems that some unnamed binary module authors are already abusing this function (as well as some open source modules, like the openib code.) I could not find any valid reason why this symbol should be exported, so here's a patch against 2.6.7 that removes it. Signed-off-by: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] contify some scheduler functions Several scheduler macros only read from the task struct, mark them const. It may help the compiler generate better code. Signed-off-by: Keith Owens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] H8/300: ptrace fix - Kconfig typo fix - PTRACE_PEEKUSER read process info support - exr restore fix - ptrace register offset fix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] H8/300: io.h cleanup - optimize byteswap - add noswap io mode - cleanup var type Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cmpci oops on rmmod + fix The cmpci driver included in Linux 2.6.7 causes an oops on rmmod, I believe cm_remove should be marked __devexit rather than __devinit. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Fix kill_pg_info(): return success if _any_ signal succeeded. [PATCH] RLIM: pass task_struct in send_signal() Update send_signal() api to allow passing the task receiving the signal. This is necessary to ensure signals generated out of process context can be charged to the correct user. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: enforce rlimits on queued signals Add a user_struct pointer to the sigqueue structure. Charge sigqueue allocation and destruction to the user_struct rather than a global pool. This per user rlimit accounting obsoletes the global queued_signals accouting. The patch as charges the sigqueue struct allocation to the queue that it's pending on (the receiver of the signal). So the owner of the queue is charged for whoever writes to it (much like quota for a 777 file). The patch started out charging the task which allocated the sigqueue struct. In most cases, these are always the same user (permission for sending a signal), so those cases are moot. In the cases where it isn't the same user, it's a privileged user sending a signal to another user. It seems wrong to charge the allocation to the privleged user, when the other user could block receipt as long as it feels. The flipside is, someone else can fill your queue (expectation is that someone else is privileged). I think it's right the way it is. The change to revert is very small. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RLIM: remove unused queued_signals global accounting Remove unused queued_signals global accounting. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds This removes the files orphaned by the earlier PC9800 removal [ARM PATCH] 1930/1: Allocate correct number of pseudo palette entries in pxafb Patch from Ian Campbell The pxafb driver incorrectly allocates 17 u32's for a 16 entry pseudo palette. Remove old stale header files that aren't referenced anywhere. Noted by Alexey Dobriyan. [ARM PATCH] 1934/2: Consolidate code to set CKEN on PXA Patch from Ian Campbell I've seen comments several times that various PXA drivers update CKEN in an unsafe manner. This patch consolidates this code into a single function pxa_set_cken() and updates all the in tree drivers to use it. [PATCH] cfq sysfs support This makes the CFQ tunables available in sysfs, like AS and deadline. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] cfq allocation race It's possible under unlucky circumstances for this race to trigger. I described it with a comment in the code. Signed-Off-By: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] cfq direct io alias problem This is a fix for when we encounter an alias during insert. When that happens we move the request to dispatch, but it may happen that this request is also the ->last_merge hint. So we may attempt to merge with this later, when it's either in progress or already freed. Rearrange the logic a bit so we clear the merge hint there as well. It looks more complex than it is, the only real code change is the addition of a cfq_remove_merge_hints() in cfq_dispatch_sort(). Signed-off-by: Linus Torvalds [PATCH] USB: dummy_hcd shouldn't reject SET-ADDRESS requests This patch for the dummy_hcd driver prevents it from rejecting SET-ADDRESS requests when the address is already set. The USB 2.0 spec states that if a device is in the ADDRESS state, it should accept and start using the new address. Behavior in the CONFIGURED state is undefined, but since dummy_hcd doesn't keep track of the difference between the two states we might as well accept the new address in any case. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 1932/1: fix comment about cache handling syscall Patch from Nicolas Pitre Let's make it coherent with what the actual code is doing and has always done, even in 2.4. Nobody complained about this so let's just fix the comment. The most natural usage pattern for this is a base address and a size so it's more efficient to have an exclusive end address anyway. [ARM PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 Patch from Tony Lindgren Allows translation of shared memory addresses for devices using dma-mapping. In some cases the device DMA address is different from the ARM DMA address, for example with some USB OHCI controllers. For more background information, please see the ARM Linux mailing list thread "OHCI controller". USB: mark pwc driver broken again, as it still is :( [ARM] Remove TBOX. This platform is no longer maintained, and its maintainer says that the hardware is obsolete and out of circulation. [ARM] Remove NexusPCI/FTVPCI platform. This platform is no longer maintained, and its maintainer says that the hardware is obsolete and out of circulation. [BRIDGE]: Kill sysfs hotplug avoidance hacks. The whole effort to avoid hotplug was misguided. If it is really a problem (which it doesn't appear to be) then it can more easily be addressed by smarter hotplug scripts in user space. This patch gets rid of the whole subsystem hack for bridge kobjects. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Delay scheduler enqueue always succeeds. If underlying fifo enqueue fails, return the status not 0. Same patch should apply to both 2.6 and 2.4 Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] sparse: i387 math-emu annotation arch/i386/math-emu/* annotated. [PATCH] sparse: rt_sigsuspend/sigaltstack sanitized rt_sigsuspend() and sigaltstack() prototype changed; instead of playing games with casts of argument address to struct pt_regs * and digging through it, we declare them as int (struct pt_regs regs) instead. [PATCH] sparse: vm86.c annotated vm86.c annotated; vm86old(2) and vm86(2) switched to explicit int (struct pt_regs regs) format. [PATCH] sparse: ixj annotated drivers/telephony (aka ixj.c) annotated, IXJ_CADENCE split into kernel and userland variants, ioctl structures got __user on pointers. [PATCH] sparse: drivers/char/watchdog annotation Trivial annotations in drivers/char/watchdog/* [PATCH] sparse: drivers/input annotations Trivial annotations in drivers/input [PATCH] sparse: ide-tape annotation [PATCH] sparse: ibmasmfs annotations Trivial annotations + couple of missing (void) in prototypes [PATCH] Couple of sysfs patches On Wed, Jun 16, 2004 at 05:51:03PM -0500, Dmitry Torokhov wrote: > What about freeing the resources? Can it be put in platform_device_unregister > or is it release handler task? I'd put it in unregister because when I call > unregister I expect device be half-dead and release as much resources as it > can. Here's the updated patch - to be applied on top of the platform_get_resource() patch sent previously. Signed-off-by: Greg Kroah-Hartman [PKT_SCHED]: Delay scheduler should retry if requeue fails. If delay scheduler decides not to send the packet right away, it requeues it. If the requeue fails, it should go and look again rather than waking up prematurely. Same patch should apply to both 2.6 and 2.4 Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] crapectomy - last users of kernel_scsi_ioctl() gone Last 3 users of kernel_scsi_ioctl() eliminated; two of them used to read partition table by issuing a READ6 via ioctl (instead of just calling scsi_bios_ptable() as every other ->biosparam() instance does). The last one was doing a very quaint access to fields of scsi_device by issuing SCSI_IOCLT_GET_LUN and then shuffling bits in the result. Down with that insanity... [PATCH] sparse: drivers/message/fusion annotations and fixes Sigh... First of all, LSI folks have very quaint idea of existing platforms and word sizes on those. Their definitions of U32 and S32 should really be reserved for posterity (preferably chiseled into the rock they have between the ears), but kernel is the wrong place for that. Fixed. mptctl_do_mpt_command() was always called on userland pointers; kernel/userland argument removed along with dead code, function annotated, callers updated. The rest is trivial annotations in mptctl.c and in its ioctl structures - nothing fancy there. sparse: fix up fusion/mptctl.c after merge [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. Based upon a patch from Stephen Hemminger. Signed-off-by: David S. Miller [PKT_SCHED]: Add loss option to network delay scheduler. This enhances the network simulation scheduler to do simple random loss. The loss parameter is a simple 32 bit value such that 0 means no loss, and 0xffffffff is always drop. I have a new version of the tc command which takes care of conversion from percent to this value. Same patch for 2.4 and 2.6 Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [IPV6]: Handle user asking for any device in mcast calls. [IRDA]: Remove usage of isa_virt_to_bus() Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPV6]: Fix autoconf description in ip-sysctl.txt. [NET]: Fix eql.c failed dev_get_by_name() return value check. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH] sparse: binfmt_aout annotation [PATCH] sparse: mwave annotation [PATCH] sparse: nfs partial annotation [PATCH] sparse: drivers/video partial annotation misc annotation in drivers/video/* (nowhere near complete) [PATCH] sparse: drivers/video/kyro annotation [PATCH] sparse: drivers/video/matrox annotation [PATCH] sparse: udf cleanups removed bogus externs from declarations in fs/udf/* [PATCH] sparse: applicom annotation [PATCH] sparse: amd64 bits - added define of __x86_64__ to sparse arguments on amd64 - switched amd64 uaccess.h to __chk_user_ptr() [PATCH] sparse: ipmi annotation [PATCH] sparse: cyclades annotation [PATCH] sparse: synclinkmp annotation [PATCH] sparse: autofs annotation [PATCH] sparse: drivers/video/aty annotation [PATCH] sparse: drivers/video/sis annotation [PATCH] ipr abort hang fix The following patch fixes a hang that occurs when an abort is issued by the midlayer. The hang is the result of overriding a field in the union of the ipr_cmd struct. It is fixed by moving this pointer outside of the union, since it is not mutually exclusive with the other fields in the union. Signed-off-by: James Bottomley [PATCH] ipr only tcq cancel all Some SCSI-IDE cdrom drives take up to 15 seconds to respond following an abort being issued to them. This patch changes ipr to only send a cancel all to a device as part of request sense processing when the device is running tagged command queueing. Signed-off-by: James Bottomley [PATCH] ipr bump version to 2.0.10 Signed-off-by: James Bottomley [PATCH] sparse: kernel/module.c sparse fix Add __user annotation for !CONFIG_MODULE_UNLOAD case. From: Mika Kukkonen Signed-off-by: Randy Dunlap [PATCH] sparse: lib/string.c sparse fix A classic.. lib/string.c:165:19: warning: assignment expression in conditional From: Mika Kukkonen Signed-off-by: Randy Dunlap Do not send junk in bcc area of oplock break SMB Lock request, and always let oplock break release through even if requests are ahead of it waiting for responses to complete. Signed-off-by: Steve French (sfrench@us.ibm.com) check better for free files on writepage retry Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] ia64: fix ia32 partial-page map support for overlapping mmaps - Handle the overlapping mmaps in the MAP_FIXED case - Handle unmaps correctly i.e. call __ia32_delete_pp_range() - There are now three clear entry points into the pp manipulation code - ia32_set_pp - ia32_unset_pp - ia32_compare_pp - Rename internal functions to __ia32_*pp_* - Grab mmap_sem just once at the main entry point Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: David Mosberger [PATCH] ia64: move move_irq() from iosapic.c to irq.c This patch moves move_irq() from ioaspic.c to irq.c to make this common for ia64 subarches. Signed-off-by: Ashok Raj Signed-off-by: David Mosberger [PATCH] ia64: perfmon stack consumption fix This patch moves the pfm_ovfl_arg_t structure from the kernel stack into the pfm_context_t structure. This minimizes kernel stack space consumption. Signed-off-by: Stephane Eranian Signed-off-by: David Mosberger [PATCH] ia64: fix free_huge_page() call in hugetlb_prefault() In base kernel 2.6.7, there is bug in function hugetlb_prefault(). The call to free_huge_page() is incorrect and should be replaced with a call to page_cache_release(). Signed-off-by: David Mosberger [PATCH] mptctl.c build fix drivers/message/fusion/mptctl.c:89:24: asm/compat.h: No such file or directory Signed-off-by: Andrew Morton [PATCH] HPFS fixes for 2.6.7 kernel This contains hpfs fixes from my source ported to 2.6.7 kernel: updates: - allocator fragments files less - OS/2 Warp Server filesystem can be mounted read/only - added reschedule points so that it doesn't hog CPU bug fixes: - filesystem error message when syncing or fsyncing deleted file (or when system just writes it on its own) - filesystem error on extremly fragmented files - corrupted disk structures could possibly corrupt memory [PCMCIA] Add Cirrus PD6729 PCMCIA bridge support. Patch from Komuro, cleaned up by Russell King. [NET]: Fix econet build bustage. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NET]: Fix some userland header bustage. [IPV6]: Export necessary xfrm6_tunnel functions. [PCMCIA] 02-validatemem Move validate_mem() so we don't recurse. We call this function from the DS_GET_FIRST_TUPLE and DS_VALIDATE_CIS calls, which are the the first two functions which may be called by cardmgr or cardctl which require CIS access. [PCMCIA] 03-memwin Eliminate win->base and win->size elements from window_t. window_t contains struct pccard_mem_map, which contains a copy of these (sys_start, sys_stop) in a slightly different form. [PATCH] natsemi updates - support for external phys, both fibre and twisted pair, added: * remove the "phy" parameter from mdio_{read,write}: the function accesses the current phy. * new functions to access external phys: miiport_{read,write} * scan for external phys on _probe. * ethtool support for switching between internal and external phys. * introduce an init_phy_fixup helper: a few settings must be reapplied after reenabling the internal phy. - move register_netdev to the end of _probe. The current position could cause races with hotplug. - do not wait for autonegotiation completed after initialization. - use pci_name() instead of dev->name until register_netdev has initialized dev->name. - read the BMSR register in the link beat interrupt twice: The link status field is latched, without reading twice a link up event will be missed (and only noticed a few seconds later in the media timer) - restart the autonegotiation after modifying the capabilities. [wireless airo] Clean initialization of Mini-PCI cards even from suspend [PATCH] Re: linux-2.6.7 Equalizer Load-balancer. eql.c. local non-privileged DoS Vitaly V. Bursov wrote: > > there are multiple vulns in drivers/net/eql.c > > if there is no such device, dev_get_by_name returns NULL and everything dies. > Exploiting this is trivial. Thanks for the report. This patch should fix them. Signed-off-by: Herbert Xu Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- ===== drivers/net/eql.c 1.13 vs edited ===== [PATCH] H8/300: smc9194 driver From: Yoshinori Sato - H8/300 target support - fixed irq support - high address (>0xffff) i/o fix Signed-off-by: Andrew Morton [PATCH] convert sk fddi driver to ANSI C Sparse does not handle K&R at all, and I think I saw Linus saying that he has no intention of adding it to sparse while ago. So here is a blob of patch to convert drivers/net/skfp/* from K&R to ANSI-C. Compile tested with "make allmodconfig" on x86, as I obviously don't have the HW. Mika Signed-off-by: Stephen Hemminger [PATCH] e1000 management reset fix * Resetting the adapter blew away management settings. So we save the important bits before performing a reset. [PATCH] sunhme patch Without this patch, insmod-ing the sunhme module crashes on my fc2 box. -- JF [PATCH] hamachi DMA Let's get this thing not using bus_to_virt() anymore, as follows. Signed-off-by: David S. Miller ===== drivers/net/hamachi.c 1.35 vs edited ===== [PATCH] pcnet32: discard oversize rx packets This patch will discard received frames that are larger than one buffer. This has been tested on ia32 and ppc64 systems. Please also apply to 2.4.7 (with offset of -3), tested ia32. Signed-off by: brazilnut@us.ibm.com [PATCH] pcnet32: recover after rx hang. This patch fixes a receive hang that occasionally occurs after a Tx FIFO underrun. The receive dma remains in a hung state sometimes. The transmit operations continue to occur, but no receive activity. This was reproduced on several ppc64 systems and the fix has been verified there. The patch has been tested as well on an ia32 system, which did not experience the hang because it did not have fifo underruns, which is a preqrequisite for the hang. The memory barriers decreased the frequency of occurrence. The final change to reset the chip instead of just stopping it eliminated the last hangs. Please also apply against 2.4.7 (with offset of -1), tested ia32. Signed-off by: brazilnut@us.ibm.com [PATCH] pcnet32: cleanup IRQ limitation. Cleanup pcnet32 IRQ handling based on suggestions from Ralf Baechle , and Brian Murphy Tested by myself and Brian Murphy. Please also apply to 2.4.27-pre6. Signed-off-by: Don Fry [PATCH] orinoco.c rate limit lost information frame message Rate limit a (apparently) harmless warning in orinoco.c (My laptop remained connected with active X applications running over ssh while this message was hitting every second, since I patched my driver to include this the problem hasn't recurred.) Signed-Off-By: Ryan Anderson [PATCH] sis900-fix-phy-transceiver-detection.patch From: Daniele Venzano Fix PHY transceiver detection code to fall back to known PHY and not to the last detected. The code checks every transceiver detected for link status and type, but fails when ghost transceivers are detected, deciding to use the last one detected. With this patch the driver should choose the correct transceiver even when some ghosts are detected by checking for the type of the tranceiver it is going to use. [PATCH] sk98lin pci id [PATCH] Use netdev_priv in sgiseeq The combined allocation of of receive and transmit rings and driver data so far made the use of netdev_priv impossible. Split the allocation and use netdev_priv to access the non-ring driver_private data. Signed-off-by: Ralf Baechle [PATCH] Reformat Pure microcosmetic. Signed-off-by: Ralf Baechle [PATCH] Cosmetic cleanups to sb1250-mac.c Signed-off-by: Ralf Baechle [PATCH] hdlcdrv needs to stop queueing We better stop the queue in the close call. Signed-off-by: Ralf Baechle [ECONET]: Fix some warnings. [NET]: Fix warning in farsync WAN driver. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page Signed-off-by: Arnaldo Carvalho de Melo Do not kill cifsd thread until last smb session on tcp session is SMBulogged off. Fixes umounting bug (pointed out by Nick Millington) when multiple mounts with different userids are mounted to the same server from the client. Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] final hosts.h usage removal the patch below finishes off the removal of the obsolete hosts.h usage, and now that the users are gone, it's safe to turn on the warning to prevent accidental future use... Please apply Signed-off-by: James Bottomley [PATCH] switch scsi core and sd to headers Signed-off-by: James Bottomley [Bluetooth] Fix connection creation error handling This patch fixes the problem that ACL connections are removed from the kernel connection hash when a hci_create_connection returns a command status other than 0x00. Signed-off-by: Marcel Holtmann [Bluetooth] Fix config change for firmware loading The switching between firmware loading and running state is done via different configurations. To get this right the USB toggle and halted bits must be reset to zero after it. Signed-off-by: Marcel Holtmann ncr53c8xx updates From: Matthew Wilcox - remove all of the PCI chips (8xx series) leaving only 720 - pull out stand alone initialisation code (driver becomes a chip only driver for NCR Q720 and Zalon) - remove most vestiges of PCI support (chip driver should be bus neutral) - tidy up typedefs - remove simulated intfly (may need putting back for 770) Signed-off-by: James Bottomley Make ncr53c8xx respect clustering From: Joel Soete This patch makes the ncr driver capable of accepting segments which are larger than the block size. It has been tested against IOMMU merging on parisc. Signed-off-by: James Bottomley [PATCH] fix amd64 boot breakage This fixes a bug that prevent my amd64 box from booting; numa_default_policy was __init however it's called like this in init/main.c: free_initmem(); unlock_kernel(); system_state = SYSTEM_RUNNING; numa_default_policy(); eg after free_initmem(). This resulted in it being reused/freed and that gives a nasty oops. Follow 2.4.x semantics for in-kernel signal sending. [PATCH] FAT: don't use "utf8" charset and NLS_DEFAULT Recently, some distributors have set "utf8" to NLS_DEFAULT, therefore, FAT uses the "iocharset=utf8" as default. But, since "iocharset=utf8" doesn't provide the function (lower <-> upper conversion) which FAT needs, so FAT can't provide suitable behavior. This patch does: - doesn't recognize "utf8" as "iocharset" - doesn't use NLS_DEFAULT as default "iocharset" - instead of NLS_DEFAULT, adds FAT_DEFAULT_CODEPAGE and FAT_DEFAULT_IOCHARSET NOTE: the following looks like buggy, so it's not recommended "codepage=437,iocharset=iso8859-1,utf8" however, some utf8 file name can handle. (in this case, it uses the table of iso8859-1 for lower <-> upper conversion) Sign-off-by: Jesse Barnes Sign-off-by: OGAWA Hirofumi Sign-off-by: Linus Torvalds [PATCH] m68k: IFPSP060 update IFPSP060: Make sure that the destination address of a misaligned cas access is properly mapped in, so the kernel won't oops in the emulation handler (from Roman Zippel). Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: handle new gcc's M68k: Fixes for when compiling with modern gcc (from Roman Zippel): - Avoid warning 'use of memory input without lvalue in asm operand 0 is deprecated' of newer gcc - Replace some '%/' with offical '%%' to escape a '%' Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: new gcc optimizations M68k compiler updates from Roman Zippel: - Fix various lvalue warnings from newer gcc - Remove unnecessary volatile declarations - Change some constraints from "a" to "m" to generate slightly better code - Use "o" constraint for bitfield instructions - Use generic bitmap functions for some of the ext2/minix bitmap functions Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: bus error handling M68k: Allow to catch a bus error via the exception mechanism (from Roman Zippel) Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: use set_page_count() M68k: From 2.6.7-rc1 on, it's no longer allowed to access page->count directly Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] affs remount fixes AFFS: Fix oops on write after remount (from Roman Zippel): - Allocate/free bitmap as necessary - Remove last uses of SF_READONLY Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: Mac Sonic Ethernet Mac Sonic Ethernet: Kill duplicate `MODULE_LICENSE("GPL");' (already defined in included sonic.c) which causes a compile failure Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: sparse infrastructure M68k: Make sparse work Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: Mac IOP fix Mac IOP: Fix copy-and-paste bug (found by OPERA, reported by Zhenmin Li, confirmed by Brad Boyer) Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: atomic op fixups M68k: Add missing atomic operations (from Roman Zippel and me) and replace `__inline__' by `inline' while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] m68k: I/O abstraction updates M68k I/O abstraction updates: - Make I/O ports and addresses `unsigned long' - Add casts to make operations warning-compatible with other archs - Add {in,out}[wl]_p() and {in,out}l(), which are needed for some drivers Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [SPARC64]: Check _TIF_SYSCALL_SUCCESS before syscall return value. We might have to clear the flag, and if we do not then subsequent syscalls can get confused. Bug easily triggered by suspending emacs in a pty and then resuming, select() returns due to a pending signal but because _TIF_SYSCALL_SUCCESS is erroneously set by a previous syscall -514 ends up slipping into userspace. Oops. [PCMCIA] 04-memres Make find_mem_region() return a struct resource. We preserve pccard_mem_map's sys_start and sys_stop elements for the moment since socket drivers are relying on this information for setting up their windows. [PCMCIA] 05-nonbusy When allocating memory and IO resources, do not mark them busy. This allows drivers themselves to claim and mark the regions busy, as they are supposed to. [NET]: Fix module refcounting of TC actions. [NET] move skb_can_coalesce to skbuff.h This one also removes the duplicate can_coalesce in tcp.c and makes it use skb_can_coalesce. Signed-off-by: Arnaldo Carvalho de Melo [NET] move tcp_memory_free to sk_stream_memory_free Signed-off-by: Arnaldo Carvalho de Melo [NET]: Lockless loopback patch (version 2). [SPARC64]: bug.h needs compiler.h Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH] ppc64 CONFIG_ALTIVEC=n build fix With CONFIG_ALTIVEC=n, flush_altivec_to_thread() has no implementation. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: eeh.h warning-fix In file included from include/asm/io.h:365, from drivers/video/kyro/STG4000Reg.h:23, from drivers/video/kyro/STG4000Ramdac.c:16: include/asm/eeh.h:58: warning: `struct device_node' declared inside parameter list include/asm/eeh.h:58: warning: its scope is only this definition or declaration, which is probably not what you want Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] export DMI check functions This patch creates and exports 2 functions which can be used by the rest of kernel code to perform DMI data checks: - dmi_check_system() function checks system DMI data against given blacklist table and on each match runs corresponding callback function; - dmi_get_system_info() function returns DMI data value. Useful for people wanting more complex DMI data check than simple string match. Also filling unused match entries with NO_MATCH made optional, but existing NO_MATCH occurences are left intact, so people are free to continue dmi_scan.c patching without massive reject problems. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use new DMI API for HP Pavilion Example code for the new DMI APU - port HP Pavilion irq workaround to new DMI probing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pcmcia: enable read prefetch on o2micro bridges to fix HDSP enable read prefetching on O2micro bridges. It fixes the problems seen with the RME Hammerfall DSP. Thanks to Eric Still from O2micro for the input. Cc: Russell King Signed-off-by: Daniel Ritz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Permit inode & dentry hash tables to be allocated > MAX_ORDER size Here's a patch to allocate memory for big system hash tables with the bootmem allocator rather than with main page allocator. It is needed for three reasons: (1) So that the size can be bigger than MAX_ORDER. IBM have done some testing on their big PPC64 systems (64GB of RAM) with linux-2.4 and found that they get better performance if the sizes of the inode cache hash, dentry cache hash, buffer head hash and page cache hash are increased beyond MAX_ORDER (order 11). Now the main allocator can't allocate anything larger than MAX_ORDER, but the bootmem allocator can. In 2.6 it appears that only the inode and dentry hashes remain of those four, but there are other hash tables that could use this service. (2) Changing MAX_ORDER appears to have a number of effects beyond just limiting the maximum size that can be allocated in one go. (3) Should someone want a hash table in which each bucket isn't a power of two in size, memory will be wasted as the chunk of memory allocated will be a power of two in size (to hold a power of two number of buckets). On the other hand, using the bootmem allocator means the allocation will only take up sufficient pages to hold it, rather than the next power of two up. Admittedly, this point doesn't apply to the dentry and inode hashes, but it might to another hash table that might want to use this service. I've coelesced the meat of the inode and dentry allocation routines into one such routine in mm/page_alloc.c that the the respective initialisation functions now call before mem_init() is called. This routine gets it's approximation of memory size by counting up the ZONE_NORMAL and ZONE_DMA pages (and ZONE_HIGHMEM if requested) in all the nodes passed to the main allocator by paging_init() (or wherever the arch does it). It does not use max_low_pfn as that doesn't seem to be available on all archs, and it doesn't use num_physpages since that includes highmem pages not available to the kernel for allocating data structures upon - which may not be appropriate when calculating hash table size. On the off chance that the size of each hash bucket may not be exactly a power of two, the routine will only allocate as many pages as is necessary to ensure that the number of buckets is exactly a power of two, rather than allocating the smallest power-of-two sized chunk of memory that will hold the same array of buckets. The maximum size of any single hash table is given by MAX_SYS_HASH_TABLE_ORDER, as is now defined in linux/mmzone.h. Signed-off-by: Paul Mackerras Signed-off-by: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] O_NOATIME support This patch adds support for the O_NOATIME open flag (GNU extension): int O_NOATIME Macro If this bit is set, read will not update the access time of the file. See File Times. This is used by programs that do backups, so that backing a file up does not count as reading it. Only the owner of the file or the superuser may use this bit. It is useful if you want to do something with the file atime (for instance, moving files that have not been accessed in a while to somewhere else, or something like Debian's popularity-contest) but you also want to read all files periodically (for instance, tripwire or debsums). Currently, the program that reads all files periodically has to use utimes, which can race with the atime update: A B open fstat read open read close close utimes And the file still has the old atime, instead of the new one from when B did the read from it. This problem does not happen if A uses O_NOATIME instead of utimes to preserve the atime. This patch adds the O_NOATIME constant for all architectures, but it would also be possible to add it one architecture at a time by defining it to 0 when not defined in asm-*. Based on patch by Marek Michalkiewicz at http://www.uwsg.iu.edu/hypermail/linux/kernel/9811.2/0118.html Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppp_synctty.c receive/write_wakeup fix Allow receive and write_wakeup callbacks to be called at hard interrupt context and/or with interrupts disabled (removes softirq warning). This mirrors changes by Paul Mackerras to ppp_async.c for the same purpose. Patch has been previously posted for comments and has been tested with success by multiple persons. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] airo.c broke But Al fixed it again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jfs build fix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swapoff: activate pages People like to use swapoff/swapon as a way of restoring their VM to a predictable "preconditional" state. Problem is, swapoff leaves mapped anon/pagecache pages on the inactive list, so they immediately get swapped out again when swapspace becomes available. Let's move these pages onto the active list to the VM has to again decide whether to swap them out. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add ovcamchip driver This patch adds a new driver for the OmniVision OV6xx0 and OV7xx0 series of CMOS image sensors. It is currently used by the w9968cf USB webcam driver, which is already in mainline 2.6. Up until now it had to be compiled outside the kernel tree, which is clearly suboptimal. It is also used by version 2 of the ov511 USB webcam driver, which will be merged in the near future. That will reduce some code duplication, since the existing ov511 has much of this code built-in. This was previously submitted to Linux-USB-Devel, and I have fixed the concerns that came up at that time. Developer's Certificate of Origin 1.0 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. Signed-off-by: Mark McClelland Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Uninline machine_specific_memory_setup() Cleanup arch/i386/kernel/setup.c a little bit by: * un-inlining machine_specific_memory_setup() (it's implementations are pretty big to be inlined anyway) * remove setup_memory_region() by moving the code inside setup_arch() I would also recommend BK-renaming all four files (include/asm-i386/*/setup_arch_post.h) to ".c" and moving them into arch/i386/*/, but that obviously is not needed in anyway. But IMHO they are clearly ".c" files, not ".h" files. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add wait_event_interruptible_exclusive() macro This patch defines a macro that does exactly what wait_event_interruptible() does except that it adds the current task to the wait queue as an exclusive task (i.e., sets the WQ_FLAG_EXCLUSIVE flag) rather than as a non-exclusive task as wait_event_interruptible() does. This allows one to do a wake_up_nr() to wake up a specific number of tasks. I'm in the process of submitting a patch to linux-ia64 that requires this capability. (Its subject line is "[PATCH 3/4] SGI Altix cross partition functionality".) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] iommu max segment size This patch is from James, I've changed it slightly only. The problem is that some IOMMU implementations have a maximum limit to the size of the number of contiguously mappable pages (admittedly, this limit is mostly in the resource management algorithms rather than the IOMMUs themselves). This patch adds this concept to the bio layer via the parameter BIO_VMERGE_MAX_SIZE which architectures can define in asm/io.h (if undefined, we assume it to be infinite, which is current behaviour). While adding this, I noticed several places where bio was making incorrect assumptions about virtual mergeability (none of which was a bug: bio was overestimating rather than underestimating). - The worst offender was bio_add_page(), which seemed never to check for virtual mergeability - I also fixed blk_hw_contig_segments() not to check the QUEUE_CLUSTER flag, and not to check the phys segment boundary. In order to track the hw segment size across bios, I had to introduce two extra bio parameters: bi_hw_front_size and bi_hw_back_size which store the sizes of the front and back hw contiguous segments (and which will be equal if there's only one hw segment). When the bio is merged into a request, these fields are updated with the total hw contig size so they can always be used to assess if the merger would violate the BIO_VMERGE_MAX_SIZE parameter. Signed-Off-By: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: v4l2 API updates This patch has some minor updates to v4l2 API: * A new pixel format (V4L2_PIX_FMT_SBGGR8). * Adds some #defines for tv norms for convenience. * Allow to specify the video source to capture from on a per-frame basis. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: update video-buf for per-frame input switching. This patch updates the video-buf module to support the per-frame input switching added by the v4l2 API patch. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: video-buf magic numbers This patch adds some magic IDs and checks for them to the data structs of the video-buf module. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: video-buf fixes. This patch has some minor bugfixes for the video-buf module. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: msp3400 cleanup. This patch has some cleanups for the msp3400 module: Balance is used directly now instead of maintaining the state as left/right volume and calculate the balance from that. The msp3400 did that only for historical reasons and it isn't needed any more ... Credits for that go to Perry Gilfillan. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: ir-common update Some minor changes for the ir-common module: Update for the RC5 keytable and increase the IR_KEYTAB_SIZE #define. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: tuner + tda9887 updates This is a big update for the tuner and tda9887 modules which are used for TV card tuning. The tda9887 module is basically completely rewritten and understands all the config bits now instead of having just some fixed config presets. Some of these config bits can be changed by insmod options now. The other big change is that both modules allow to use the V4L2 API for inter-module communication (i.e. when bttv/saa7134/... pass through the tuning ioctls to the modules). That allows to specify the TV norm more precisely (not just PAL but PAL-I, PAL-BG, ...), which is needed in some cases to make TV audio work correctly. Using the old v4l1 API is still possible so this shouldn't break any users of these two modules. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: bttv driver update This is a update of the bttv driver. Changes: * some card-specific fixes + new cards. * separate buffer switching for video frames and vbi data, that should make bttv less sensitive to high irq latencies. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: IR input driver update. This patch updates the ir-kbd-gpio and ir-kbd-i2c drivers. Nothing major, just some keytable fixes and support for more hardware. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] saa7134 driver update This is an update for the saa7134 driver. Changes: * add support for more TV cards, as usual ;) * add support for image cropping. * use v4l2 API to talk to the tuner chips (thus it depends on the tuner/tda9887 patch). * fixes for the audio carrier scan. * make transport stream packet size configurable. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: cx88 driver update This is a update for the cx88 tv card driver. Changes: * finally make it build with gcc 2.95 ;) * add new tv cards. * plenty of fixes for the TV sound code. * use v4l2 API for communication with tuner + tda9887 * misc other minor stuff. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: radio-zoltrix fix. From: Paul Focke I recently upgraded from 2.4 to kernel 2.6 & noticed that the zoltrix radio driver was not working. Seems like a little typo. I tested this on my system and it's working fine now. I doubt there are any other linux users in the world who still use this card ;-) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix isdn to not assume mem*io return values These are defined like the normal ISO C mem* routines although x86 happens to return void by accident. Fix isdn to not assume a return value. Sent to the isdn list, but as usual I didn't get any reply. The patch is from the Debian kernel package and really old. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] export sys_ioctl to modules Small patch to export sys_ioctl if CONFIG_COMPAT is set. This allows platforms to implement 32 bit compatibility ioctl handlers in modules. Submitted-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mprotect propagate anon_vma When mprotect shifts the boundary between vmas (merging the reprotected area into the vma before or the vma after), make sure that the expanding vma has anon_vma if the shrinking vma had, to cover anon pages imported. Thanks to Andrea for alerting us to this oversight. Cc: Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse annotation for sys_quotactl() Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix possible stack corruption during reiserfs_file_write With preallocation turned on, reiserfs_allocate_blocks_for_region wasn't sending a large enough array to hold all the blocks it was asking the block allocator to find. This can result in stack corruption. The fix is to kmalloc an array to hold the blocks, making sure to allocate something large enough. There was also a recent optimization to force the allocator to find a free region large enough to hold the entire preallocation size. This was sometimes causing more blocks to be allocated then had been requested, which would also overflow the array. Something more elegant is required here, until then just disable the optimization. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NUMA API updates This patch three issues in NUMA API - When 1 was passed to set_mempolicy or mbind as maxnodes argument get_nodes could corrupt the stack and cause a crash. Fix that. - Remove the restriction to do interleaving only for order 0. Together with the patch that went in previously to use interleaving policy at boot time this should give back the original behaviour of distributing the big hash tables. - Fix some bad white space in comments Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] isp16 check_region() removal Convert check_region to request_region and clean up some parentheses in return statements for drivers/cdrom/isp16.c. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] deadline I/O scheduler documentation Document the deadline scheduler and its tunables. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [NET] generalise wait_for_tcp_connect This will be used by the poor cousins, look, for instance, at x25_wait_for_connection_establishment :-) Signed-off-by: Arnaldo Carvalho de Melo [NET] introduce sk_stream_wait_close, from tcp code Will be used by the poor cousins. Signed-off-by: Arnaldo Carvalho de Melo [NET] generalise wait_for_tcp_memory Renaming it to sk_stream_wait_memory Signed-off-by: Arnaldo Carvalho de Melo [PATCH] move as documentation Move the anticipatory scheduler documentation into Documentation/block. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CREDITS update Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NLS support for ASCII I created an ASCII NSL module manually based on the ISO-8859-1 NLS module. This might be of use for people who do not want any charset conversion to take place. fs modules like vfat for example then could be forced to display any non-ASCII character in the uni_xlate escaped form. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: remove old junk Remove old, unused initialization stuff. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] DS1286 cleanups Remove #ifdef'ed hooks for the DS1286 driver through the kernel. While cleaning make it work as a module also and add back the core of the driver got lost when drivers/sgi/ was shredded. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Cobalt LCD Driver update Mostly reformatting to get the sometimes random formatting style of the LCD driver to something Linux compliant. Use module_init/exit for module initialization and cleanup. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add M48T35 RTC driver Add M48T35 RTC driver for the SGI IP27 aka Origin 200, Origin 2000 and Onyx 2. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jfs warning fix On ppc64, s64 is `long'. In file included from fs/jfs/jfs_xtree.h:25, from fs/jfs/jfs_incore.h:26, from fs/jfs/super.c:29: fs/jfs/jfs_btree.h: In function `BT_STACK_DUMP': fs/jfs/jfs_btree.h:151: warning: long long unsigned int format, s64 arg (arg 2) Cc: Dave Kleikamp Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lindent rwsem Lindent rwsem.c and rwsem-spinlock.c and fix a few things by hand. Also added a couple of comments for the memory barriers. Added the __sched annotation that was left out of rwsem-spinlock.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix warning in tdfxfb.c drivers/video/tdfxfb.c:1104: warning: initialization discards qualifiers from pointer target type Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix idr.h comment Fix path in header file. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] wanxl firware build fix allmodconfig and allyesconfig are currently failing because they select wanxl firmware rebuild, and that requires an m68k assembler toolchain. Add a new generic option to the "Generic Driver Options" menu. The option is defaul equals y and prevents us from building firmware unless really needed. Firmware is usually provided in separate filer '_shipped', and there is no need to rebuild them unless strictly required. First user is WanXL - which otherwise required a m68k tool-set to compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Avoid rebuild of IKCFG when using O= When using a separate output directory the in-kernel config wiere rebuild each time the kernel was compiled. Fix this by specifying correct path to Makefile in the prerequisite to the ikconfig.h file. Signed-off-by: Sam Ravnborg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kbuild: add deb-pkg target To prepare kbuild for more kernel packaging formats move all packaging support to scripts/package. In top-level Makefile introduce generic support for all package formats using target names *-pkg. Included the old rpm target for backward compatibility. A new variable KBUILD_IMAGE is used to specify what kernel image will be part of the final package, and is to be set by the arch specific makefile. KBUILD_IMAGE may be overridden from command line or environment. KBUILD_IMAGE will see wider usage later, mainly when installing kernel images. Introducing KBUILD_IMAGE allowed arch specific details to be deleted from the mkspec and builddeb scripts. While in the process added the deb packet format. Script is From: Wichert Akkerman To create a RPM packet use 'make rpm-pkg'. To create a deb packet use 'make deb-pkg'. Both targets are included in 'make help' Signed-off-by: Sam Ravnborg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] only clear ->last_merge when appropriate Make sure we only clear q->last_merge hint, if it matches the request currently passed in. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PCMCIA] 06-ide IDE releases the PCMCIA resource to work around the need to have two conflicting subsystems (IDE and PCMCIA) claim resources. Since PCMCIA no longer marks its resouces busy, this work around must be removed. NTFS: Use atomic kmap instead of kmap() in fs/ntfs/aops.c::ntfs_read{page,_block}(). Signed-off-by: Anton Altaparmakov NTFS: Use case sensitive attribute lookups instead of case insensitive ones. Signed-off-by: Anton Altaparmakov NTFS: Lock all page cache pages belonging to mst protected attributes while accessing them to ensure we never see corrupt data while the page is under writeout. Signed-off-by: Anton Altaparmakov NTFS: Add framework for generic ntfs collation (fs/ntfs/collation.[hc]). We have ntfs_is_collation_rule_supported() to check if the collation rule you want to use is supported and ntfs_collation() which actually collates two data items. We currently only support COLLATION_BINARY and COLLATION_NTOFS_ULONG but support for other collation rules will be added as the need arises. Signed-off-by: Anton Altaparmakov NTFS: Add a new type, ntfs_index_context, to allow retrieval of an index entry using the corresponding index key. To get an index context, use ntfs_index_ctx_get() and to release it, use ntfs_index_ctx_put(). This also adds a new slab cache for the index contexts. To lookup a key in an index inode, use ntfs_index_lookup(). After modifying an index entry, call ntfs_index_entry_flush_dcache_page() followed by ntfs_index_entry_mark_dirty() to ensure the changes are written out to disk. For details see fs/ntfs/index.[hc]. Note, at present, if an index entry is in the index allocation attribute rather than the index root attribute it will not be written out (you will get a warning message about discarded changes instead). Signed-off-by: Anton Altaparmakov Add support for MPC8560 CPU and WindRiver PowerQUICC III SBC8560 Signed-off-by: Kumar Gala NTFS: Load the quota file ($Quota) and check if quota tracking is enabled and if so, mark the quotas out of date. This causes windows to rescan the volume on boot and update all quota entries. Signed-off-by: Anton Altaparmakov Update CPM UART driver according to feedback from Dan Malek. Patch from Pantelis Antoniou [PATCH] avoiding obsolete scsi APIs in dc395 replace obsolete typedefs and scsi_to_pci_dma_dir, use proper includes and re-order includes correctly. Signed-off-by: James Bottomley [NET] generalise tcp_set_owner_r and tcp_rfree Will be used by the poor cousins Signed-off-by: Arnaldo Carvalho de Melo [NET]: Fix dev_queue_xmit build with older gcc. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NET]: Loopback, allocate per-cpu stats statically and fix cpu refcounting. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PPC32] Add SysRq-G support to our KGDB stub. From David Woodhouse . Rename 'carmel' block driver to 'sx8'. Requested by Promise. The hardware isn't widely deployed yet, with almost all users being early evaluators, so this should be OK. [ACPI] fix double timer interrupt mapping (Hans-Frieder Vogt) caused by errant fix for OSDL 2835 [NET]: In sungem driver, keep track of rx buffer alloc size based upon MTU. [PATCH] wd7000 updates Avoid old APIs and fix a bad bug were the irq handler argument was derefenced as struct Scsi_Host * instead of Adpater * which made the driver instantly crash on SMP. Signed-off-by: James Bottomley [NETFILTER]: Fix non-existant config option for IP_NF_ASSERT, fix some broken assertions Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: complain about brokeness on SMP for pid, sid and command matching in ipt_owner Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Change permissions of /proc/net/ip_conntrack to 0440 Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: skip internal targets in iptables proc listing Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] wd33c93 update avoid obsolete APIs Signed-off-by: James Bottomley [NETFILTER]: Fix inverted matching in ipt_helper Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: 'any' matching in ipt_helper Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Don't reroute on nfmark change in mangle table when routing by nfmark is not enabled Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Fix expectation eviction order Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Fix offset calculation in amanda conntrack helper Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Relax hook check in ipt_CLASSIFY Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add addrtype match Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add realm match Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: ip_table_raw C99 initialization Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] avoid obsolete APIs in sr Signed-off-by: James Bottomley [PATCH] avoid obsolete APIs in fdomain Signed-off-by: James Bottomley [PATCH] avoid obsolete APIs in atp870u + minor cleanups Signed-off-by: James Bottomley [PATCH] aacraid 32bit app ioctl compat patch (Updated) Allows 32 bit apps to use ioctls in a 64 bit kernel. Signed-off-by Mark Haverkamp Signed-off-by: James Bottomley [PKT_SCHED]: C99'ify act_police_ops. merge fixups. [PATCH] tmscsim: init / exit cleanup On Sun, 23 May 2004, Christoph Hellwig wrote: > these leaks. Maybe also merge dc390_init and dc390_init_one? > > Similarly I think DC390_release should be merged into dc390_remove_one. Attached. Also fixed some __init / __devinit and __exit / __devexit attributes. Although, would be good to have something like #ifdef CONFIG_HOTPLUG_PCI #define __pcidevinit #define __pcidevinitdata #define __pcidevexit #define __pcidevexitdata #else #define __pcidevinit __init #define __pcidevinitdata __initdata #define __pcidevexit __exit #define __pcidevexitdata __exitdata #endif Signed-off-by: James Bottomley [ACPI] re-factor previous mpparse IRQ override fix (Linus Torvalds) Reflect that only the dstirq depends on the dstapic. [PATCH] tmscsim: host_lock use in LLD While reviewing tmscsim, I noticed something, I didn't quite like / understand. The driver takes the host_lock (with irqsave) at the entry to the ISR, and releases it at the exit. And inside the ISR there are potentially long busy-waits... Like int ctr = 6000000; /* only try for about a second */ while( --ctr && !((dstate = DC390_read8 (DMA_Status)) & DMA_XFER_DONE) && pSRB->SGToBeXferLen ); The attached patch is attempting to fix those places. Not sure if this is a proper fix though. In my understanding, after looking through the code, the host_lock is used to protect host-specific data and host-registers. The ->queuecommand is already called with it help, so, one just, basically, have to protect other contexts - interrupt, timer,... So, looks mostly right. Signed-off-by: James Bottomley [NET] generalise tcp_error, renaming it to sk_stream_error Signed-off-by: Arnaldo Carvalho de Melo [PATCH] ibmtr missing include [PATCH] sparse: ncpfs/ioctl.c annotation [PATCH] sparse: zlib stray extern removal [PATCH] sparse: efivars.c initializer fix [PATCH] sparse: drivers/net/wan annotation [PATCH] sparse: raw1394 annotation [PATCH] sparse: sock_fprog sanitized sock_fprog instances that had kernel pointer in ->filter (both of them - in ppp_generic and isdn_ppp) replaced with explicit pairs len + kernel pointer. Copying of userland sock_fprog (with its __user ->filter) cleaned up and sanitized. Trivial annotation done in the rest of ->ioctl() in ppp_generic and isdn_ppp. [PATCH] sparse: quota annotation [PATCH] sparse: hd.c annotation [PATCH] sparse: the rest of ieee1394 annotation [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb Will be used by the poor cousins Signed-of-by: Arnaldo Carvalho de Melo [PATCH] 2.6.7-mm1: drivers/scsi/hosts.h -> scsi/scsi_host.h On Sun, Jun 20, 2004 at 05:46:32PM -0700, Andrew Morton wrote: >... > All 226 patches: >... > bk-libata.patch >... drivers/scsi/hosts.h is obsolete, use scsi/scsi_host.h. Please apply Adrian [NET] generalise tcp_moderate_sndbuf Renaming it to sk_stream_moderate_sndbuf, further patches will move all the tcp memory pressure handling support into net/core/stream.c to make them usable by the poor cousins, starting with LLC. Signed-off-by: Arnaldo Carvalho de Melo [libata] move some code around Split ata_eng_timeout into the main part (ata_qc_timeout) and the part called by the SCSI layer (ata_eng_timeout). Zero behavior changes. Fix up permissions of some files that were not readable by "other". The normal permissions for the kernel tree should be -rw-r--r--. [libata] fix build error, minor cleanups [libata ata_piix] combined mode bug fix; improved ICH6 support [NET] move send_head from tcp private area to struct sock The poor cousins also need this, LLC will be the first to use it. Signed-off-by: Arnaldo Carvalho de Melo NTFS: Forgot the set_page_writeback()/end_page_writeback() in the mst protected writepage case. Signed-off-by: Anton Altaparmakov [ARM] Move cpu_switch_mm() and cpu_get_pgd() to asm/proc-fns.h [PATCH] [1/18] qla2xxx: Add wmb() to critical paths Add memory barriers to ensure that all load operations have completed before the (MMIO) write to the ISP's registers. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [2/18] qla2xxx: Correct residual counts Problem reported/corrected by Tony Battersby [tonyb@cybernetics.com]: o The qla2xxx driver calculates data transfer residuals for some but not all circumstances. The patch below adds data transfer residual calculations for the remaining cases. o Interrogate the proper cmnd[] array when determining the transfer direction. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: remove unnecessary command direction determination On Tuesday, June 22, 2004 12:07 AM, Arjan van de Ven wrote: > On Tue, 2004-06-22 at 07:49, Andrew Vasquez wrote: > > > diff -Nru a/drivers/scsi/qla2xxx/qla_iocb.c > b/drivers/scsi/qla2xxx/qla_iocb.c > > --- a/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 > > +++ b/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 @@ > > -43,7 +43,7 @@ else if (cmd->sc_data_direction == > > DMA_FROM_DEVICE) cflags = CF_READ; else { > > - switch (cmd->data_cmnd[0]) { > > + switch (cmd->cmnd[0]) { > > case WRITE_6: > > case WRITE_10: > > case WRITE_12: > > this sounds wrong. > Yes, it is _wrong_! This code is baggage left behind from earlier drivers when we were 'asked' to work around certain applications' inability to properly construct commands. > Is there any reason qlogic drivers can't use/trust the midlayer > instead of doing qla2x00_get_cmd_direction() to reverse engineer to > direction ?? Sure. Especially considering an earlier thread: http://marc.theaimsgroup.com/?t=108727983000002&r=1&w=2 Signed-off-by: James Bottomley [PATCH] [3/18] qla2xxx: PCI DMA mappings rework Restructure qla2x00_start_scsi() so that PCI mappings are done after we've verified command list and request queue resource availability. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [4/18] qla2xxx: ISR RISC paused fixes Problem reported/corrected by Michael Reed [mdr@sgi.com]: We have a 2312 that puts the 8.00.00b12-k qla2xxx driver into an infinite loop with a solid interrupt, 0x8008, hcsr = 0x7430, risc status register 0x40008110, immediately after enabling parity on the board. It looks as though the early out test in qla_isr.c:qla2x00_intr_handler() against stat is broken. HSR_RISC_PAUSED is set. Also, there's a stale mailbox completion flagged (stat&0xff) which will short circuit the default case in the switch if it got that far. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [5/18] qla2xxx: Add module parameter permissions Add permissions to the driver's module_params. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [6/18] qla2xxx: Initialization fixes Small initialization fixes: o 'point-to-point preferred, else loop' is not a safe connection mode setting for ISP2200 boards. Use 'loop preferred, else point-to-point.' o Add modules parameter to enable ZIO -- Support mode 5 only. o No point in doing a PRLI (process login) to the SNS port. o Fix problem where the driver would incorrectly skip ports with the same domain and area of the HBA. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [7/18] qla2xxx: Tape command handling fixes Fix several tape handling issue: 1) When the firmware receives the LOGO from the device, any active exchanges will be returned with a completion status of 0x29 -- this will cause the port to be marked as lost and request made to the DPC routine to begin a relogin attempt. The problem is, since we've never actually logged out of the device and cannot do so in interrupt context, we must be sure to perform the logout before the qla2x00_fabric_login() in the RELOGIN_NEEDED code. 2) Sets the Get Port Database options to ZERO when issuing the call to qla2x00_get_port_database(). This consolidates actuall login handling in the place it should be, in the previous qla2x00_fabric_login() call rather than depending on any 'hidden' behaviour of the firmware. If a device did a LOGO after the login, then any subsequent exachanges will be returned with an 0x29 completion status and the RELOGIN_NEEDED code will handle the login. 3) Finally, if the master and slave state do not indicate a logged-in state from the Get Port Database call, then one cannot depend on the information returned from the firmware -- the firmware typically wipes out the PCB information for a given loopID when logged out. So, return immediately with a failed status. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [8/18] qla2xxx: Remove dead code Remove several unused failover variables and functions from the embedded driver. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [9/18] qla2xxx: Tape command handling fixes Address several outstanding problem within the various eh_*() functions: o Fixup nested spinlock usage in error-hanlding functions. o Set the Loop down timer during abort isp if loop was already down for the driver to detect cable is unplugged at min time. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [10/18] qla2xxx: Additional tape handling fixes Issue a big-hammer after link-down-timeout expires in order properly return tape commands to the mid-layer. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [ARM] Correct MMCI clock rate on Integrator/CP. [PATCH] [11/18] qla2xxx: Misc. fixes Small fixes: o Remove incorrect and unused ISP2100 #define SS_RESIDUAL_LEN_VALID. o Fix problem where an incorrect status would be returned for qla2x00_configure_fabric() if the driver was unable to log into a fabric's SNS. o Check for the additional WAIT_FOR_AL_PA state in qla2x00_fw_ready() since switch vendors may push NOS/OLS primitives during a 'port disabled' state. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [12/18] qla2xxx: Extend firmware dump support Add firmware dump support for ISPs with memory chips larger than 128KB (512/1024KB). Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] Fix sparse warning in fs/devfs/base.c From: Mika Kukkonen Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] Fix sparse warning in fs/proc/base.c From: Mika Kukkonen Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] Fix sparse warning in drivers/block/ll_rw_blk.c From: Mika Kukkonen Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] sparse: make sys_quotactl() prototype match function Al missed this one in his sparse fixes Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] [13/18] qla2xxx: Remove TRUE/FALSE usage Christoph Hellwig : o Remove TRUE/FALSE #define usage within the driver. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley PATCH [14/18] qla2xxx: Use proper include files From: Andrew Vasquez Use the standard include/scsi/* headers rather than those in drivers/scsi/. Slightly modified variant from initial patch sent by Christoph Hellwig . Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley (fixed rejections) [PATCH] [15/18] qla2xxx: SRB handling cleanup and fixes Cleanup qla2x00_eh_wait_on_command() srb_t handling. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley PATCH [16/18] qla2xxx: 23xx/63xx firmware updates From: Andrew Vasquez Resync with latest released firmware -- 3.02.30. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [17/18] qla2xxx: Bus reset handler fixes Fix incorrect return-code check in bus-reset error handler. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] [18/18] qla2xxx: Update driver version Update version number to 8.00.00b14-k. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] USB: sparse fixups for devio.c [PATCH] I2C: Drop out-of-date code in w83781d and w83627hf Here is a simple patch which drops some out-of-date code in the w83781d and w83627hf i2c chip drivers. These bits are left over from the times when chip drivers were setting default limits at init. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rx.c Fix C99'ism that breaks older gcc's. Also clean it all up - use get_cpu()/put_cpu() instead of playing games by hand with preemption. [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rkt.c From: maximilian attems Cleaned up code for error handing. Added checks to unmap memory, release IRQ's, and freeing up dev->queue. Signed-off-by: MJK Signed-off-by: Maximilian Attems Signed-off-by: James Bottomley (fixed up rejects by hand) [PATCH] kernel_thread() audit drivers/scsi/aacraid/sa.c Cleaned up code for error handing. Added checks to unmap memory, release IRQ's, and freeing up dev->queue. Signed-off-by: MJK Signed-off-by: Maximilian Attems Signed-off-by: James Bottomley [blk carmel] s/carmel/sx8/ in the driver itself sparse: clean up warning in swapfile.c [PATCH] HSV100 is verified as supporting REPORT LUNs Signed-off-by: James Bottomley [NET] Move sndmsg_page and sndmsg_off to struct sock Yeah, the poor cousins will use this as well :-) [IPSEC]: In ESP, do not put scatterlist array on stack. Put it in per-esp data instead. Noticed by Linus. Signed-off-by: David S. Miller [NET]: In loopback, make get_stats() get correct per-cpu stats. Signed-off-by: Arthur Kepner Signed-off-by: David S. Miller [PPC32] Change how we handle DP memory on MPC8xx. We now have a 'remote heap' implemented (see comments in arch/ppc/lib/rheap.c) which manages this memory. From Pantelis Antoniou . Signed-off-by: Tom Rini [NET] rename struct inet_protocol to net_protocol The poor cousins will also have registration routines, etc. Signed-off-by: Arnaldo Carvalho de Melo [PPC32] Update CPM2 (MPC82xx/MPC85xx) code to use rheap for DP memory Originally from: Rune Torgersen Signed-off-by: Tom Rini [NET] remove fill_page_desc, its just a copy of skb_fill_page_desc Also remove an unused inet_opt variable from ipv6 code. Signed-off-by: Arnaldo Carvalho de Melo [PATCH] raw.c cleanups - pass the raw_config_request by reference, not by value. - fix whitespace drainbamage Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 1913/1: lh7a40x #3 (1/2) serial Patch from Marc Singer Serial console and port driver for the LH7a40x CPUs. The only change made since the last patch was to change the PORT_ID (again). This patch superceeds two serial driver patches. [ARM PATCH] 1933/1: Convert PXA serial driver to device model and implement suspend and resume Patch from Ian Campbell Patch 1848/1 removed the hack for preserving FFUART over sleep. This patch adds back that support in the correct place by converting the PXA serial driver to use the driver model and hooking up the suspend and resume methods. [ARM PATCH] 1935/1: Fix bug in sa1111 driver Patch from John Lenz The __sa1111_probe function is declared __init, and it is called from the sa1111_probe function, which is not declared __init. Signed-off-by: John Lenz [PATCH] PCI: Fix MSI-X setup msix_capability_init() puts the offset of the MSI-X capability into pos, then uses pos as a loop index to clear the MSI-X vector table, and then tries to use pos as the offset again, which results in writing the MSI-X enable bit off into space. This patch fixes that by adding a new loop index variable and using that to clear the vector table. Signed-off-by: Roland Dreier Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: remove duplicate in pci_ids.h Get rid of duplicate entry, one is in the middle of the file with duplicate at the end Signed-off-by: Stephen Hemminger Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix out of order entry in pci_ids.h The last entry in pci_ids.h is out of order, someone wasn't reading the comment to keep it sorted. Signed-off-by: Stephen Hemminger Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: add id's for sk98 driver Redoing the sk98 driver to correct pci model. These are (most of) the entries it uses. Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 1936/1: Update collie fb entries to use new style initializers Patch from John Lenz Switches the collie framebuffer mach_info structure to use the new initializers. Signed-off-by: John Lenz [ARM PATCH] 1939/1: SA1100 watchdog driver also works on PXA2xx Patch from Ian Campbell The SA1100 watchdog driver also works fine on the PXA2xx. Tested on a PXA255 based platform. [NET]: rtentry->rt_dev is __user. The device entry in the route ioctl's needs annotation. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [IPV4]: ip_rt_ioctl argument is user pointer. The function ip_rt_ioctl expects a pointer to a user route structure, so define it that way and cast as appropriate. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: Turn off debug message in bridge ioctl. Trivial patch to turn off a debug message. It seems some SNMP daemons just periodically trying to look at MII state. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [ARM PATCH] 1940/1: asm-arm/checksum.h - missing include Patch from David Vrabel Missing include (cf. include/asm-i386/checksum.h) in include/asm-arm/checksum.h. [libata sata_sil] Re-fix mod15write bug Certain early SATA drives have problems with write requests whose length satisfy the equation "sectors % 15 == 1", on the SiI 3112. Other drives, and other SiI controllers, are not affected. The fix for this problem is to avoid such requests, in one of three ways, for the affect drive+controller combos: 1) Limit all writes to 15 sectors 2) Use block layer features to avoid creating requests whose length satisfies the above equation. 3) When a request satisfies the above equation, split the request into two writes, neither of which satisfies the equation. I chose fix #1, the most simple to implement. After discussion with Silicon Image and others regarding the impact of this fix, I have decided to remain with fix #1, and will not be implementing a "better fix". This means that the affected SATA drives will see decreased performance, but set of affected drives is small and will never grow larger. Further, the complexity of implementing solution #2 or solution #3 is rather large. When implementing lba48 'large request' support, I unintentionally broke the fix for these affected drives. Kudos to Ricky Beam for noticing this. This change restores the fix, by adding a flag ATA_DFLAG_LOCK_SECTORS to indicate that the max_sectors value set by the low-level driver should never be changed. [NET] Generalise tcp memory pressure handling Signed-off-by: Arnaldo Carvalho de Melo [PATCH] ppc32: Cleanups & warning fixes of traps.c This cleans up arch/ppc/kernel/traps.c and vecemu.c to use the same formatting style for all functions, and fixes 2 warnings in the altivec floating point emulation code. No functional change. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: oprofile support This adds basic oprofile support to ppc32. Originally from Anton Blanchard, I just re-diffed it against current kernels. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Support for new Apple laptop models This adds support for newer Apple laptop models. It adds the basic identification for the new motherboards and the cpufreq support for models using the new 7447A CPU from Motorola. This is mostly the work of John Steele Scott with some bits from Sebastian Henschel and some rework by myself. Please apply, Signed-off-by: John Steele Scott Signed-off-by: Sebastian Henschel Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] radeonfb: Fix panel detection on some laptops The code in radeonfb looking for the BIOS image currently uses the BIOS ROM if any, and falls back to the RAM image if not found. This is unfortunatly not correct for a bunch of laptops where the real panel data are only present in the RAM image. This works around this problem by preferring the RAM image on mobility chipsets. This is definitely not the best workaround, we need some arch support for linking the RAM image to the PCI ID (preferrably by having the arch snapshot it during boot, isolating us completely from the details of where this image is in memory). I'll see how we can get such an improvement later. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] Handle altivec assist exception properly This is the PPC64 counterpart of the PPC32 Altivec assist exception handler that went in recently. On PPC64 machines with Altivec (i.e. machines that use the PPC970 chip, such as the G5 powermac), the altivec floating-point instructions can operate in two modes: one where denormalized inputs or outputs are truncated to zero, and one where they aren't. In the latter mode the processor can take an exception when it encounters denormalized floating-point inputs or outputs rather than dealing with them in hardware. This patch adds code to deal properly with the exception, by emulating the instruction that caused the exception. Previously the kernel just switched the altivec unit into the truncate-to-zero mode, which works but is a bit gross. Fortunately there are only a limited set of altivec instructions which can generate the assist exception, so we don't have to emulate the whole altivec instruction set. Note that Altivec is Motorola's name for the PowerPC vector/SIMD instructions; IBM calls the same thing VMX, and currently only IBM makes 64-bit PowerPC CPU chips. Nevertheless, I have used the term Altivec in the PPC64 code for consistency with the PPC32 code. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] ppc32: Support for new Apple laptop models This adds sound support for some of the newer PowerBooks. It appears that this chip supports the AWACS sample rates, but has a snapper-style mixer. Tested and works on my PowerBook5,4. Signed-off-by: Jesse Barnes Signed-off-by: Linus Torvalds WindRiver PowerQUICC III platform support cleanup. Respond to maintainer feedback -- remove unneeded setup for the FEC port which doesn't exist; small cosmetic changes. Signed-off-by: Kumar Gala [NETFILTER]: Fix iptable_raw.c build with older gcc. [ARM] Fix Integrator/CP timer support. [PATCH] bug in V-link handling (arch/i386/pci/irq.c) Via southbridges use register 0x3c of the on-board devices (USB and AC97) to control interrupt routing for those. In drivers/pci/quirks.c we set it correctly (dev->irq & 15). However, in pirq_enable_irq() where the second half of that stuff lives, we forget to apply the mask. That's what causes problems with ioapic on via motherboards in 2.6. One-liner below ACKed by Alan, verified on via-based boxen here, obviously doesn't affect non-via ones (we only set interrupt_line_quirk for via chipsets). [ARM] Fix platform device registration. Since the platform device registration is now merged into the driver model, remove it from the ARM specific code. [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} Only new requirement was to add a max_header field to struct sock sk_prot member. Signed-off-by: Arnaldo Carvalho de Melo [ARM PATCH] 1943/1: OMAP compile fix Patch from Tony Lindgren This patch fixes OMAP compile after the ARM timer changes in cset 1.1821.5.3 and dma-mapping device address translation in cset 1.1821.5.3. [PATCH] USB: Add logical connect-change notices to the hub driver This patch implements the missing functionality necessary to get device resets working fully. It adds a bit-array of ports with logical connect-changes pending to the hub structure, so that the hub driver can recognize that these ports should be treated as though they had disconnected and re-connected. This is how we will handle devices that "morph" (i.e., change their descriptors) following a reset, as might happen with a firmware upload. There is also a lot of additional kerneldoc and a few small changes to some log messages. An important restriction is that usb_reset_device() will refuse to work if the device is suspended. Trying to reset a suspended device leads to several problems, not least of which is that the device's parent hub might be suspended as well. With this patch the device reset code is pretty much complete. However it won't always work correctly until the device locking is straightened out. That's coming up next. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fail pending URBs in dummy_hcd upon disconnect This patch fixes another bug in the dummy_hcd driver. When a gadget driver unregisters (simulating a device disconnect), dummy_hcd stops the timer that it uses for processing outstanding URBs. Unfortunately this means that those URBs will never be given back. The patch lets the timer continue running; when it expires all the remaining URBs will fail so the timer won't be reinitialized. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: patches to acm driver - races with urb->current, union header evaluation, DMA handling Signed-off-By: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB: another error check in acm I overlooked that setting control lines in open can fail. - check for error doing control transfers Signed-Off-By: Oliver Neukum Signed-off-by: Vojtech Pavlik Signed-off-by: Greg Kroah-Hartman [ARM] Fix EBSA110 timer functions. Unfortunately this broke in Deepak's merge. Fix it. [ARM] Fix Footbridge timer functions. [ARM] Fix acornfb build error. [PATCH] PCI: (one more) PCI quirk for SMBus bridge on Asus P4 boards my board has one of those "clever" bioses that hide the smbus. this tiny patch adds it to the Bad Guy List (TM). Signed-off-by: Greg Kroah-Hartman [NETFILTER]: Use correct size_t printk format string in ipt_addrtype.c [ATM]: In proc_mpc_read, make length ssize_t. [NET] make the struct proto entries related to memory pressure be pointers This is needed because tcpv6_prot has to point to the same place tcp_prot points, as they share the same accounting variables. This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, thanks David! Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [PATCH] Allow i386 to reenable interrupts on lock contention From: Zwane Mwaikambo Following up on Keith's code, I adapted the i386 code to allow enabling interrupts during contested locks depending on previous interrupt enable status. Obviously there will be a text increase (only for non CONFIG_SPINLINE case), although it doesn't seem so bad, there will be an increased exit latency when we attempt a lock acquisition after spinning due to the extra instructions. How much this will affect performance I'm not sure yet as I haven't had time to micro bench. text data bss dec hex filename 2628024 921731 0 3549755 362a3b vmlinux-after 2621369 921731 0 3543100 36103c vmlinux-before 2618313 919222 0 3537535 35fa7f vmlinux-spinline The code has been stress tested on a 16x NUMAQ (courtesy OSDL). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jbd needs to wait for locked buffers From: Chris Mason jbd needs to wait for any io to complete on the buffer before changing the end_io function. Using set_buffer_locked means that it can change the end_io function while the page is in the middle of writeback, and the writeback bit on the page will never get cleared. Since we set the buffer dirty earlier on, if the page was previously dirty, pdflush or memory pressure might trigger a writepage call, which will race with jbd's set_buffer_locked. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Move saved_command_line to init/main.c From: Rusty Russell Currently every arch declares its own char saved_command_line[]. Make sure every arch defines COMMAND_LINE_SIZE in asm/setup.h, and declare saved_command_line in linux/init.h (init/main.c contains the definition). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu lock update: Add per-cpu batch counter From: Manfred Spraul Below is the one of my patches from my rcu lock update. Jack Steiner tested the first one on a 512p and it resolved the rcu cache line trashing. All were tested on osdl with STP. Step one for reducing cacheline trashing within rcupdate.c: The current code uses the rcu_cpu_mask bitmap both for keeping track of the cpus that haven't gone through a quiescent state and for checking if a cpu should look for quiescent states. The bitmap is frequently changed and the check is done by polling - together this causes cache line trashing. If it's cheaper to access a (mostly) read-only cacheline than a cacheline that is frequently dirtied, then it's possible to reduce the trashing by splitting the rcu_cpu_mask bitmap into two cachelines: The patch adds a generation counter and moves it into a separate cacheline. This allows to removes all accesses to rcu_cpumask (in the read-write cacheline) from rcu_pending and at least 50% of the accesses from rcu_check_quiescent_state. rcu_pending and all but one call per cpu to rcu_check_quiescent_state access the read-only cacheline. Probably not enough for 512p, but it's a start, just for 128 byte more memory use, without slowing down rcu grace periods. Obviously the read-only cacheline is not really read-only: it's written once per grace period to indicate that a new grace period is running. Tests on an 8-way Pentium III with reaim showed some improvement: oprofile hits: Reference: http://khack.osdl.org/stp/293075/ Hits % 23741 0.0994 rcu_pending 19057 0.0798 rcu_check_quiescent_state 6530 0.0273 rcu_check_callbacks Patched: http://khack.osdl.org/stp/293076/ 8291 0.0579 rcu_pending 5475 0.0382 rcu_check_quiescent_state 3604 0.0252 rcu_check_callbacks The total runtime differs between both runs, thus the % number must be compared: Around 50% faster. I've uninlined rcu_pending for the test. Tested with reaim and kernbench. Description: - per-cpu quiescbatch and qs_pending fields introduced: quiescbatch contains the number of the last quiescent period that the cpu has seen and qs_pending is set if the cpu has not yet reported the quiescent state for the current period. With these two fields a cpu can test if it should report a quiescent state without having to look at the frequently written rcu_cpu_mask bitmap. - curbatch split into two fields: rcu_ctrlblk.batch.completed and rcu_ctrlblk.batch.cur. This makes it possible to figure out if a grace period is running (completed != cur) without accessing the rcu_cpu_mask bitmap. - rcu_ctrlblk.maxbatch removed and replaced with a true/false next_pending flag: next_pending=1 means that another grace period should be started immediately after the end of the current period. Previously, this was achieved by maxbatch: curbatch==maxbatch means don't start, curbatch!= maxbatch means start. A flag improves the readability: The only possible values for maxbatch were curbatch and curbatch+1. - rcu_ctrlblk split into two cachelines for better performance. - common code from rcu_offline_cpu and rcu_check_quiescent_state merged into cpu_quiet. - rcu_offline_cpu: replace spin_lock_irq with spin_lock_bh, there are no accesses from irq context (and there are accesses to the spinlock with enabled interrupts from tasklet context). - rcu_restart_cpu introduced, s390 should call it after changing nohz: Theoretically the global batch counter could wrap around and end up at RCU_quiescbatch(cpu). Then the cpu would not look for a quiescent state and rcu would lock up. Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu lock update: Use a sequence lock for starting batches From: Manfred Spraul Step two for reducing cacheline trashing within rcupdate.c: rcu_process_callbacks always acquires rcu_ctrlblk.state.mutex and calls rcu_start_batch, even if the batch is already running or already scheduled to run. This can be avoided with a sequence lock: A sequence lock allows to read the current batch number and next_pending atomically. If next_pending is already set, then there is no need to acquire the global mutex. This means that for each grace period, there will be - one write access to the rcu_ctrlblk.batch cacheline - lots of read accesses to rcu_ctrlblk.batch (3-10*cpus_online()). Behavior similar to the jiffies cacheline, shouldn't be a problem. - cpus_online()+1 write accesses to rcu_ctrlblk.state, all of them starting with spin_lock(&rcu_ctrlblk.state.mutex). For large enough cpus_online() this will be a problem, but all except two of the spin_lock calls only protect the rcu_cpu_mask bitmap, thus a hierarchical bitmap would allow to split the write accesses to multiple cachelines. Tested on an 8-way with reaim. Unfortunately it probably won't help with Jack Steiner's 'ls' test since in this test only one cpu generates rcu entries. Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu lock update: Code move & cleanup From: Manfred Spraul Step three for reducing cacheline trashing within rcupdate.c: Cleanup and code move from to kernel/rcupdate.c: Remove internal details from the header file. Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce rcu_head size - core From: Dipankar Sarma This reduces the RCU head size by using a singly linked to maintain them. The ordering of the callbacks is still maintained as before by using a tail pointer for the next list. Signed-Off-By : Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: avoid passing an argument to the callback function From: Dipankar Sarma This patch changes the call_rcu() API and avoids passing an argument to the callback function as suggested by Rusty. Instead, it is assumed that the user has embedded the rcu head into a structure that is useful in the callback and the rcu_head pointer is passed to the callback. The callback can use container_of() to get the pointer to its structure and work with it. Together with the rcu-singly-link patch, it reduces the rcu_head size by 50%. Considering that we use these in things like struct dentry and struct dst_entry, this is good savings in space. An example : struct my_struct { struct rcu_head rcu; int x; int y; }; void my_rcu_callback(struct rcu_head *head) { struct my_struct *p = container_of(head, struct my_struct, rcu); free(p); } void my_delete(struct my_struct *p) { ... call_rcu(&p->rcu, my_rcu_callback); ... } Signed-Off-By: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: make cpu_present_map real even on non-smp From: Paul Jackson This patch makes cpu_present_map a real map for all configurations, instead of a constant for non-SMP. It also moves the definition of cpu_present_map out of kernel/cpu.c into kernel/sched.c, because cpu.c isn't compiled into non-SMP kernels. The pattern is that each of the possible, present and online cpu maps are actual kernel global cpumask_t variables, for all configurations. They are documented in include/linux/cpumask.h. Some of the UP (NR_CPUS=1) code cheats, and hardcodes the assumption that the single bit position of these maps is always set, as an optimization. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: bitmap cleanup preparation for cpumask overhaul From: Paul Jackson Document the bitmap bit model and handling of unused bits. Tighten up bitmap so it does not generate nonzero bits in the unused tail if it is not given any on input. Add intersects, subset, xor and andnot operators. Change bitmap_complement to take two operands. Add a couple of missing 'const' qualifiers on bitops test_bit and bitmap_equal args. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: bitmap inlining and optimizations From: Paul Jackson These bitmap improvements make it a suitable basis for fully supporting cpumask_t and nodemask_t. Inline macros with compile-time checks enable generating tight code on both small and large systems (large meaning cpumask_t requires more than one unsigned long's worth of bits). The existing bitmap_ macros in lib/bitmap.c are renamed to __bitmap_, and wrappers for each bitmap_ are exposed in include/linux/bitmap.h This patch _includes_ Bill Irwins rewrite of the bitmap_shift operators to not require a fixed length intermediate bitmap. Improved comments list each available operator for easy browsing. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: rewrite cpumask.h - single bitmap based implementation From: Paul Jackson Major rewrite of cpumask to use a single implementation, as a struct-wrapped bitmap. This patch leaves some 26 include/asm-*/cpumask*.h header files orphaned - to be removed next patch. Some nine cpumask macros for const variants and to coerce and promote between an unsigned long and a cpumask are obsolete. Simple emulation wrappers are provided in this patch for these obsolete macros, which can be removed once each of the 3 archs (i386, ppc64, x86_64) using them are recoded in follow-on patches to not need them. The CPU_MASK_ALL macro now avoids leaving possible garbage one bits in any unused portion of the high word. An inproved comment lists all available operators, for convenient browsing. From: Mikael Pettersson 2.6.7-rc3-mm1 changed CPU_MASK_NONE into something that isn't a valid rvalue (it only works inside struct initializers). This caused compile-time errors in perfctr in UP x86 builds. From: Arnd Bergmann cpumask-5-10-rewrite-cpumaskh-single-bitmap-based from 2.6.7-rc3-mm1 causes include2/asm/smp.h:54:1: warning: "cpu_online" redefined Signed-off-by: Paul Jackson Signed-off-by: Mikael Pettersson Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: remove 26 no longer used cpumask*.h files From: Paul Jackson With the cpumask rewrite in the previous patch, these various include/asm-*/cpumask*.h headers are no longer used. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: remove obsolete cpumask macro uses - i386 arch From: Paul Jackson Remove by recoding i386 uses of the obsolete cpumask const, coerce and promote macros. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: remove obsolete cpumask macro uses - other archs From: Paul Jackson Remove by recoding other uses of the obsolete cpumask const, coerce and promote macros. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: cpu_online fix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: cpu_online fix include/asm/smp.h:55:1: warning: "cpu_possible" redefined include/asm/smp.h:54:1: warning: "cpu_online" redefined Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: Remove no longer used obsolete macro emulation From: Paul Jackson Now that the emulation of the obsolete cpumask macros is no longer needed, remove it from cpumask.h Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: optimize various uses of new cpumasks From: Paul Jackson Make use of for_each_cpu_mask() macro to simplify and optimize a couple of sparc64 per-CPU loops. Optimize a bit of cpumask code for asm-i386/mach-es7000 Convert physids_complement() to use both args in the files include/asm-i386/mpspec.h, include/asm-x86_64/mpspec.h. Remove cpumask hack from asm-x86_64/topology.h routine pcibus_to_cpumask(). Clarify and slightly optimize several cpumask manipulations in kernel/sched.c Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpumask: comment, spacing tweaks From: Paul Jackson Tweak cpumask.h comments, spacing: - Add comments for cpu_present_map macros: num_present_cpus() and cpu_present() - Remove comments for obsolete macros: cpu_set_online(), cpu_set_offline() - Reorder a few comment lines, to match the code and confuse readers of this patch - Tabify one chunk of code Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] clean up cpumask_t temporaries From: Rusty Russell Paul Jackson's cpumask tour-de-force allows us to get rid of those stupid temporaries which we used to hold CPU_MASK_ALL to hand them to functions. This used to break NR_CPUS > BITS_PER_LONG. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha: cpumask fixups From: William Lee Irwin III The cpumask patches broke alpha's build, even without the irqaction patch, largely centering around cpu_possible_map. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make irqaction use a cpu mask From: William Lee Irwin III The following patch makes irqaction's ->mask a cpumask as it was intended to be and wraps up the rest of the sweep. Only struct irqaction is usefully greppable, so there may be some assignments to ->mask missing still. This removes more code than it adds. From: William Lee Irwin III Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix and Reenable MSI Support on x86_64 From: long MSI support for x86_64 is currently disabled in the kernel 2.6.x. Below is the patch, which provides a fix and reenable it. In addition, the patch provides a info message during kernel boot if configuring vector-base indexing. Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmscan.c: shuffle things around Move all the data structure declarations, macros and variable definitions to less surprising places. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmscan.c scan rate fixes We've been futzing with the scan rates of the inactive and active lists far too much, and it's still not right (Anton reports interrupt-off times of over a second). - We have this logic in there from 2.4.early (at least) which tries to keep the inactive list 1/3rd the size of the active list. Or something. I really cannot see any logic behind this, so toss it out and change the arithmetic in there so that all pages on both lists have equal scan rates. - Chunk the work up so we never hold interrupts off for more that 32 pages worth of scanning. - Make the per-zone scan-count accumulators unsigned long rather than atomic_t. Mainly because atomic_t's could conceivably overflow, but also because access to these counters is racy-by-design anyway. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmscan.c: dont reclaim too many pages The shrink_zone() logic can, under some circumstances, cause far too many pages to be reclaimed. Say, we're scanning at high priority and suddenly hit a large number of reclaimable pages on the LRU. Change things so we bale out when SWAP_CLUSTER_MAX pages have been reclaimed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: vfs shrinkage tuning Some people want the dentry and inode caches shrink harder, others want them shrunk more reluctantly. The patch adds /proc/sys/vm/vfs_cache_pressure, which tunes the vfs cache versus pagecache scanning pressure. - at vfs_cache_pressure=0 we don't shrink dcache and icache at all. - at vfs_cache_pressure=100 there is no change in behaviour. - at vfs_cache_pressure > 100 we reclaim dentries and inodes harder. The number of megabytes of slab left after a slocate.cron on my 256MB test box: vfs_cache_pressure=100000 33480 vfs_cache_pressure=10000 61996 vfs_cache_pressure=1000 104056 vfs_cache_pressure=200 166340 vfs_cache_pressure=100 190200 vfs_cache_pressure=50 206168 Of course, this just left more directory and inode pagecache behind instead of vfs cache. Interestingly, on this machine the entire slocate run fits into pagecache, but not into VFS caches. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dnotify.c: use inode->i_lock in place of dn_lock From: "Adam J. Richter" Replace the use of a global spinlock with the per-inode ->i_lock. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use fancy wakeups in wait.h Use the more SMP-friendly prepare_to_wait()/finish_wait() in wait_event() and friends. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tweak the buddy allocator for better I/O merging From: William Lee Irwin III Based on Arjan van de Ven's idea, with guidance and testing from James Bottomley. The physical ordering of pages delivered to the IO subsystem is strongly related to the order in which fragments are subdivided from larger blocks of memory tracked by the page allocator. Consider a single MAX_ORDER block of memory in isolation acted on by a sequence of order 0 allocations in an otherwise empty buddy system. Subdividing the block beginning at the highest addresses will yield all the pages of the block in reverse, and subdividing the block begining at the lowest addresses will yield all the pages of the block in physical address order. Empirical tests demonstrate this ordering is preserved, and that changing the order of subdivision so that the lowest page is split off first resolves the sglist merging difficulties encountered by driver authors at Adaptec and others in James Bottomley's testing. James found that before this patch, there were 40 merges out of about 32K segments. Afterward, there were 24007 merges out of 19513 segments, for a merge rate of about 55%. Merges of 128 segments, the maximum allowed, were observed afterward, where beforehand they never occurred. It also improves dbench on my workstation and works fine there. Signed-off-by: William Lee Irwin III Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hwcache align kmalloc caches From: Manfred Spraul Reversing the patches that made all caches hw cacheline aligned had an unintended side effect on the kmalloc caches: Before they had the SLAB_HWCACHE_ALIGN flag set, now it's clear. This breaks one sgi driver - it expects aligned caches. Additionally I think it's the right thing to do: It costs virtually nothing (the caches are power-of-two sized) and could reduce false sharing. Additionally, the patch adds back the documentation for the SLAB_HWCACHE_ALIGN flag. Signed-Off: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce function inlining in slab.c From: Manfred Spraul slab.c contains too many inline functions: - some functions that are not performance critical were inlined. Waste of text size. - The debug code relies on __builtin_return_address(0) to keep track of the callers. According to rmk, gcc didn't inline some functions as expected and that resulted in useless debug output. This was probably caused by the large debug-only inline functions. The attached patche removes most inline functions: - the empty on release/huge on debug inline functions were replaced with empty macros on release/normal functions on debug. - spurious inline statements were removed. The code is down to 6 inline functions: three one-liners for struct abstractions, one for a might_sleep_if test and two for the performance critical __cache_alloc / __cache_free functions. Note: If an embedded arch wants to save a few bytes by uninlining __cache_{free,alloc}: The right way to do that is to fold the functions into kmem_cache_xy and then replace kmalloc with kmem_cache_alloc(kmem_find_general_cachep(),). Signed-Off: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] abs() fixes OK, the pending abs() disaster has hit: drivers/usb/class/audio.c:404: warning: static declaration of 'abs' follows non-static declaration This is due to the declaration in kernel.h. AFAIK there's not even a matching definition for that. The patch implements abs() as a macro in kernel.h and kills off various private implementations. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Support NetMOS based PCI cards providing serial and parallel ports From: Christoph Lameter Attached a patch to support a variety of PCI based serial and parallel port I/O ports (typically labeled 222N-2 or 9835). I think this should go into 2.6.0 since it has been out there for a long time and is just some additional driver support that somehow fell through the cracks in 2.4.X. Tim Waugh submitted it in the 2.4.X series. See also http://winterwolf.co.uk/pciio Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] help text for FB_RIVA_I2C From: "Antonino A. Daplas" Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nr_pagecache can go negative We use per-cpu counters for the system-wide pagecache accounting. The counters spill into the global nr_pagecache atomic_t when they underflow or overflow. Hence it is possible, under weird circumstances, for nr_pagecache to go negative. Anton says he has hit this. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make nr_swap_pages a long From: Anton Blanchard ../include/linux/swap.h:extern int nr_swap_pages; /* XXX: shouldn't this be ulong? --hch */ Sounds like it should be too me. Some of the code checks for nr_swap_pages < 0 so I made it a long instead. I had to fix up the ppc64 show_mem() (Im guessing there will be other trivial changes required in other 64bit archs, I can find and fix those if you want). I also noticed that the ppc64 show_mem() used ints to store page counts. We can overflow that, so make them unsigned long. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make total_swap_pages a long Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: SGI A2 audio rewrite and 2.6 fixes From: Ralf Baechle Fix HAL2 audio driver for the SGI A2 audio subsystem and rewrite large parts of it to finally work. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Dell laptop lockup fix for ALSA From: Alan Cox OSS avoids the Dell lockup by not hitting the problem register (which apparently breaks resume on a Sony laptop). ALSA keeps a flag and uses pci subvendor info to clear it for problem Dell laptops. Unfortunately there is at least one other Dell laptop which is affected. This adds its sub id's [Patch from Dan Williams @ Red Hat slightly reformatted by me] Signed-off-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MIPS Update From: Ralf Baechle MIPS update: - Further conversion of MIPS kernel configuration to reverse dependencies. - Support for the PMC-Sierra Yosemite evaluation board. - Merge arch/mips/mm-32 and arch/mips/mm-32 into arch/mips/mm. - Partial support for the R8000 now that I finally have clearance for the documentation previously covered by NDA. - Make distclean fixes. - Regenerate default configuration files against latest Kconfig files. - Fix handling of data bus errors in modules. - Make R4000 bug probing more bullet proof. - Rewrite semaphore code folloing the PPC implementation to no longer manipulate 2 32-bit quantities atomically using 64-bit instructions. Occasionally this did cause problems due to struct semaphore not having sufficient alignment. - Make sys_pipe() code bullet proof against gcc 3.5 over-optimization. - Fix possibly exploitable bug in IRIX compatibility statvfs(2). - Make sched_clock() an outline function. - Support for the MIPS 24K and 25K processors. - Make functions static that aren't needed anywhere else. - Factor out some more generic MIPS SMP code. - Factor out common part of the GT-64240 code. - Ocelot C now uses the generic MV-64340 interrupt handler code. - Factor out common board support code - More cleanup and bug fixes for the NEC VR41xx code. - Start cleanup of hazard handling as required for MIPS32/64 V2 processors. - Enforce minimal kmalloc alignment of 8 byte so 64-bit registers can be stored into fields without exceptions. - Speeling and warning fixes. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Indydog update From: Ralf Baechle Forward port of the 2.4 driver with changes required for 2.6. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix linker trouble with CONFIG_FB_RIVA_I2C=y and modular I2C From: Adrian Bunk > This version causes linker trouble with > CONFIG_I2C=m > CONFIG_I2C_ALGOBIT=m > CONFIG_FB_RIVA_I2C=y > > CC init/version.o > LD init/built-in.o > LD .tmp_vmlinux1 > drivers/built-in.o(.text+0xda101): In function `riva_setup_i2c_bus': > : undefined reference to `i2c_bit_add_bus' > drivers/built-in.o(.text+0xda218): In function `riva_delete_i2c_busses': > : undefined reference to `i2c_bit_del_bus' > drivers/built-in.o(.text+0xda237): In function `riva_delete_i2c_busses': > : undefined reference to `i2c_bit_del_bus' > drivers/built-in.o(.text+0xda2c9): In function `riva_do_probe_i2c_edid': > : undefined reference to `i2c_transfer' > make: *** [.tmp_vmlinux1] Error 1 >... The problem is: FB_RIVA=y FB_RIVA_I2C=y I2C=m I2C_ALGOBIT=m The patch below fixes this. Besides this, it contains: - help text by Antonino A. Daplas - converted spaces to tabs - it was forgotten that FB_RIVA_I2C requires I2C_ALGOBIT Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix early CPU vendor detection for non intel cpus From: Andi Kleen Early CPU detect can only work after the various sub CPU drivers have registered their devices. Currently the vendor would be always 0, which is Intel. This prevents Athlons from being recognized as buggy PPros and fixes some other workarounds for non Intel CPUs too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] OProfile: allow normal user to trigger sample dumps From: John Levon In 2.4, OProfile allowed normal users to trigger sample dumps (useful under low sample load). The patch below, by Will Cohen, allows this for 2.6 too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SubmittingDrivers fix From: Jesper Juhl Here's a small patch that lists X.Org as well as XFree86 in Documentation/SubmittingDrivers in the section talking about video drivers. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Core fbcon fixes From: "Antonino A. Daplas" This patch fixes the following bugs/regressions for fbcon: 1. Initialize and update global arrays used by fbcon during initialization and and by set_con2fbmap code. 2. Fixed screen corruption (white rectangle) at initial mode setting plaguing cards with VGA cores and with VGA console enabled. (vga16fb, however, still shows remnants of previous text if boot logo is enabled) 3. Improved fbcon_startup/fbcon_init code. 4. Fixed set_con2fbmap code -- should support multiple devices mapped to Signed-off-by: Antonino A. Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: video mode change notify (fbset) From: "Antonino A. Daplas" This patch allows fbset to change the video mode and the console window size via the notifier call chain. It will only notify fbcon of mode changes from user space. Changes coming from upstream will be ignored. The code will only update the current console. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix POWER3 NUMA init From: Anton Blanchard We were passing in the hole size as kB not pages to free_area_init which made the VM misbehave. This only hit on POWER3 because POWER4 and newer places IO above all memory and so doesnt have a hole. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add PPC85xx MAINTAINERS entry From: Kumar Gala Added myself to the MAINTAINERS file for 85xx. Added an entry into the CREDITS file for me. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] (o)profile Documentation/basic_profiling.txt updates From: bert hubert Signed-off-by: bert hubert Signed-off-by: John Levon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: Extend and revise calls to secondary module From: Stephen Smalley This patch extends the set of calls to the secondary security module by SELinux as well as revising a few existing calls to support other security modules and to more cleanly stack with the capability module. Please apply. Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix allocate_pgdat comments From: "Martin J. Bligh" From: Andy Whitcroft The comments for i386 allocate_pgdat indicate that the routine should be modified to place the pgdat into node local memory. However, this has already been done as the pgdat is placed at node_remap_start_vaddr. This patch updates the comments to reflect this reality. Signed-off-by: Andy Whitcroft Signed-off-by: Martin J. Bligh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/media/video/tda9840.c: honour return code of i2c_add_driver() From: Michael Hunold i2c_add_driver() may actually fail, but my driver returns 0 regardless. Thanks to Arthur Othieno for this obviously correct patch. Signed-off-by: Michael Hunold Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zap_pte_range speedup From: Hugh Dickins zap_pte_range is wasting time marking anon pages accessed: its original !PageSwapCache test should have been reinstated when page_mapping was changed to return swapper_space; or more simply, just check !PageAnon. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] h8300: delete obsolute header From: Yoshinori Sato - delete obsolute(unused) header file Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cirrusfb: major update From: David Eger This patch brings the cirrusfb driver up to date with 2.6. cirrusfb has suffered bit rot like you wouldn't believe (last updated... 2.3.x era?). The driver will now compile again, and you can change to a high resolution text mode with stty. Known defects: doesn't play nice with X, nor fbset. C = Cosmetic change L = Logical change A = API change W = register Writing change (1-CA) fb_info and cirrusfb_info: - mostly cosmetic, but a lot less confusing, and no more nasty casting. It used to be stylish to embed struct fb_info_gen (now struct fb_info) as the first member of struct clgenfb_info (now struct cirrusfb_info), and then you'd cast to the deisred struct. Now we pass the size of our data structure to framebuffer_alloc(), and we make fb_info and cirrusfb_info reference each other with pointers (as in radeonfb). In the old code, there two declarations were common: clgenfb_info *fb_info; clgenfb_info *info; since there's also a 'struct fb_info' now, I found this really confusing, and unified usage as: cirrusfb_info *cinfo; fb_info *info; This accounts for a lot of the search and replace cosmetic upgrade. (2-A) All of the FB knowledge of FB internals is gone in 2.6 (3-LW) revised maxclock numbers (cirrusfb_board_info_rec.maxclock[5]) In my quest to get fbset to work, I borrowed some maxclock data from the X.Org tree for various chipsets. It didn't really seem to help. oh well. (3-LA) upgraded PCI registration Instead of doing PCI walking from the driver, we hand off a pci_device_id table to the PCI subsystem and just get called when it finds a relevant board. (4-L) striking lots of __init and __initdata specifiers I was running into some things not working when I moved the call to init_vgachip() from the driver registration to set_par(). I thought perhaps this was due to some things being marked __init accidentally so I axed said annotations. Turns out it was something else. See 5. (5-LA) delayed chip initialization, nasty double-set_par() pseudo-bug Tony says that the fb drivers shouldn't do any chipset initialization until they get a set_par() call. This way, fb modules can be safely unloaded if no one gets around to using them, and the vga_con -> fbcon hand off is smoother, as fbcon can still grab the back-scroll data from vga_con... In any case, moving the calls to init_vgachip() and fbgen_do_set_var() from driver initialization to set_par() revealed that the cirrus register-writing function needs to be called twice for a mode change to work. I don't understand why. (6-LA) split clgen_decode_var() into the bits that check the var and the bits that actually generate register information (par/regs) to write Adding modedb hooks here might actually fix fbset, i think... (7-LW) No longer write the palette in init_vgachip() nor in set_par(). Someone else (fbcon?) seems to be making its own calls to setcolreg() for us. (8-LW) setcolreg() -- while removing all of the console cruft, I had to try to reconstitute the palette code. I think I got this right, but I could be off -- the penguin boots in the correct colors at least ;-) (9-L) pan_display() - we don't do wrap, silly. that's only on the amiga. (10-L) pan+BLT - to make pan play nicely with copyarea()/fillrect() I had to add a couple of calls to cirrusfb_WaitBLT() to make sure the engine is idle. (11-LW) cirrusfb_blank() - I upgraded the switch here to use the new VESA_* blanking mode constants. I think I translated the right logic for the right blanking levels. Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update ikconfig help text From: "Randy.Dunlap" Some elements of ikconfig have been removed, but the help text wasn't updated to reflect those changes. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update ikconfig generator script From: "Randy.Dunlap" http://bugme.osdl.org/show_bug.cgi?id=2701 Current script has problems with some shells and utilities. Remove use of 'echo' in the script. From: Roman Zippel Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlb.c: use safe iterator From: "Chen, Kenneth W" With list poisoning on by default from linux-2.6.7, it's easier than ever to trigger the bug in try_to_free_low(). It ought to use the safe version of list iterater. Signed-off-by: Ken Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp minor docs updates From: Pavel Machek I shot myself in the foot with swsusp, so I guess documenting that particular trap is right thing to do (tm). Somehow two copies of "radeon hint" crept in; fix that, too. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Prepare for SMP suspend From: Pavel Machek Its very bad idea to freeze migration threads, as it crashes machine upon next call to "schedule()". In refrigerator, I had one "wake_up_process()" too many. This fixes it. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: shuffle cpu.c to make it usable for smp suspend From: Pavel Machek This moves fix_processor_context() so that additional prototype is not needed, and adds context * to processor state saving functions, so that they can be used on SMP. It should be done this way from the beggining. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] consolidate in-kernel configuration From: Andy Whitcroft Being able to recover the configuration from a kernel is very useful and it would be nice to default this option to Yes. Currently, to have the config available both from the image (using extract-ikconfig) and via /proc we keep two copies of the original .config in the kernel. One in plain text and one gzip compressed. This is not optimal. This patch removes the plain text version of the configuration and updates the extraction tools to locate and use the gzip'd version of the file. This has the added bonus of providing us with the exact same results in both cases, the original .config; including the comments. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: fixes for "assignment expression in conditional" in fs/* From: Mika Kukkonen Fix various sparse "assignment expression in conditional" warnings in fs/ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlb.c - fix try_to_free_low() From: "Chen, Kenneth W" Turn on CONFIG_HIGHMEM and CONFIG_HUGETLBFS. Try to config the hugetlb pool: [root@quokka]# echo 100 > /proc/sys/vm/nr_hugepages [root@quokka]# grep HugePage /proc/meminfo HugePages_Total: 100 HugePages_Free: 100 [root@quokka]# echo 20 > /proc/sys/vm/nr_hugepages [root@quokka]# grep HugePage /proc/meminfo HugePages_Total: 0 HugePages_Free: 0 [root@quokka]# echo 100 > /proc/sys/vm/nr_hugepages [root@quokka]# grep HugePage /proc/meminfo HugePages_Total: 100 HugePages_Free: 100 [root@quokka]# echo 0 > /proc/sys/vm/nr_hugepages [root@quokka]# grep HugePage /proc/meminfo HugePages_Total: 31 HugePages_Free: 31 The argument "count" passed to try_to_free_low() is the config parameter for desired hugetlb page pool size. But the implementation took that input argument as number of pages to free. It also decrement the config parameter as well. All give random behavior depend on how many hugetlb pages are in normal/highmem zone. A two line fix in try_to_free_low() would be: - if (!--count) - return 0; + if (count >= nr_huge_pages) + return count; But more appropriately, that function shouldn't return anything. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oom killer: ignore free swapspace From: William Lee Irwin III During stress testing at Oracle to determine the maximum number of clients 2.6 can service, it was discovered that the failure mode of excessive numbers of clients was kernel deadlock. The following patch removes the check if (nr_swap_pages > 0) from out_of_memory() as this heuristic fails to detect memory exhaustion due to pinned allocations, directly causing the aforementioned deadlock. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: SH-3 On-Chip ADC support From: Paul Mundt This adds support for the SH-3's on-chip ADC (which is needed by things like the touchscreen, etc.). Signed-off-by: Andriy Skulysh Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: dma-mapping updates. From: Paul Mundt This updates the sh dma-mapping code, as well as doing some cleanup in the consistent API. We also add a consistent_{alloc,free} to the machvec for platforms that need special handling. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: DMA driver updates. From: Paul Mundt This updates the SuperH DMA driver, as well as cleaning up the registration interface. We also drop the use of bitfields in dma-sh since things like the SH4-202, 7751R, 7760, etc. all have a completely different set of register definitions. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: early printk() cleanup. From: Paul Mundt sh was using its own CONFIG_SH_EARLY_PRINTK, this is no longer necessary as we can easily work with the generic CONFIG_EARLY_PRINTK. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: fixmap support. From: Paul Mundt This adds fixmap support for sh. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: Renesas HS7751RVoIP board support. From: Paul Mundt This adds support for the Renesas Technology Sales HS7751RVoIP board. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: IDE cleanup. From: Paul Mundt This does a bit of IDE cleanup (in preparation for the SuperH generic IDE host driver). This also adds SuperH to the list of platforms that are interested in CONFIG_IDE_MAX_HWIFS. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: ptep_get_and_clear() compile fix. From: Paul Mundt This fixes up a compile error occuring with ptep_get_and_clear() existing in pgalloc.h. We move it to a somewhat more sensible location instead, and take this opportunity to make some cleanups for use of generic code in the SH-3 case, etc. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: sh-sci updates. From: Paul Mundt This adds support for the SH7300 as well as the SH5-101/103 processors as well as specific board support for the RTS7751R2D. In addition to this, the sh early printk code is gutted so that we use the generic CONFIG_EARLY_PRINTK interfaces instead. Signed-off-by: Hiroshi DOYU Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: SolutionEngine 7300 board support. From: Paul Mundt This adds support for the SH7300 solution engine board (a forward port of the 2.4 code). Signed-off-by: Hiroshi DOYU Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: Renesas RTS7751R2D board support. From: Paul Mundt This adds support for the Renesas Technology Sales RTS7751R2D board. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: PCI updates From: Paul Mundt This updates the pci-auto code, as well as adding ops and fixups for the RTS7751R2D board. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: SH7705/SH7300 subtype support, ST40 updates. From: Paul Mundt This adds support for the SH7705 and SH7300 subtypes and also updates some ST40-specific FRQCR handling code. Signed-off-by: Alex Bennee Signed-off-by: Hiroshi DOYU Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: VoyagerGX companion chip support. From: Paul Mundt This adds support for the SM501/VoyagerGX companion chip, used by the RTS7751R2D. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: merge. From: Paul Mundt This merges the remaining sh changes, random bug fixes, added syscalls, cache fixups, etc. Nothing really eventful. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: Consolidate SystemH with other Renesas boards. From: Paul Mundt Nothing really interesting here, with the addition of several other Renesas boards, we just move the systemh directory to the renesas one to fit in better with the directory structure. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: Fix up handling for read error in raid1. From: NeilBrown There is severe bit-rot in this code, which is to say that it doesn't work at all: an io error during read will do bad things. It should work better with this patch. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: XOR template selection redo From: NeilBrown From: Josh Litherland The XOR routine selection process is often confusing as it often doesn't choose the routine that measures the fastest, as sometime one routine is known to have better cache performance. This patch avoids the comparison when there is a known best choice, and makes the report more meaningful. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kswapd warning fix mm/vmscan.c: In function `kswapd': mm/vmscan.c:1139: warning: no return statement in function returning non-void Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] balanced_irq warning fix arch/i386/kernel/io_apic.c: In function `balanced_irq': arch/i386/kernel/io_apic.c:582: warning: no return statement in function returning non-void and clean things up a bit Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix broken alpha build ptrace.c error From: Darren Williams include/asm/checksum.h:75: warning: `struct in6_addr' declared inside parameter list include/asm/checksum.h:75 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix x86-64 ptrace access to 32-bit vsyscall page When I made get_user_pages support looking up a pte for the "gate" area, I assumed it would be part of the kernel's fixed mappings. On x86-64 running a 32-bit task, the 32-bit vsyscall DSO page still has no vma but has its pte allocated in the user mm in the normal fashion. This patch makes it use the generic page-table lookup calls rather than the shortcuts. With this, ptrace on x86-64 can access a 32-bit process's vsyscall page. The behavior on x86 is unchanged. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds [PATCH] ppc64: clean up prom.c and related files Somebody back in the mists of time decided that call_prom and rtas_call should return longs even though both of those bits of firmware run in 32-bit mode and produce a 32-bit result. To make life more interesting, the 32-bit result gets zero-extended to 64 bits, which makes checking for a -1 return value more complicated than it should be. This patch changes call_prom and rtas_call to return an int, and makes the corresponding changes to use ints for the variables used to hold those return values. While I was doing this I finally got annoyed enough with the strings of prom_print() and prom_print_hex() calls that we do to write a simple prom_printf. I deliberately didn't use snprintf because the execution environment is weird at this point - we aren't running at the address we are linked at just yet - and I didn't want to inflict that on any code outside this file. I also did a prom_debug() macro, which eliminated a few ifdefs. There are also a bunch of other minor cleanups. This patch makes very few algorithmic changes but does get rid of a lot of casts. :) I have been running with this patch for a couple of weeks, and Anton has tested it too. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] Better memset Anton noticed in some traces that we were spending an awfully long time doing a memset. The ppc64 memset is basically unchanged from the ppc32 version, and it only does 4-byte stores and doesn't unroll the loop. Here's a memset that performs a bit better. I have been using it for 3 weeks now, and Anton has tested it on a variety of machines, without problems. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] Clean up head.S whitespace The whitespace in arch/ppc64/kernel/head.S is a bit all over the place. This patch fixes it up. This patch changes nothing other than whitespace. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix booting on LPAR machines with more than 1 CPU The exception rewrite contains a small bug that prevents bring up of CPUs on logically partitioned machines. The kernel is trying to zero the backlink on the new stack while running with relocation disabled, which potentially cause it to try to access an address outside of the region allowed in real mode. This seem to be a leftover from previous code as we also zero the backlink later after turning off the MMU. This patch removes the offending bit. [PATCH] revert partition nonsense Updating my source to 2.6.7 I see that you applied some nonsense garbage patch. Please undo. [ Note by Linus: the fact that DOS_EXTENDED_PARTITION is 5, and we're iterating over slots 1-4 in the partition table, are two totally unrelated things. Using the symbolic constant does indeed not make any sense at all here, as Andries so eloquently points out. ] [PATCH] make DVD ioctls that can legitimately fail quiet DVD_LU_SEND_{AGID,TITLE_KEY} can be legitimately rejected; in that case we should not spew into logs. [PATCH] sparse: trivial drivers/net/* annotations [PATCH] sparse: trivial drivers/char/* annotation and format fixes - trivial annotation in several places in drivers/mtd - a bunch of debugging printks switched from %x to %llx (they get 64bit values) - in doc200[01].c fixed type of (unused) last argument in their doc_read_ecc(). [PATCH] sparse: trivial annotations in drivers/char/* [PATCH] isdn_writebuf_stub() sanitized isdn_writebuf_stub() was always called for userland pointers. Killed the argument telling whether it's kernel or userland pointer, killed dead code, updated callers. [PATCH] sparse: trivial drivers/isdn/* annotations [PATCH] sparse: i2o fixed Fixes for direct dereferencing of userland pointers in i2o_config.c [PATCH] sparse: trivial i2o annotations [PATCH] sparse: scsi ->ioctl() annotation Low-level drivers' ->ioctl() gets a userland pointer from scsi_ioctl(); prototype annotated, so is scsi_debug instance. [PATCH] ide: remove redundant hwgroup->handler checks from ide-taskfile.c Remove checks for hwgroup->handler == NULL from task_[in,mulin,out]_intr() (CONFIG_IDE_TASKFILE_IO=n versions). These functions can be called only from ide_intr() or ide_timer_expiry() and both set hwgroup->handler to NULL first. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: end request fix for CONFIG_IDE_TASKFILE_IO=y PIO handlers ide_end_drive_cmd() should only be called for "flagged" taskfiles which have separate PIO handlers so use driver->end_request() instead. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-in drive busy fix (CONFIG_IDE_TASKFILE_IO=y) If the drive times out the final status check we should fail the request instead of setting another handler for the next IRQ. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: check drive->mult_count in flagged_taskfile() Check drive->mult_count in flagged_taskfile() and fail request early if necessary so there is no need to do it later in the PIO handlers. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: last IRQ fix for task_mulout_intr() (CONFIG_IDE_TASKFILE_IO=n) We should wait for the last IRQ after all data is sent. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove DTF() debugging printks from ide-taskfile.c They are off by default and conflict with the future changes. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: add task_multi_sectors() to ide-taskfile.c Move common code from task_mulin_intr() and task_mulout_intr() (CONFIG_IDE_TASKFILE_IO=y) to a task_multi_sectors() helper. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: split task_sectors() and task_multi_sectors() - split __task_sectors() out of task_sectors() - add bio and buffer versions of task[_multi]_sectors() - use task_bio_sectors() instead of task_sectors() in pdc4030.c - move task[_buffer]_sectors() to ide-taskfile.c - uninline task[_multi]_sectors() Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: don't clear rq->errors for REQ_DRIVE_TASKFILE requests REQ_DRIVE_TASKFILE requests aren't retried so don't clear rq->errors in CONFIG_IDE_TASKFILE_IO=n PIO handlers and in CONFIG_IDE_TASKFILE_IO=y PIO handlers clear rq->errors only for fs requests, flagged_* PIO handlers were already okay. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: use task_buffer[_multi]_sectors() in ide-taskfile.c - update rq counters directly in task_buffer_sectors() - use task_buffer[_multi]_sectors() in taskfile PIO handlers (CONFIG_IDE_TASKFILE_IO=n and flagged ones) so: (a) rq->hard_cur_sectors is used for rq mapping (b) in case of error valid rq->sector is reported (c) we can s/rq->current_nr_sectors/rq->nr_sectors/ later - uninline task_buffer_sectors() - remove not needed !rq->bio code from ide_[un]map_buffer() (it is used only for fs requests which are always bio based) - remove no longer needed task_rq_offset() Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-out setup fixes (CONFIG_IDE_TASKFILE_IO=n) - setup hwgroup->handler/timer in ->prehandler() (after checking drive status) and in do_rw_taskfile() only send a command - make pre_task_mulout_intr() transfer first data block itself instead of calling ->handler() so we don't have to play tricks with hwgroup->handler/timer in task_mulout_intr() Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: reduce > 3kb call path in ide-cs - Reduce large stack usage in ide_config() by using kmalloc(), down from 0x4a4 bytes to 0x64 bytes (x86-32). - Little whitespace cleanup. - Move function comment block to immediately above the function. Module loaded and unloaded, otherwise not tested (no hardware). Signed-off-by: Randy Dunlap Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: hpt36x/37x tuning fix From: Jonas Thornblad There is a problem in the hpt366.c driver where the function ide_config_drive_speed(drive, speed) is called without using the correct speed variable. The speed variable should use the value returned by hpt3xx_ratefilter which decides the speed after checking against the bad drives list. I believe the following patch fixes the problem. Slightly reworked by me - Bart. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: check_region removal - trm290.c Signed-off-by: Jesper Juhl Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] symlink 1/9: infrastructure and explanation This patch-kit gets past the limit on nested symlinks, without incompatible API changes _and_ with killing code duplication in most of the readlink/follow_link pairs. And no, it's not the old ->getlink() crap - procfs et.al. are not special-cased there. Here's how it works: * ->follow_link() still does what it used to do - replaces vfsmount/dentry in the nameidata it got from caller. However, it can also leave a pathname to be resolved by caller. * we add an array of char * into nameidata; we always work with nd->saved_names[current->link_count]. nd_set_link() sets it, nd_get_link() returns it. * callers of ->follow_link() (all two of them) check if ->follow_link() had left us something to do. If it had (return value was zero and nd_get_link() is non-NULL), they do __vfs_follow_link() on that name. Then they call a new method (->put_link()) that frees whatever has to be freed, etc. Note that absolute majority of symlinks have "resolve a pathname" as part of their ->follow_link(); they can do something else and some don't do that at all, but having that pathname resolution is very, very common. With that change we allow them to shift pathname resolution part to caller. They don't have to - it's perfectly OK to do all work in ->follow_link(). However, leaving the pathname resolution to caller will a) exclude foo_follow_link() stack frame from the picture b) kill 2 stack frames - all callers are in fs/namei.c and they can use inlined variant of vfs_follow_link(). That reduction of stack use is enough to push the limit on nested symlinks from 5 to 8 (actually, even beyond that, but since 8 is common for other Unices it will do fine). For those who have "pure" ->follow_link() (i.e. "find a string that would be symlink contents and say nd_set_link(nd, string)") we also get a common helper implementing ->readlink() - it just calls ->follow_link() on a dummy nameidata, calls vfs_readlink() on result of nd_get_link() and does ->put_link(). Using (or not using) it is up to filesystem; it's a helper that can be used as a ->readlink() for many filesystems, not a reimplementation of sys_readlink(). However, that's _MANY_ filesystems - practically all of them. Note that we don't put any crap like "if this is a normal symlink, do this; otherwise call ->follow_link() and let it do its magic" into callers - all symlinks are handled the same way. Which was the main problem with getlink proposal back then. That covers almost everything; the only cases left are nfs, ncpfs and cifs. Those will go later - we are backwards compatible, so it's not a problem. First patch: infrastructure - helpers allowing ->follow_link() to leave a pathname to be traversed by caller + corresponding code in callers. [PATCH] symlink 2/9: ext2 conversion and helper functions ext2 conversion (helper functions for that one will be actually used a lot by other filesystems, so to fs/namei.c they go) [PATCH] symlink 3/9: trivial filesystems trivial cases - ones where we have no need to clean up after pathname traversal (link body embedded into inode, etc.). Plugged leak in devfs_follow_link(), while we are at it. [PATCH] symlink 4/9: simple filesystems cases that can simply reuse ext2 helpers (page_follow_link_light() and page_put_link()). [PATCH] symlink 5/9: smbfs smbfs - switched from on-stack allocation of buffer for link body (!) to __getname()/putname(); switched to new scheme. [PATCH] symlink 6/9: xfs xfs switched to new scheme; leaks plugged. [PATCH] symlink 7/9: shmfs shm switched (it almost belongs to SL3, but it does some extra stuff after the link traversal). [PATCH] symlink 8/9: befs befs switched; leaks plugged. [PATCH] symlink 9/9: jff2 jffs2 switched; leaks plugged. [PATCH] USB: EHCI IRQ tweaks Various tweaks to EHCI IRQ handling, these may affact some systems. - Delays enabling IRQs until the root hub is more fully set up, so any "resume detect" IRQs can be handled properly. (Craig Nadler) - Power down ports on driver shutdown. (Craig Nadler) - Remove some duplicate irq-sharing logic that somehow crept in; check only once, and return IRQ_NONE to detect IRQ storms better (db) - Minor comment fix re integrated TTs. (db) From: Craig Nadler Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb ethernet gadget build fixes on PXA Build fixes for ethernet gadget on PXA. From: Frank Neuber Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: hid-tmff fix This fixes a long-standing bug in the hid-tmff driver that causes it to not work at all. Signed-off-by: Greg Kroah-Hartman qla2xxx: Remove qla_os.h From: Andrew Vasquez Instead make all files do the proper includes. Signed-off-by: James Bottomley [PATCH] USB: Use 64-bit IO addresses in UHCI driver Thanks to Ludovic Aubry for this patch. It changes some local variables used by the UHCI driver to store IO addresses from unsigned int to unsigned long. This is vitally necessary on 64-bit platforms. From: Ludovic Aubry Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Imiprove usb_device tracking in dummy_hcd A tricky problem the dummy_hcd driver has to solve is keeping track of the usb_device structure that corresponds to a registered gadget. Right now that's not done very robustly. This patch stores the address of the structure when a new URB is submitted and also acquires a reference to make sure that completing the final URB won't deallocate the structure before dummy_hcd is through with it. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add mb() during initialization of UHCI controller In a recent thread it was mentioned that some architectures, such as PPC, do not guarantee relative ordering between different varieties of processor/device data transfers. This patch adds an mb() instruction to the UHCI driver, to insure that the data structures in memory (cached by the CPU and accessed by DMA) are fully flushed before the controller is started (by regular bus IO). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadget drivers should be stricter about ZLPs Some USB device controllers make it easy to handle all the various ways hosts interpret the USB spec about when control-IN transfers need to send a ZLP ... they can just send one if the host asks, or start the status stage whenever the host thinks it's time. Other controllers make it hard to be forgiving in those cases. This patch updates all the gadget drivers to explicitly set the req->zero flag to reflect whether the USB spec says a ZLP "must" be sent by the device. "Forgiving" drivers won't notice the change, but the others need to see this information passed down from the gadget driver. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: GFP_KERNEL in irq you are using GFP_KERNEL in irq. That's illegal. GFP_ATOMIC must be used. Signed-Off-By: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB: kaweth not handling ESHUTDOWN kaweth fails to cleanly shut down operations upon shutdown of the controller. Signed-Off-By: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB: gadgetfs AIO support This patch adds AIO support to gadgetfs, letting user mode programs use "libaio" to manage USB I/O concurrency with the same API as they may already be using for disk files. In particular, it's practical to stream isochronous data to/from userspace using this API, by keeping an endpoint's I/O queue from emptying. Each AIO "iocb" in userspace corresponds directly to one "usb_request" (and one kiocb) in the kernel. Their lifecycles, including cancelation, overlap completely. That's much of why the patch is so small (surprised the heck out of me!); that, and using copy_{to,from}_user() rather than trying fancy dma mapping tricks to attain zerocopy nirvana. The kernel AIO module forgot to export kick_iocb(), so this adds the missing declaration ... needed when using gadgetfs as a module. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: shut-up kaweth usb/net driver The kaweth usb ethernet driver is pretty noisy. It generates over 40 lines during a modprobe. The following patch reduces the prints generated by this driver. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Patch to signal underflow in usb-storage driver This patch causes the usb-storage driver to return an error indication (DID_ERROR together with SUGGEST_RETRY) when the amount transferred by a SCSI command is smaller than the "underflow" amount. Some devices, like the iRiver H100 series, occasionally transfer 0 bytes with GOOD status. This change will make the sd driver aware that something unexpected has happened so it can retry the command. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: PWC 9.0.1 Attached you will find patches that will bring the PWC driver in the kernel up to version 9.0.1 from 8.12 (9.0 wasn't accepted at first). Patches are against 2.4.26 and 2.6.7. The main difference with 9.0 is that the video_relase() routine is now hopefully in line with kernel requirements. I've also added one more ioctl() call, upon request. I'm also slightly in the dark on the status of the PWC in the 2.6 kernel; I've seen two patches: the first was a bad one, since it would crash your kernel when you unplug the cam. I've seen a second patch to reverse the first one, but I don't know if that went in. Either way, you might get a conflict in pwc-if.c in and about the pwc_video_release() routine; this patch was generated against the clean 2.6.7 kernel source. Should you need or want to fix it manually, this patch should remove the pwc_video_release() in the 2.6 kernel. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: enable the pwc driver to be able to be built again. Make bitops/cpumask functions be "const" where appropriate. [NET]: Fix warning in tr.c A few things popped up when using current gcc cvs. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NET]: Fix warning in fc.c Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NETFILTER]: ip_fw_compat_masq.c needs net/ip.h for IP_OFFSET. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PKT_SCHED]: Fix pkt_sched.h warnings. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PKT_SCHED]: Fix typo in config help text, noticed by Geert. [PATCH] symlink: fix missing 'depth' initialization Now we always care about one part of nameidata --- ->depth. And we need to make sure it's always initialized. generic_readlink() was missing that part. [ARM PATCH] 1942/1: basic LCD support for the PXA270/Mainstone board Patch from Nicolas Pitre This is only basic support so the LCD pannel becomes usable on Mainstone. No PXA270 specific capabilities were added. The Mainstone defconfig also updated to enable LCD by default. [PATCH] x86: fix up cpumask breakage We can't do &some_inline_function(); Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [AGPGART] Fix silly logic bug in AGPx8 ->x4 fallback code. Spotted by Rainer Klier Signed-off-by: Dave Jones [NET] move already shared functions from inet to core inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are already shared with ipv6 and sctp, will be used as well by the poor cousins, so reflect this properly renaming them to sock_common_NAME and move them to net/core/sock.c Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [NET] share tcp_v4_destroy_sock with tcpv6 tcp_v6_destroy_sock just extends tcp_v4_destroy_sock, so reuse the tcp_v4_destroy_sock instead of cut'n'pasting it into tcpv6. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller Do not loop in cifsd demultiplex thread when someone sigkills it. On unmount of second user on same tcp session, make sure that we do not kill cifsd prematurely. Signed-off-by: Steve French (sfrench@us.ibm.com) [SPARC64]: Make find_next_bit take a const pointer. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [SPARC64]: Make ___arch_swapXp() take a const pointer. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [IPSEC]: Check encap_type at config time. The following patch moves the udp->encap_type check from the per-packet hot-path into udp_setsockopt(). As a consequence, this allows user space to detect whether the kernel actually supports the encap type that they're requesting. Pity no one did this before the NON-IKE patch was applied. As it is there is no easy way to detect whether NON-IKE support is present. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Check encap_type at config time, in user API code. Here is the patch to check encap_type at the earliest possible opportunity in xfrm_user/af_key. This will allow us to assume in esp4 that the encap_type from x->encap is always valid. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] isofs fixes This fixes two things. On the one hand we have the old "cruft" mount option, that sometimes was enabled automatically, for ridiculously large files or CDROMs. But what was ridiculous ten years ago, no longer is. So, only decide that something is cruft when the user said so. On the other hand, sometimes we get negative sizes. That is caused by assignments inode->i_size = isonum_733(), where the latter was declared integer. I made it unsigned int, as the standard also does. (Someone with problems replied: >> Could you test the below? > Ok I did, the patch seems to work great! Thanks! ) [PATCH] ide: idle disk on resume From: Jens Axboe I need this patch to survive suspend on my powerbook, if the drive is sleeping when suspend is entered. Otherwise it freezes on resume when it tries to read from the drive. Acked by Ben. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: limit max_sectors to 256 for PDC20265 PDC20265 seems to not like large LBA48 requests. Thanks to Adolfo Gonzalez Blazquez for help in debugging this problem. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] v850: guard declaration of handle_IRQ_event with #ifdef !__ASSEMBLY__ Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] v850: add missing end-of-line backslash to vmlinux.lds.S Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] v850: add find_next_bit [Since many archs use the same implementation of find_next_bit, it might be nice to have `generic_find_next_bit' or something.] Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] v850: remove bogus __ARCH_WANT_ macro defs Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] make CONFIG_SYSVIPC depend on CONFIG_MMU The sysv-ipc code uses mm/shmem.o, which in turn uses VM stuff and is only compiled on MMU systems. Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] ia64: early console registration Allow consoles to register early if they're capable of early output. If one of them registers successfully, set CPU 0 online so that printk() will actually call the console drivers. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger [PATCH] ia64: Fixups for the SN2 Block Transfer Engine The attached patch contains some cleanups to the bte code and introduces the ability to excercise bte interfaces on other nodes. This is an SGI Altix specific piece of hardware. Signed-off by: Robin Holt Signed-off by: Jesse Barnes Signed-off-by: David Mosberger [PATCH] ia64: make SN2 use 16MB granules, too Altix needs to use 16MB granules to prevent attribute aliasing in low memory space. This patch makes the kernel configuration system enforce that requirement. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger [PATCH] ia64: minor IOSAPIC cleanup Introduce iosapic_{read,write,eoi} to hide the IOSAPIC REG_SELECT stuff. i386 and x86_64 already do this for io_apic_{read,write}. Signed-off-by: Bjorn Helgaas Signed-off-by: David Mosberger [PATCH] ia64: another sn2_defconfig update This update fixes the FAT default NLS options and trims some others. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger [PATCH] ia64: trashing bootmem on non-NUMA boxes call_pernode_memory() is rounding memory regions to page boundaries, but in the non-NUMA case, it's incorrectly passing the rounded start and the original length. Any reserved memory regions sitting beyond a memory region that isn't nicely aligned is potentially at risk for getting freed and trashed. This is a fairly nasty bug that can bite in very hard to find ways. In my case, the EFI memory map was getting overwritten, causing the ACPI methods to access chipset registers cachable instead of uncachable. It could potentially be causing some of the random hangs and strange behavior we're seeing lately. Signed-off-by: Alex Williamson Signed-off-by: David Mosberger [PCMCIA] Fix bogus align value 0 is not a valid alignment value for allocate_resource() [ARM] Fix SA1100 build after timer changes. [PATCH] More advansys fixes - fix PCI wide "use_sg > 0" problem introduced in lk 2.6.7-bk2 - fix ISA oops (present in all versions of the lk 2.6 series to date) - bump version to "3.3K" and add comments - fix compilation error when ADVANSYS_DEBUG defined Signed-off-by: James Bottomley advansys: add warning and convert #includes The DMA conversion of the advansys driver is still broken. Add a #warning to the driver and a comment above it explaining what needs to be done. Mark the driver as BROKEN because of the warning Also remove the #include "scsi.h" Signed-off-by: James Bottomley [PATCH] ppc32: fix compilation PPC has an out of line and exported abs() that gives lots of nice and wierd compilation erorrs. Also kill the duplicate cpu_online() in asm-ppc/smp.h. [PATCH] MPT Fusion driver 3.01.09 update On Mon, Jun 21, 2004 at 12:16:08PM -0400, Moore, Eric Dean wrote: > We are pleased to announce the MPT Fusion release candidate for lk 2.6 I've worked with Eric offline to resolve the issue we had and get some more changes in, but he has left for his vacation today. He send me a patch though and left it to me whether we'd merged it despite only moderate testing. Given 2.6.7 was just done and he'll certainly be back before 2.6.8 I'd go for it. Below is the patch rediffed against scsi-misc-2.6: Signed-off-by: James Bottomley [IPSEC]: Fix alen calcs in non-IKE encapsulation. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Remove run-time encap_type checks in esp4. This allows us to remove all the per-packet checks on x->encap->encap_type. I've left the check in esp_input just in case someone adds a non-ESP encap type in future. However, printing a warning and then continuing is definitely wrong. So expect a follow-up patch to drop the packet when encap_type is unknown in esp_input. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Drop bogus NAT-T printks in esp_input. Here is the patch to drop the packet if encap_type is unknown. I've also removed the other two bogus printk's as they cannot occur (printing a message is the last thing you want to do even if they did occur :). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: In tca_action_flush, don't pass NULL netlink callback into ops->walk(). Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [IPSEC]: Move common code out of udp_encap_rcv(). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] fdomain screwup | From: Andrew Morton | To: linux-scsi@vger.kernel.org | Subject: fdomain screwup | | - fdomain_setup() is marked __init, but is called from non-__init | fdomain_16x0_detect() | | - fdomain_setup() is declared in drivers/scsi/pcmcia/fdomain_stub.c as | taking two arguments, but is implemented in fdomain_setup() taking a | single argument. | | Please, never ever ever put extern function declarations in .c files. | Put it in a header file which is visible to the definition and to all | callsites. | | - fdomain_setup() is declared static, hence the linkage fails. | | - fdomain_16x0_bus_reset() is implemented in drivers/scsi/fdomain.c but | has static scope, so the call from drivers/scsi/pcmcia/fdomain_stub.c | doesn't work. [I didn't find this to be the case, so I didn't fix it.] | - fdomain_16x0_bus_reset() has an extern declaration in | drivers/scsi/pcmcia/fdomain_stub.c. This should be moved to a header | file which is visible to etc... Builds and loads. No hardware to test. Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] fix aic7xxx probing aic7xxx probing routines are still wrong on eisa. Fix eisa by incrementing found if it returns successfully Also make all the various incarnations of the pci probing routine consistently return the number of found cards (or 1 for the later generic device model probing). Signed-off-by: James Bottomley [ATM]: fix sparse checker warnings (by Stephen Hemminger ) Fix up fdomain after mismerge Signed-off-by: James Bottomley [PATCH] mptbase.c build fix drivers/message/fusion/mptbase.c: In function `procmpt_summary_read': drivers/message/fusion/mptbase.c:5160: parse error before `int' Signed-off-by: Andrew Morton Signed-off-by: James Bottomley ncr53c8xx turn on clustering Since the driver now supports multiple virtual segments in an iommu situation, it can also support clustering for non-iommu systems. Signed-off-by: James Bottomley [PATCH] some tmscsim consolidation On Sun, Jun 06, 2004 at 02:41:56PM +0200, Christoph Hellwig wrote: > I've looked through my old tmscsim patch queue and found this one: > > - merge dc390_initDCB into dc390_slave_alloc > - merge DC390_release and dc390_shutdown into dc390_remove_one, > use del_timer_sync to make sure the timer is really deleted on > removal, adjust locking accordingly > - some tiny related cleanups Okay, here's a resend vs current scsi-misc-2.6 that has your three outstanding merged. Additionally I've also killed dc390_freeDCBs() as all dcbs are removed in ->slave_destroy. Signed-off-by: James Bottomley [PATCH] kill obsolete typedefs and wrappers from tmscsim Signed-off-by: James Bottomley [PATCH] PATCH: (as333) BLIST flag for non-lockable devices On Wed, 23 Jun 2004, Mike Anderson wrote: > Since SCSI already has the device list it would seem like we would > possibly add a new flag like was done for mode sense. As this is not a > transport issue I would assume we would not want to add flags in > usb/storage, but handle it in the mid-layer as a SCSI protocol > non-compliance. Here is a patch that implements this suggestion. It's rather similar to the one that Javier Marcet wrote back in January, in http://marc.theaimsgroup.com/?l=linux-usb-users&m=107345268526718&w=2 Signed-off-by: Alan Stern Signed-off-by: James Bottomley [PATCH] Add PCDP console detection support Add support for the EFI/DIG PCDP console discovery table (see http://www.dig64.org/specifications/DIG64_HCDPv20_042804.pdf). This moves the code from drivers/serial/8250_hcdp.[ch] to drivers/firmware/pcdp.[ch], since it's no longer 8250-specific. It also obsoletes CONFIG_SERIAL_8250_HCDP, replacing it with CONFIG_EFI_PCDP (which defaults to Y for ia64). In a nutshell, HCDP tells us "these UARTs are available for use as a console," and it's up to the user to explicitly specify the console device. The kernel can guess in some cases, but not all. The PCDP (aka HCDP v2) tells us what we really want to know, namely, "this UART or VGA device is the console device." (It also has provision for support for new device types.) Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: COMMAND_LINE_SIZE fix In file included from arch/ppc64/kernel/setup.c:37: include/asm/machdep.h:116: `COMMAND_LINE_SIZE' undeclared here (not in a function) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix oprofile on 970 - Use 970/970FX instead of GPUL - Add POWER5 and 970FX to systemcfg.h - Create new cpu feature CPU_FTR_MMCRA_SIHV and use it Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: udbg should use snprintf Use vsnprintf/snprintf in udbg.c Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: another udbg fix udbg_read would lock up if ppc_md.udbg_putc didnt exist. Just return 0 and dont lock up instead. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: udbg fix Some udbg.c cleanups: - remove some old comments - clean up formatting - remove unused udbg_puthex and udbg_printSP Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove a stale comment in rtas.c rtas.c doesn't call reloc_offset remove comment from rtas.c and extern function declaration Signed-off-by: Anton Blanchard Signed-off-by: Milton Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix usage of cpumask_t on iSeries This fixes a bit of iSeries code that hadn't been changed to reflect that cpumask_t is now a struct and not an integer type. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] __alloc_bootmem_node should not panic when it fails __alloc_bootmem_node currently panics if it cant satisfy an allocation for a particular node. Thats rather antisocial, we should at the very least return NULL and allow the caller to proceed (eg try another node). A quick look at alloc_bootmem_node usage suggests we should fall back to allocating from other nodes if it fails (as arch/alpha/kernel/pci_iommu.c and arch/x86_64/kernel/setup64.c do). The following patch does that. We fall back to the regular __alloc_bootmem when __alloc_bootmem_node fails, which means all other nodes are checked for available memory. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] larger IO bitmaps The previous discussion was started here: http://www.uwsg.iu.edu/hypermail/linux/kernel/0211.0/0477.html but in 2.4 times this was kind of problematic. Now, with the lazy bitmap allocation and per-CPU TSS, this will really not drain any resources I think. 8K TSS increase and 8K per process *that does ioperm()* - I think it is not very bad. The reasons why I need that, are described in the URL above. Basically this will allow to use full-screen VESA under dosemu (without LFB though), and this may be also helpfull for the XFree project and some other projects: http://www.uwsg.iu.edu/hypermail/linux/kernel/9807.1/1079.html Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NX (No eXecute) support for x86 we'd like to announce the availability of the following kernel patch: http://redhat.com/~mingo/nx-patches/nx-2.6.7-rc2-bk2-AE which makes use of the 'NX' x86 feature pioneered in AMD64 CPUs and for which support has also been announced by Intel. (other x86 CPU vendors, Transmeta and VIA announced support as well. Windows support for NX has also been announced by Microsoft, for their next service pack.) The NX feature is also being marketed as 'Enhanced Virus Protection'. This patch makes sure Linux has full support for this hardware feature on x86 too. What does this patch do? The pagetable format of current x86 CPUs does not have an 'execute' bit. This means that even if an application maps a memory area without PROT_EXEC, the CPU will still allow code to be executed in this memory. This property is often abused by exploits when they manage to inject hostile code into this memory, for example via a buffer overflow. The NX feature changes this and adds a 'dont execute' bit to the PAE pagetable format. But since the flag defaults to zero (for compatibility reasons), all pages are executable by default and the kernel has to be taught to make use of this bit. If the NX feature is supported by the CPU then the patched kernel turns on NX and it will enforce userspace executability constraints such as a no-exec stack and no-exec mmap and data areas. This means less chance for stack overflows and buffer-overflows to cause exploits. furthermore, the patch also implements 'NX protection' for kernelspace code: only the kernel code and modules are executable - so even kernel-space overflows are harder (in some cases, impossible) to exploit. Here is how kernel code that tries to execute off the stack is stopped: kernel tried to access NX-protected page - exploit attempt? (uid: 500) Unable to handle kernel paging request at virtual address f78d0f40 printing eip: ... The patch is based on a prototype NX patch written for 2.4 by Intel - special thanks go to Suresh Siddha and Jun Nakajima @ Intel. The existing NX support in the 64-bit x86_64 kernels has been written by Andi Kleen and this patch is modeled after his code. Arjan van de Ven has also provided lots of feedback and he has integrated the patch into the Fedora Core 2 kernel. Test rpms are available for download at: http://redhat.com/~arjanv/2.6/RPMS.kernel/ the kernel-2.6.6-1.411 rpms have the NX patch applied. here's a quickstart to recompile the vanilla kernel from source with the NX patch: http://redhat.com/~mingo/nx-patches/QuickStart-NX.txt update: - make the heap non-executable on PT_GNU_STACK binaries. - make all data mmap()s (and the heap) executable on !PT_GNU_STACK (legacy) binaries. This has no effect on non-NX CPUs, but should be much more compatible on NX CPUs. The only effect it has it has on non-NX CPUs is the extra 'x' bit displayed in /proc/PID/maps. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sysfs: fill_read_buffer() fix This BUG_ON() triggers for `count = -EFOO' due to PAGE_SIZE being unsigned. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove smbfs server->rcls/err This is a small cleanup requested by Urban, use the rcls/err in smb_request as opposed to smb_sb_info. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kallsyms: exclude kallsyms-generated symbols Exclude symbols added by kallsyms itself, so .tmp_kallsyms[12].S have the same list of symbols. Signed-off-by: Keith Owens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kallsyms: verify that System.map is stable Verify that linking kallsyms into vmlinux generates a stable System.map, instead of assuming that it is stable. Add CONFIG_KALLSYMS_EXTRA_PASS as a temporary workaround for unstable maps, so users can proceed while waiting for kallsyms to be fixed. Signed-off-by: Keith Owens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kbuild: distclean srctree fix I just find a bug that ``make distclean'' cannot remove the editor backup files and the like when using build directory. That is because the find command is improperly searching the build directory instead of the $(srctree) it should. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make __free_pages_bulk more comprehensible I find __free_pages_bulk very hard to understand ... (I was trying to mod it for the non MAX_ORDER aligned zones, and cleaned it up first). This should make it much more comprehensible to mortal man ... I benchmarked the changes on the big 16x and it's no slower (actually it's about 0.5% faster, but that's within experimental error). I moved the creation of mask into __free_pages_bulk from the caller - it seems to really belong inside there. Then instead of doing wierd limbo dances with mask, I made it use order instead where it's more intuitive. Personally I find this makes the whole thing a damned sight easier to understand. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix race between CONFIG_DEBUG_SLABALLOC and modules store_stackinfo() does an unlocked module list walk during normal runtime which opens up a race with the module load/unload code. This can be triggered by simply unloading and loading a module in a loop with CONFIG_DEBUG_PAGEALLOC resulting in store_stackinfo() tripping over bad list pointers. kernel_text_address doesn't take any locks, because during an OOPS we don't want to deadlock. Rename that to __kernel_text_address, and make kernel_text_address take the lock. Signed-off-by: Zwane Mwaikambo Signed-off-by: Rusty Russell (modified) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port Acer laptop irq routing workaround to new DMI probing This patch moves PCI IRQ routing workaround for Acer TravelMate 360 laptop to arch/i386/pci/irq.c and makes acer_tm360_irqrouting variable static. It also fixes VisWs build error caused by this workaround code. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port PnP BIOS driver to new DMI probing This patch ports PnP BIOS driver to new DMI probing API. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port sonypi driver to new DMI probing This patch ports sonypi driver to new DMI probing API and removes is_sony_vaio_laptop global variable. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port PIIX4 SMBUS driver to new DMI probing This patch ports sonypi driver to new DMI probing API and removes is_unsafe_smbus global variable. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port powernow-k7 driver to new DMI probing This patch ports powernow-k7 driver to new DMI probing API. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: remove unused ASUS K7V-RM DMI quirk BROKEN_ACPI_Sx flag doesn't seem to be used anywhere in the kernel, so ASUS K7V-RM can be removed. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmi_scan: port APM BIOS driver to new DMI probing This patch ports APM BIOS driver to new DMI probing API. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hpet fixes I eliminated the request_irq brain damage, chopped off procfs support (didn't care for it too much in the first place and it was adopted from rtc.c), made the check for FMODE_WRITE in hpet_open and responded to a few other suggestions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] per node huge page stats in sysfs It adds per node huge page stats in sysfs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: mark NFS/TCP server not EXPERIMENTAL From: Greg Banks NFS/TCP has been used widely for a long time now, and is now enabled by many distros and typically recommended for lossy or congested networks. This patch removes the EXPERIMENTAL tag, updates the help text, and changes arch defconfigs to set it by default (note that several already did so). Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: simplify nfsd4 name encoding. Use opaque xdr encoding routines from xdr.c instead of rolling our own. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: simplify nfsd4_release_lockowner Simplify nfsd4_release_lockowner a bit, factor out code that we need for another patch. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: delete an obsolete comment from nfsd rpc code Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: reduce stack usage in nfsd4 nfsd4_proc_compound is using over a thousand bytes of stack. This is partly because it declares two local svc_fh's, partly because of a big switch statement which calls a bunch of functions which may be inlined. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: nfsd4 lockowner fixes Insist that the first time a client presents a new lockowner, the seqid should be 0. (RFC 3530 section 8.1.5) Also, return an error if the client presents a previously-used lockowner as if it were new. From: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: parse nsfd4 callback information Preparation for delegations: parse callback information provided in setclientid request. From: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: improve cleaning up of nfsd4 requests Currently nfs4_arg->to_free keeps a list of void ptrs on which kfree is called when freeing the nfs4_arg. This allows us to do cleanup on e.g. xdr decode failures. To allow more complicated objects to be freed (in particular, acls), we add a "void (*release)(void *)" to allow us to request something other than kfree be called when freeing. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: allow user to set NFSv4 lease time. Allow the lease to be set from /proc/fs/nfs/nfsv4leasetime. To comply with rfc3530, this appears as a server reboot from the point of view of the client, which must reclaim state with the grace period. From: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386: uninline memmove Using current gcc CVS I hit a piece of code in which the compiler was emitting a memmove() call. The kernel link failed. Uninline it. Also, move the memcpy and memset exports into memcpy.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: fix build with CONFIG_SECURITY_NETWORK=n SELinux should just drop out the socket and netfilter hooks when that is disabled. The problem was introduced because of the fine-grained netlink patches, which made the selinux_netlink_send/recv hook functions depend on CONFIG_SECURITY_NETWORK but the netlink_send/recv hooks themselves are not dependent on it. Need to move selinux_netlink_send/recv back out of the conditional block, and provide a static inline stub for selinux_nlmsg_perm if CONFIG_SECURITY_NETWORK is not defined. Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tidy up the identify_cpu() output Here's a patch to line up the "CPU: After * identify, caps:" messages produced by printk's in arch/i386/kernel/cpu/common.c Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Permit root to choose vfat policy to UTF8 Right now the kernel detects the sysadmin trying to set the iocharset of vfat to UTF8 and prevents this with an error. While I can see that this is not recommended, enforcing this is policy that probably doesn't belong in the kernel. The patch below makes this situation a warning and a recommendation instead of a strong blockage. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=126641 is an example of a sysadmin disliking this policy enforcement. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc: add common CRC16 module Currently we have 8 copies of CRC16 calculation table in different device drivers, this patch creates common crc16.c module to replace them. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc: use it in async PPP driver This patch makes async PPP driver use common crc16 code. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc: use it in IRDA drivers This patch makes IRDA subsystem use common crc16 code. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc: use it in ISDN drivers This patch makes various ISDN drivers use common crc16 code. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc: use it in AX.25 drivers This patch makes AX.25 drivers use common crc16 code. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix direct I/O into hugetlb page Hit a kernel oops on 2.6.7 kernel when doing direct I/O to hugetlb page. The destructor of compound page was moved into page->mapping since 2.6.6. It got interfered with set_page_dirty() for hugetlb page: an O_DIRECT read into first tail page of the compound page will fool set_page_dirty() to deference page->mapping->a_ops and then kernel oops. Patch to fix the oops. We do just like what bio_set_pages_dirty() does. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix NUMA boundaray between ZONE_NORMAL and HIGHMEM From: Andy Whitcroft This patch eliminates the false hole which can form between ZONE_NORMAL and ZONE_HIGHMEM. This is most easily seen when 4g/4g split is enabled, but it's always broken, and we just happen not to hit it most of the time. Basically, the patch changes the allocation of the numa remaps regions (the source of the holes) such that they officially fall within VMALLOC space, where they belong. Tested in -mjb for a couple of months, and again against 2.6.7-mm1. Signed-off-by: Andy Whitcroft Signed-off-by: Martin J. Bligh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] missing semicolon in 2.6.7 VIODASD driver There appears to be a missing semicolon in the VIODASD driver in 2.6.7. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppp_generic.c get_filter made conditional Add #ifdef CONFIG_PPP_FILTER around get_filter implementation which is only used when this option is enabled. This prevents compiler warning (unused function) when CONFIG_PPP_FILTER is not defined. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] laptop-mode documentation update The laptop mode docs don't say that no kernel configuration changes are needed to use laptop mode. That's caused some people to look for the option. This patch makes the doc explicitly mention the lack of an option. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] inodes_stat.nr_unused fix __sync_single_inode() is forgetting to increment inodes_stat.nr_unused when moving a previously-dirty inode onto the inode_unused list. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Laptop mode control script improvements From: Herve Eychenne Clean up the script. This also makes it two times faster. (Thanks to Herve Eychenne.) - moved variable definitions to the top, for easier configuration - the script contains bashisms, so make it /bin/bash - use sed -e'...' -e '...' instead of sed | sed - avoid subshells: () changed to {} - various other minor optimizations and improvements Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp.S: meaningful assembly labels This introduces meaningfull labels instead of .L1234, meaning code is readable, kills alignment where unneccessary, and kills TLB flush that was only pure paranoia (and slows it down a lot on emulated systems). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/ipmi/ipmi_si_intf.c warnings drivers/char/ipmi/ipmi_si_intf.c: In function `acpi_gpe_irq_setup': drivers/char/ipmi/ipmi_si_intf.c:1173: warning: passing arg 4 of `acpi_install_gpe_handler' from incompatible pointer type drivers/char/ipmi/ipmi_si_intf.c: In function `acpi_gpe_irq_cleanup': drivers/char/ipmi/ipmi_si_intf.c:1193: warning: passing arg 3 of `acpi_remove_gpe_handler' from incompatible pointer type Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] anon_vma list locking bug Vladimir Saveliev reported anon_vma_unlink list_del BUG (LKML 24 June). His testing is still in progress, but we believe it comes from a nasty locking deficiency I introduced in 2.6.7's anon_vma_prepare. Andrea's original anon_vma_prepare was fine, it needed no anon_vma lock because it was always linking a freshly allocated structure; but my find_mergeable enhancement let it adopt a neighbouring anon_vma, which of course needs locking against a racing linkage from another mm - which the earlier adjust_vma fix seems to have made more likely. Does anon_vma->lock nest inside or outside page_table_lock? Inside, but that's not obvious without a lock ordering list: instead of listing the order here, update the list in filemap.c; but a separate patch because that's less urgent and more likely to get wrong or provoke controversy. (Could do it with anon_vma lock after dropping page_table_lock, but a long comment explaining why some code is safe suggests it's not.) Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpufreq_delayed_get() inlining fix Here's a patch to reorder timer_tsc.c so gcc 3.4 does not fail to inline and thus fix the warning "arch/i386/kernel/timers/timer_tsc.c:30: warning: inlining failed in call to 'cpufreq_delayed_get': function body not available" Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lock ordering comment update Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3: direct-io transaction extending fix ext3_direct_io_get_blocks() is misinterpreting the return value from ext3_journal_extend(), and is consequently running out of buffer credits and going BUG on tremendously large direct-io writes. Fix that up. Also, I note that the really large direct-io writes can hold a transaction open for the entire duration, which can be minutes. This violates ext3's attempt to commit data at regular intervals. Fix that up by looking at the transaction state: if it's T_LOCKED, shut off the current handle so the pending commit can complete. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ARM COMMAND_LINE_SIZE build fix Rework the declaration, sizing and memcpying of saved_command_line[] so that ARM doesn't need to implement unwelcome header file nestings. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Don't hold i_sem on swapfiles We permanently hold the i_sem of swapfiles so that nobody can addidentally ftruncate them, causing subsequent filesystem destruction. Problem is, it's fairly easy for things like backup applications to get stuck onthe swapfile, sleeping until someone does a swapoff. So take all that out again and add a new S_SWAPFILE inode flag. Test that in the truncate path and refuse to truncate an in-use swapfile. Synchronisation between swapon and truncate is via i_sem. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext2_setattr retval fix ext2_setattr() drops the inode_setattr() return value on the floor. This is very bad - I/O errors during truncate are lost. The patch changes ext2_setattr() so that we no longer call ext2_acl_chmod() if inode_setattr(), which is what ext3 does. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs_setattr retval fix reiserfs() is also dropping inode_setattr() retvals on the floor. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jfs_setattr() fix jfs is dropping inode_setattr()'s return value. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cifs_setattr() retval fix CIFS is failing to propagate the inode_setattr() return value. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ncpfs_setattr() retval fix ncpfs is failing to propagate the inode_setattr return value. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] affs_setattr() retval fix affs is failing to propagate the inode_setattr() return value. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PPC64 iSeries fails to boot Jeremy Katz of Red Hat reported that his iSeries machine would not boot with 2.6.7 based kernels. It appears that with the inclusion of Paul Mackerras' patch "Optimize exception/syscall entry/exit" a small previous patch got reverted. Here is that patch again. The lack of this patch does not stop all iSeries machines booting, but it does stop some. Signed-off-by: Stephen Rothwell Signed-off-by: Linus Torvalds [SPARC64]: No longer set WANT_PAGE_VIRTUAL. Also uninline pfn_to_page and page_to_pfn. Struct page is now 8 bytes smaller. Fix cifs xid transaction counts to be more consistent. Start using __set_page_dirty_no_buffers. Signed-off-by: Steve French (sfrench@us.ibm.com) [NET]: Kill spurious ifndef in net/ip.h Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller [NET]: Fix SO_{RCV,SND}TIMEO getsockopt handling. A microsecond is 1 millionth of a second not 1 thousandth of a second. Noticed by Markus Mottl Signed-off-by: David S. Miller [PATCH] ppc32: command_line_size build fix We need setup.h for COMMAND_LINE_SIZE. Signed-off-by: Joseph Fannin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ia32: fix deadlocks when oopsing while mmap_sem is held If a fault in the kernel leads to an unexpected protection fault whilst in a code path which holds mmap_sem we will deadlock in do_page_fault() while trying to classify the fault. By carefully testing the source of the fault we can detect and OOPS on the vast majority of these, greatly enhancing diagnosis of such bugs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86 stack dump fixes - Fix the !CONFIG_FRAME_POINTER && !CONFIG_KALLSYMS output formatting. - Make print_context_stack() static Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix smbfs readdir oops This has been reported a couple of times and is consistently causing some folks grief, so Urban, would you mind terribly if i send this patch to at least clear current bug reports. If there is additional stuff you want ontop of this let me know and i can send a follow up patch. The bug is that at times we haven't completed setting up the smb_ops so we have a temporary 'null' ops in place until the connection is completely up. With this setup it's possible to hit ->readdir() whilst the null ops are still in place, so we put the process to sleep until the connection setup is complete and then call the real ->readdir(). This patch addresses the bugzilla report at http://bugzilla.kernel.org/show_bug.cgi?id=1671 Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radeonfb accel capabilities Here's the accel capabilities patch for radeonfb. It updates radeonfb to advertise its acceleration capabilities via fbinfo.flags. I've tested this on my box, and it gives me a nice fast console. defect: "$ fbset -accel 0" doesn't work for radeonfb -- disabling accel will only work from the kernel command line :-/ Cc: Benjamin Herrenschmidt Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vc locking Like a few other drivers the vc driver is doing unlocked careless references to file offsets. Its got kind of 2.2 locking that hasnt been updated in the lseek function so someone at least tried. Fortunately we have a real lock for this and can just make lseek use that too. The 'assume 64bit load is atomic' bug seems to be very widely spread akpm@osdl.org: Move declarations to vt_kern.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix GFP zone modifier interators For each node there are a defined list of MAX_NR_ZONES zones. These are selected as a result of the __GFP_DMA and __GFP_HIGHMEM zone modifier flags being passed to the memory allocator as part of the GFP mask. Each node has a set of zone lists, node_zonelists, which defines the list and order of zones to scan for each flag combination. When initialising these lists we iterate over modifier combinations 0 .. MAX_NR_ZONES. However, this is only correct when there are at most ZONES_SHIFT flags. If another flag is introduced zonelists for it would not be initialised. This patch introduces GFP_ZONETYPES (based on GFP_ZONEMASK) as a bound for the number of modifier combinations. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove include/asm-*/init.h There's no reason to keep files that a) nobody #include's b) produce #error Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] minor CAP_DAC_OVERRIDE fix CAP_DAC_OVERRIDE fails to give search permission in a directory with mode 0. Patch acked by Chris Wright Signed-off-by: Andries Brouwer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ppc64: fix silly typo ("1" vs "i"). [ARM] Update ARM kernel install script - fix up for kbuild changes - run users own kernel install script if present [AIO]: kiocb->private is too large for kiocb's on-stack. sizeof(struct kiocb) is dangerously large for a structure commonly allocated on-stack. This patch converts the 24*sizeof(long) field, ->private, to a void pointer for use by file_operations entrypoints. A ->dtor() method is added to the kiocb in order to support the release of dynamically allocated structures referred to by ->private. The sole in-tree users of ->private are async network read/write, which are not, in fact, async, and so need not handle preallocated ->private as they would need to if ->ki_retry were ever used. The sole truly async operations are direct IO pread()/pwrite() which do not now use ->ki_retry(). All they would need to do in that case is to check for ->private already being allocated for async kiocbs. This rips 88B off the stack on 32-bit in the common case. Signed-off-by: William Lee Irwin III Signed-off-by: David S. Miller [DECNET]: Fix signed bug in net/decnet/dn_nsp_in.c:dn_nsp_linkservice() char can be either signed or unsigned, depending on the target system. Signed-off-by: Olaf Hering Signed-off-by: David S. Miller [NET]: Fix typos in pktgen docs. [PATCH] nfs oops fix Al's current changes to struct nameidata broke nfsroot for my discless clients (oops in nfs_fill_super). The patch below fixes this problem for me. Cc: Trond Myklebust Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove extraneous security_inode_setattr call in hugetlbfs remove extraneous security_inode_setattr call in hugetlbfs, it's already done by VFS. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] move prototype for __get_vm_area() to a sane location There are currently two files besides mm/vmalloc.c that make use of that function: - arch/sh/kernel/cpu/sh4/sq.c which defined its own prototype locally risking not being in sync with the real function, and - arch/arm/kernel/module.c which has no prototype at all and cause build warnings. This fixes those issues hash cifs inodes Signed-off-by: Steve French (sfrench@us.ibm.com) [NETLINK]: Fix NLMSG_OK/RTA_OK length checking. Verify at least a full header is there before derefencing length struct member. USB: provide support for the HX version of pl2303 chips Thanks to Gordon Elam for the information needed to do this. Signed-off-by: Greg Kroah-Hartman merge /proc/fs/cifs/SimultaneousOps into /proc/fs/cifs/Stats Signed-off-by: Steve French (sfrench@us.ibm.com) [ARM] Move ZTEXTADDR/ZBSSADDR initialisation to compressed/Makefile Since this is where these two variables are used, it makes sense to have them in that makefile. Also, consolidate "targets" initialisation, fixes a missing FORCE dependency for the uImage rule, and remove more FTVPCI code. [ARM] arch/arm/boot variable name consistency. For clarity and consistency, use the same name for makefile and linker symbols. [ARM] Fix install/zinstall to work with separated source/build trees. [ARM] Convert bootp to use kbuild infrastructure. [ARM] Kernel boot decompressor updates - use 'Image' target for kernel image to be compressed rather than duplicating its generation. - use .incbin-based generation of ELF objects from binary data rather than 'ld'-based generation. [ARM] Prevent static data in misc.o Static data causes GOTOFF relocations to be used, which won't work because we want to relocate the .data section separately from the .text section. Therefore, force all data to be nonstatic. [ARM] EBSA110 I/O and decompressor fixes. This fixes the buggy decompressor assembly, and fixes PCMCIA IO to use the correct byte lane when accessing certain PCMCIA cards. [ARM] arch/arm/Makefile cleanups Clean up bzImage target, remove a couple of obsolete testing targets, and add better bootpImage help text. [ARM] Move ISA_DMA_THRESHOLD to asm/memory.h This allows machine classes to override ISA_DMA_THRESHOLD as necessary. [ARM] Move arch_adjust_zones to asm/memory.h This places arch_adjust_zones along side ISA_DMA_THRESHOLD. These two are related, but having them in separate files means its not obvious that they are. ISA_DMA_THRESHOLD is a DMA mask which must be defined such that it matches the memory handed out by GFP_DMA, which in turn is controlled by arch_adjust_zones. [PATCH] ppc64: fix memset This fixes a bug in the ppc64 memset where the code that gets the destination address aligned (or is supposed to) was looking at the bottom 3 bits of the count rather than the destination address. The result of this was that the kernel wouldn't boot on POWER3 machines. The patch also removes an unnecessary duplicate instruction. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] sparse: fix ugly include/linux/efi.h typedef efi.h declares a function type, and then uses that as an argument to another function, and expects the compiler to magically demote the function to a function pointer. Even a gcc person (rth) was surprised that this was legal, and it doesn't match any other use of a function pointer in the kernel, and sparse doesn't like the implicit type-conversion. So make the type sane in the first place, instead of depending on a very weird corner case of the C language. [PATCH] Remove NOOP code from fs/buffer.c::drop_buffers() I noticed that fs/buffer.c::drop_buffers() contains some code that AFAICS doesn't actually do anything other than waste cpu cycles so here is patch to remove it... The local variable was_uptodate is being messed with but it is not being read anywhere so it seems entirely pointless. I assume this must be a remainder from old code which mucked around with the page uptodateness but which has since been (re-)moved. Signed-off-by: Anton Altaparmakov Signed-off-by: Linus Torvalds [PATCH] USB Storage: unusual_devs.h addition took me a while to get my external usb drive running under linux-2.6.6, appears to need the appended fix. according to the header in unusual_devs.h one should send them to you, so here you go. the funny thing is that it works fine unter linux-2.6.0-test11 on different hardware, but then i'm out of my depth concerning what might have been changed in the usb driver in the meantime. i don't really follow the changes. i didn't find any real documentation about what these flags do, only a couple of "my usb drive worked with 2.4 but doesn't work any more with 2.6" messages on the web, and some of them pointed to unusual_devs.h. i do not claim to know what i've done with this fix, but i'd like to see it officially included. :-) T: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 2 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0402 ProdID=5621 Rev= 1.03 S: Product=USB 2.0 Storage Device S: SerialNumber=00042222200000113608 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms Signed-off-by: Greg Kroah-Hartman [PATCH] USB: PL2303 module, new IDs Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pwc-uncompress.h For some reason, gcc-2.95.4 dies horridly on those asmlinkage declarations. I was unable to work out _why_ those functions have asmlinkage, as there seem to be no instances of them - nobody calls pwc_register_decompressor(). What's up with that? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix pegasus_set_multicast lockup in drivers/usb/net/pegasus.c I strongly recommend that this patch be applied. Without this patch, running tcpdump on an SMP machine with the pegasus adapter locks up 9 times out of 10. This is what happens: CPU0 CPU1 pegasus_start_xmit netif_stop_queue pegasus_set_multicast netif_stop_queue netif_wake_queue Which crashes if another packet is sent to pegasus_start_xmit before the first one is finished. If there are other drivers doing this, please fix them too. PS I submitted this to Petkan years ago but he probably lost it. Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: Unusual_devs.h update On Sat, 26 Jun 2004, Edward C. Bailey wrote: > Hello, > > I was downloading some pictures from my Digital Wallet to my Fedora > Core 2 system at the same time I happened to be watching > /var/log/messages. Here's what I saw: > > Jun 26 12:16:02 raptor kernel: usb 1-1.2: new full speed USB device using address 6 > Jun 26 12:16:02 raptor kernel: usb-storage: This device (097a,0001,0001 S 06 P 01) has unneeded SubClass and Protocol entries in unusual_devs.h > Jun 26 12:16:02 raptor kernel: Please send a copy of this message to > > Given that Minds@Work are out of business, you might not care about this > information, but I thought I'd pass it on, just in case you do... :-) What the heck, we'll use it anyway. Thanks for sending this in. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [ARM] Reliably update SIZEOF_MACHINE_DESC Generate SIZEOF_MACHINE_DESC using asm-offsets method rather than relying on people updating the definition in asm/mach/arch.h [ARM] MMC mclk is no longer used, so remove it. [ARM] Miscellaneous fixes - Remove 'arc' machine name from Makefile - clk_set_rate() should return non-zero atm. - proc-sa1100.S doesn't need asm/ptrace.h - update mach-types - kill line of spaces in clock.h [PATCH] ia64: define cpu_logical_id() always Define cpu_logical_id() even when !SMP. I added uses of this in some iosapic printk's, which broke the UP build. Signed-off-by: David Mosberger [PATCH] ia64: fix a couple of comment typos Signed-off-by: David Mosberger [PATCH] ia64: Don't use -mtune=merced for gcc 3.4 Gcc 3.4 has a new DFA scheduler for ia64. Unfortunately, it is not well tested for Itanium 1. When I tried to use gcc 3.4 to compile 2.6 kernel configured for Merced, gcc failed in many places: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15598 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15653 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15655 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16130 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16142 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16143 Some of them have been fixed. But I am afraid many more remain. I don't know how many Itanium 1 machines left in production use. If people want to optimize kernel for Itanium 1, they can stick with the older gccs. Or they should upgrade their machines. I think the gcc developer's time should be better spent on somewhere else. I have been using this patch for a while, kernel seems to work OK. Signed-off-by: David Mosberger [PATCH] ia64: change ia64_switch_mode_{phys,virt}() to preserve bsp/sp Change ia64_switch_mode_phys() and ia64_switch_mode_virt() to preserve the virtual sp/bsp and update the call-sites accordingly. This avoids problems with the init_task pointer which lives in region 5 now. Signed-off-by: David Mosberger [NETFILTER]: Fix IP_NF_TARGET_NOTRACK config deps. [NET]: Two tc action fixes. Another patchlet after turning on preempt and rerunning tests. - against dev.c is a genuine bug - i wish preempt would have given a more sane hint. Strange on how its a non issue when preempt is off. - against act_api.c is just an annoyance. I removed the kmod because it will only make sense to list actions if policies exist for that action. And if policies exist, the module would be loaded. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [PATCH] ia64: Clean up needlessly large stack frames in PAL-call stubs The code allocated all 96 stacked registers, for no apparent reason. Also, fix ia64_pal_call_static() to switch RSE to enforced-lazy, LE mode before the PAL-call. Signed-off-by: David Mosberger [PKT_SCHED]: Packet scheduler exports. The packet scheduling code has some ugly define's which were to deal with configuration possibilities and the old style module exports. With the current 2.6 method, this is unnecessary. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller USB: fix bug where removing usb-serial modules or usb serial devices could oops This fixes the issue where the Generic driver would bind to all usb-serial devices, so the disconnect would not properly go to the real driver that controlled the device. This was very bad when unloading the module with the device still connected. Signed-off-by: Greg Kroah-Hartman sparse: fix pointer/integer confusion I don't think we're in K&R any more, Toto. If you want a NULL pointer, use NULL. Don't use an integer. Most of the users really didn't seem to know the proper type. [PATCH] ia64: fix incorrect initialization of ar.k4 for BP The patch to move the current pointer for init_task from region 7 to region 5 inadvertendly caused ar.k4 (CURRENT_STACK) to be initialized improperly for the bootstrap processor. Fix this by initializing it to -1. Signed-off-by: David Mosberger [PKT_SCHED]: Bad TDIFF_SAFE in csz. This code in the csz scheduler, is just plain broken. The TDIFF_SAFE effectively expands to: unsigned long delay = now - q->t_c; if (delay > 0) { delay = 0; goto do_reset; } if (delay >> q->delta_log) So delay is always 0! I assume that what was originally intended is the to keep delay bounded to 1<delta_log. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Eliminate guard from TDIFF_SAFE. The last argument in the PSCHED_TDIFF_SAFE is no longer used; only usage eliminated by previous patch. It gets rid of a bad macro usage. Also, can use the standard min_t macro which also eliminates the macro problem of double evaluation of bound. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Use get_jiffies_64() The packet scheduler simulates 64 bit jiffies on 32 bit platforms by running a timer keeping a mark and and offset. Since there is no locking and this is racy and doesn't handle jiffie wrap real well. We can use get_jiffies_64 on 2.6 do get what is needed. The downside is the overhead of a function call, and a cache miss in get_jiffies_64. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] ia64: update early printk for new console driver The Altix console driver has been replaced in Andrew's tree by a new one that uses the serial core API. Update the early_console_setup routine to use the new config option so that it's ready when the driver hits Linus' tree. This will also fix a build bug since the old driver hasn't been updated. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger Cset exclude: dtor_core@ameritech.net|ChangeSet|20040629212548|46753 [AGPGART] Fix sparse NULL pointer warnings. Signed-off-by: Dave Jones [PATCH] ia64: fix reloc-out-of-range error on module loading I'm hitting this problem because the module I want to load was compiled with -g, so the filesize is absolutely huge. kernel/module.c does a vmalloc() to inhale the entire file, and then two calls to module_alloc() (which calls vmalloc() on ia64) to load the 'init' and 'core' sections. The 'init' is small and slips into a gap early in the vmalloc playspace, while the 'core' area is allocated after the huge area that was allocated for the inhaled copy of the whole file. I made a one coding change to Jean-Marc's version, adding a check to see whether the init/core sections are close enough together for the PCREL21B to reach (they almost always are). I've kept the test that there are no jumps from core to init (though the message that is printed is almost as unhelpful as the one that you get when you statically link a module into the kernel that has calls to the discarded .exit section :-) This patch stalled out before on the question of whether a PLT was overkill for a section-to-section branch, and whether it would be better to use relaxation techniques to extend the range. Doing that might be more elegant in some way, but it needs a whole heap of extra code (to count how many relaxed branches need to be added and allocated them as needed). This seems a lot of extra code that is only ever going to be exercised by maniacs like me with 49MB .ko files. I fixed up the comments to be a little more heplful. Signed-off-by: Signed-off-by: David Mosberger [BRIDGE]: Fix message age in bridge STP config packets. This is a revised version of Kishore's patch to set message age appropriately in STP configuration packets. Signed-off-by: Kishore A K Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller ia64: Fix UP-build breakage caused by early_console_setup() patch. [PATCH] ia64: Quiet corrected errors (CMC/CPE) Trivial patch to quiet messages about corrected errors. Signed-off-by: Hidetoshi Seto Signed-off-by: David Mosberger [PATCH] x86_64 .init.setup alignment fix We're now putting 24-byte structures into .init.setup via __setup. But x86_64's compiler is emitting a `.align 16' in there, so they end up on 32-byte boundaries and do_early_param()'s pointer arithmetic goes wrong. Fix that up by forcing the compiler to align these structures to sizeof(long). Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix deadlocks when oopsing while mmap_sem is held If a fault in the kernel leads to an unexpected protection fault whilst in a code path which holds mmap_sem we will deadlock in do_page_fault() while trying to classify the fault. By carefully testing the source of the fault we can detect and OOPS on the vast majority of these, greatly enhancing diagnosis of such bugs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] binfmt misc fd passing via ELF aux vector The proposed patch uses the aux-vector to pass the fd of the open misc binary to the interpreter, instead of using argv[1] for that purpose. Previous patch - open_nonreadable_binaries, offered the option of binfmt_misc opening the binary on behalf of the interpreter. In case binfmt_misc is requested to do that it would pass the file-descriptor of the open binary to the interpreter as its second argument (argv[1]). This method of passing the file descriptor was suspected to be problematic, since it changes the command line that users expect to see when using tools such as 'ps' and 'top'. The proposed patch changes the method of passing the fd of the open binary to the translator. Instead of passing it as an argument, binfmt_misc will request the ELF loader to pass it as a new element in the aux-vector that it prepares on the stack for ELF interpreter. With this patch, argv[1] will hold the full path to the binary regardless of whether it opened it or not. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Translate Japanese comments in arch/v850 Convert the Japanese comments in arch/v850. I am not exactly 100% sure I translated it correctly since I have no idea what exactly was that NEC v850 evaluation board, but should be OK (say 95% sure). Acked by Miles Bader Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Provide console_device() [This patch series has also been separately sent to the architecture maintainers] Add console_device() to return the console tty driver structure and the index. Acquire the console lock while scanning the list of console drivers to protect us against console driver list manipulations. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Provide console_suspend() and console_resume() Add console_stop() and console_start() methods so the serial drivers can disable console output before suspending a port, and re-enable output afterwards. We also add locking to ensure that we synchronise with any in-progress printk. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] watchdog: indydog.c update (04/06/27 1.1770) [WATCHDOG] indydog.c-patch-20040627 * Fix: since we use the new module_param's: make sure that linux/moduleparam.h stays included * in the release code we can just use indydog_stop(); The ChangeSets can also be looked at on: http://linux-watchdog.bkbits.net:8080/linux-2.6-watchdog Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: fix display artifacts Fixed display artifacts present in the space reserved for the boot logo. Use attributes of the background erase character instead of hardcoding the color to zero. Signed-off-by: Antonino A. Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix to microcode driver for the old CPUs. Here is a patch against Linux 2.6.7 which fixes the sigmatch() macro to work for the relatively old processors as well, which have 'pf == 0' (processor flags as read from MSR 0x17), For example, the processors failing without this patch are Pentium II 300 MHz (Klamath) with family/model/stepping 6/3/4 and 6/3/3. The patch also contains minor cosmetic changes (to make source code more uniform). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CREDITS update Luiz has ~40 patches to his name, go he gets a banana. Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PCDP console detection support fixes Check for ioremap failure and use correct UPIO_{MEM,PORT} constants. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: vio infrastructure modifications The intention here is to have no effect on pSeries except: 1) vio_register_device is renamed to vio_register_device_node to better reflect is purpose and to allow me to introduce vio_register_device_iseries. 2) I have introduced the name and type fields in struct vio_dev to make these two fields independent of subarchitecture. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: iseries_veth integration Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: viodasd integration Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: viocd integration Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: viotape integration Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hpet fixes Some hpet clean up and a fix to the RTC request_irq issue. Signed-off-by: Bob Picco Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64 support This patch adds sh64 support. This is a bit overdue, as this was on the should-fix list, though we weren't done debugging and finishing off the port until just recently (I did a port against 2.5.68 but it wasn't in any shape to be merged). sh64 is already in 2.4 and has been for quite awhile, so this is mostly just a forward port of that code to 2.6 with appropriate bug fixes, etc. along the way. There isn't much in the way of new features that have been added to the port yet, though I have added rough hugetlb and oprofile support. This patch doesn't really touch any common code, with the exception of an ifdef or two for keyboard support and an ifdef in fb.h to omit sh64 from the __raw_xxx() wrapping that sh does. The only other common driver changes were to sh-sci for serial support, but those bits were already merged with the latest batch of sh-sci updates. Beyond that, the port is completely isolated. Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Fix syscall table alignment If the syscall table is in the text section, the movi that loads its address into a register will at link time have its immediates resolved as though it's an SHmedia symbol, i.e. the LSB will be 1. This is then misaligned as a base address for loading the address to jump to. This could be fixed either by moving the table back to the .data section (as done here), or by masking off the LSB after loading the table address into a register. Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kyrofb: Fix modedb usage when built as a module. Since James confirmed that this doesn't need to be module specific, we get rid of the #ifndef MODULE checks for both the modedb and the modedb lookup. Additionally we also switch from memset_io() to fb_memset(). Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh/sh64: MAINTAINERS update. This updates MAINTAINERS for sh/sh64 to match up with the 2.4 entries. I've also removed NIIBE-san as an active sh maintainer, since he hasn't been involved or submitted any code since 2002/06/26. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cirrusfb: minor fixes - fix unbalanced invocation of pci_enable_device(); - leaks plugged in cirrusfb_zorro_setup(); - move framebuffer_release() into cirrusfb_{pci/zorro}_unmap() to balance cirrusfb_{pci/zorro}_setup(); - make cirrusfb_{pci/zorro}_setup() return adequate error codes when something fails; - cirrusfb_zorro_unmap: iounmap() now take as argument values previously returned by ioremap(). Signed-off-by: Francois Romieu Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] signed bug in drivers/video/console/fbcon.c con2fb_map[] drivers/video/console/fbcon.c:310: warning: comparison is always true due to limited range of data type char can be either signed or unsigned, depending on the target system. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] EDD: store mbr_signature on first 16 int13 devices Currently, the x86/x86_64 real-mode kernel setup code reads and stores the mbr_signature (4 bytes in the MBR at offset 440 decimal) for BIOS int13h device 80h only. This is useful, but not as useful as if we stored such signatures for all int13h devices. Think OS installer wanting to set up md software RAID across several BIOS disks. Patch below against 2.6.7 allows the storing of the mbr_signature for the first 16 BIOS int13h devices, and exports them via /sys/firmware/edd/int13_dev8x/mbr_signature as before. This also merges the three EXPORT_SYMBOLs that setup.c exported for edd.c's use into one. Signed-off-by: Matt Domsch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Combined patch for remaining trivial sparse warnings in allnoconfig build Well, one of these (fs/block_dev.c) is little non-trivial, but i felt throwing that away would be a shame (and I did add comments ;-). Also almost all of these have been submitted earlier through other channels, but have not been picked up (the only controversial is again the fs/block_dev.c patch, where Linus felt a better job would be done with __ffs(), but I could not convince myself that is does the same thing as original code). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dma_get_required_mask() This patch implements dma_get_required_mask() which may be used by drivers to probe the optimal DMA descriptor type they should be implementing on the platform. I've also tested it this time with the sym_2 driver...making it chose the correct descriptors for the platform. (although I don't have a 64 bit platform with >4GB memory, so I only confirmed it selects the 32 bit descriptors all the time...) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add m68k support to checkstack Add m68k support to checkstack.pl Regular expression combination by Andres Schwab Signed-off-by: Signed-off-by: Jörn Engel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small fixes to checkstack - fix documentation - use $(src) in Makefile (fixes cross-compilation) Both spottet by Geert Uytterhoeven Signed-off-by: Jörn Engel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add to references __user which is defined in . Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix page->count discrepancy for zero page While writing some analysis tools for memory hot-remove, we came across a single page which had a ->count that always increased, without bound. It ended up always being the zero page, and it was caused by a leaked reference in some do_wp_page() code that ends up avoiding PG_reserved pages. Basically what happens is that page_cache_release()/put_page() ignore PG_reserved pages, while page_cache_get()/get_page() go ahead and take the reference. So, each time there's a COW fault on the zero-page, you get a leaked page->count increment. It's pretty rare to have a COW fault on anything that's PG_reserved, in fact, I can't think of anything else that this applies to other than the zero page. In any case, it the bug doesn't cause any real problems, but it is a bit of an annoyance and is obviously incorrect. We've been running with this patch for about 3 months now, and haven't run into any problems with it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Alpha compilation When using gcc 3.3.3 on alpha, the current BK head doesn't compile. - there's an external declaration for abs() in the same scope as a macro definition in arch/alpha/time.c - The compiler is picky about `const' declarations, which breaks on bitops.h. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radeonfb: 16bpp copyarea() fix radeonfb: fix 16bpp copyarea() bug It turns out the bug was due to my mis-copying a certain set of flags from the x.org tree. Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kill mm_struct.used_hugetlb mm_struct.used_hugetlb used to eliminate costly find_vma() from follow_page(). Now it is used only in ia64 version of follow_huge_addr(). I know nothing about ia64, but this REGION_NUMBER() looks simple enough to kill used_hugetlb. There is debug version (commented out) of follow_huge_addr() in i386 which looks at used_hugetlb, but it can work without this check. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds sparse: get rid of more integer/pointer confusion Use NULL, not 0, where appropriate. [CRYPTO]: Add TEA and XTEA algorithms. The following is a patch against 2.6.7 (should apply cleanly to 2.6.5 or above). It implements the Tiny Encryption Algorithm (TEA) and the Xtended TEA (XTEA) algorithms. TEA goes back to 1994 and is a good algorithm espically for memory constrained systems. It is similar in concept to the IDEA crypto. It does NOT have any patent restrictions and has been put in the public domain by Wheeler and Needham. Tea is used in quite a few products such as filesafe and even Microsoft's Xbox. Signed-off-by: Aaron Grothe Signed-off-by: James Morris Signed-off-by: David S. Miller [AGPGART] K8T800 Pro support in amd64 driver. Signed-off-by: Kris Kersey Signed-off-by: Dave Jones Driver Core: remove extra space in Kconfig file. Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 1947/1: Remove unused async_struct in OMAP pm.h Patch from Tony Lindgren Removes some dead code as noted by Russell King. [ARM PATCH] 1948/1: Mainstone compile fix Patch from Nicolas Pitre ... and a comment fix in bonus [ARM PATCH] 1949/1: warning fix Patch from Nicolas Pitre Missing prototype. JFS: Error path released metadata page it shouldn't have Signed-off-by: Dave Kleikamp [NETFILTER]: Fix opt[] to be array of u_int8_t in tcp_find_option(). [IPV4]: Bootp packet extension area is variable length. 1) Remove the magic 300 constant 2) Allow b->exten area to be zero or more variable bytes in length. Signed-off-by: David S. Miller [PATCH] sparse: NULL vs 0 - arch/i386/* [PATCH] sparse: NULL vs 0 - drivers/acpi/* [PATCH] sparse: NULL vs 0 - drivers/char/* [PATCH] sparse: NULL vs 0 - rest of drivers [PATCH] sparse: NULL vs 0 - drivers/usb [PATCH] sparse: NULL vs 0 - filesystems [PATCH] sparse: NULL vs 0 - net/* [PATCH] sparse: NULL vs 0 - sound/* [PATCH] sparse: NULL vs 0 - the rest of it [XFS] Don't dereference buffer after pagebuf_iostrategy() SGI Modid: xfs-linux:xfs-kern:174326a Signed-off-by: Nathan Scott [PATCH] prism54 cleanup functions 2004-06-28 Margit Schubert-While * Clean up function definitions (missing static, extraneous inline) [PATCH] prism54 missing error check 2004-06-28 Margit Schubert-While * Missing error check after dev_alloc_skb [PATCH] prism54 fix unlikely 2004-06-28 Margit Schubert-While * Fix a thinko by me [PATCH] prism54 device list cleanup 2004-06-28 Margit Schubert-While * Clean up the device table [PATCH] prism54 remove prog reg poke 2004-06-28 Margit Schubert-While * Don't poke around in the timeout registers [PATCH] prism54 use set_pci_mwi() 2004-06-28 Margit Schubert-While * Use set_pci_mwi() [PATCH] pcnet32: acknowledge all interrupts early. A recent change I made broke pcnet32 in a way that allowed real hardware to work, but broke VMWare. This patch acknowledges all interrupts early in the pcnet32_interrupt while loop. Without this patch on real hardware the first transmit operation would clear the 'init' interrupt, but in VMWare it would rain interrupts. Keith Moore did more testing for me on VMWare and I did a better job testing on hardware. Petr Vandrovec correctly pointed out the source of the problem on lkml. This patch is not needed for 2.4.27-rc1 unless my patch labeled "pcnet32: recover after rx hang" is applied (which it has not). signed-off-by: Don Fry [PATCH] pcnet32: Add HomePNA parameter for 79C978. This patch adds a module parameter to select HomePNA mode of operation for the 79C978 version of the pcnet32. Tested ia32 and ppc64. signed-off-by: Patrick Simmons signed-off-by: Don Fry [PATCH] pcnet32: correctly program bcr32. The pcnet32 driver was not correctly enabling MII autonegotiation after booting when ppc firmware forced the speed/duplex mode of the chip. After several conversations with AMD this patch corrects the problem. I have tested this on hardware I have available (ia32 and ppc64) but I would like wider audience testing of this patch. Signed-off-by: Don Fry [PATCH] pcnet32: change to use module_param Change the pcnet32 driver to use module_param and module_param_array. [PATCH] net/at1700.c depends on MCA_LEGACY From: "Luiz Fernando N. Capitulino" drivers/net/at1700.c does not compile without CONFIG_MCA_LEGACY set. As CONFIG_MCA_LEGACY depends on CONFIG_MCA, we can use only CONFIG_MCA_LEGACY, insteed of "MCA && MCA_LEGACY". Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton [SPARC64]: Document reserved and soft2 bits in PTE. [PATCH] net/ne2.c needs MCA_LEGACY From: "Luiz Fernando N. Capitulino" drivers/net/ne2.c does not compile without CONFIG_MCA_LEGACY set. As CONFIG_MCA_LEGACY depends on CONFIG_MCA, we can use only CONFIG_MCA_LEGACY, insteed of "MCA && MCA_LEGACY". Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton [PATCH] (1/3) skfp - cleanup is_XXX functions This started out from sparse warnings about calling with fddi_broadcast that is declared const. This fixes that and gets rid of some of the namespace pollution of this driver by moving the predicate function is_individual, is_broadcast, ... as inline's in the one file that uses them. Signed-off-by: Stephen Hemminger [PATCH] (2/3) skfp -- sparse __user annotation Add __user annotation to the device specific ioctl. [PATCH] [sparse] get rid of warnings about #if DEBUG Several drivers use '#if DEBUG' which is a warning under the sparse checker. Signed-off-by: Stephen Hemminger [PATCH] get rid of __OPTIMIZE__ requirement in net drivers Several network drivers have checks that they are only built with -O. This breaks checking with sparse and other tools, and seems like a holdover from when drivers were built out of tree and the kernel build system was less stable. This patch gets rid of these. Signed-off-by: Stephen Hemminger [PATCH] PCMCIA net device unplugging ordering fix This is a rather old patch which re-orders the teardown of PCMCIA network devices. Current device drivers remove the IO mappings, interrupts, and free any PCMCIA windows before they unregister themselves from the network layer. This patch ensures that we first unregister from the network layer before performing any teardown of resources or windows. Note: the only card which has been tested in this patch is pcnet_cs. [PATCH] Patch 1/2 enable smc91x enet driver for use by PPC Hi, Patch 1 of 2 to enable the smc91x driver to be used by the IBM Redwood5 and Redwood6 boards. Move drivers/net/arm/smc91x.[ch] to drivers/net Signed-off-by: Dale Farnsworth [PATCH] Patch 2/2 enable smc91x enet driver for use by PPC Hi, Patch 2 of 2 to enable the smc91x driver to be used by the IBM Redwood5 and Redwood6 boards. Enable smc91x driver to support IBM Redwood5 and Redwood6 boards Signed-off-by: Dale Farnsworth [PATCH] add new fec_8xx network driver [PATCH] skfddi - fix warning The conversion to ANSI, caused a warning because the mulitcast code needs a cast. dmi->dmi_addr is a u8 array, and fddi_addr is just a wrapper around a u8 array. Signed-off-by: Stephen Hemminger [PATCH] skfddi - cleanup local and dead functions Cleanup the SK Fddi driver a little more. Mark some functions as static, and eliminate (or comment out) some that are defined but never used. Signed-off-by: Stephen Hemminger [netdrvr] add fec_8xx to Makefile [netdrvr] disable certain drivers that are broken on 64-bit Disable Toshiba FIR IRDA driver (donauboe) and IBM Lanstreamer token ring driver on all 64-bit platforms. Add #error to each driver explaining the problem, causing build of driver to fail when BITS_PER_LONG == 64. [netdrvr] fix warnings found on 64-bit platforms Updated: 8139too, arcnet/arcnet, rrunner [SPARC64]: Reserve a software PTE bit for _PAGE_EXEC. Based upon the PAX sparc64 patches. Credit to PaX Team Also, reformat the comments here so the lines fit in 80 columns. Signed-off-by: David S. Miller [SPARC64]: Non-executable page support. Based upon the PAX patches. Credit to PaX Team Signed-off-by: David S. Miller [SERIAL] Remove UPF_RESOURCES The UPF_RESOURCES flag was added to the serial layer to cater for the idiosyncrasies of the PCMCIA layer, where the PCMCIA core code handles the claiming of busy resources. However, the PCMCIA core has progressed, and now does not claim busy resources - IOW, it now behaves just like any other bus driver, where resources are allocated non-busy and its up to the drivers to mark their regions busy using request_region / request_mem_region. The effect of this is that the UPF_RESOURCES hack in the serial layer is now redundant, and can now be removed - 8250 devices should now always use request_region / request_mem_region unconditionally. Signed-off-by: Russell King. [ARM] asm/arch-versatile/uncompress.h does not need linux/kernel.h [PATCH] enable SMP Opterons boot an NX-enabled x86 kernel This fixes a corner-case NX bug: the x86 SMP kernel doesnt boot on SMP Opterons if NX is enabled [and mem=nopentium is specified], due to kernel-space NX protection preventing the SMP trampoline from being executable. Since the SMP trampoline is a rare case of 'dynamic code' executed by the kernel (it has to be below 640K so it cannot be part of the kernel text itself), i've added the necessary infrastructure to enable/disable executability of specific kernel pages. We cannot simply disable NX via the MSR because we've got the NX bits in the kernel pagetables, which are set up before we do the SMP bootup. The NX bit in the pagetables is undefined if EFER.NXE is 0, so we cannot count on NX-capable CPUs not faulting when they encounter them. I've tested the x86 kernel on a non-NX SMP x86 box and on an NX UP box, on which i've also tested a simulated SMP trampoline, it all works fine. - add infrastructure to enable/disable executability of kernel pages - make the SMP trampoline page executable. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds [PATCH] Can't open CDROM device for writing Opening a CDROM device for writing no longer works, because cdrom_open() returns -EROFS even if cdrom_open_write() succeeds. This fixes it. Signed-off-by: Peter Osterlund Signed-off-by: Linus Torvalds [PATCH] zombie with CLONE_THREAD and strace 'strace' shows a problem with a missing release_task for self-reaping clones that have been traced. We need to defer releasing them until the tracer is done with them, but if the tracer dies, we need to handle that case gracefully too. We do that by having 'forget_original_parent()' generate a list of tasks to release when this case happens. Patch based on discussions on linux-kernel, and suggestions from Roland McGrath . [PATCH] Fix sound/isa/gus/* compile error without CONFIG_PNP [PATCH] dm: kcopyd.c: Remove unused include kcopyd.c: Remove unused #include. Signed-off-by: Kevin Corry Signed-off-by: Linus Torvalds [PATCH] dm: kcopyd.c: make client_add() return void kcopyd.c: client_add() can return void instead of an int, which will eliminate an unnecessary error path in kcopyd_client_create(). Signed-off-by: Kevin Corry Signed-off-by: Linus Torvalds [PATCH] dm: dm-raid1.c: Enforce max of 9 mirrors dm-raid1.c: Since kcopyd can currently only handle 1 source and up to 8 destinations, enforce a max of 9 mirrors when creating a dm-mirror device. Signed-off-by: Kevin Corry Signed-off-by: Linus Torvalds [PATCH] dm: dm-raid1.c: Use fixed-size arrays dm-raid1.c: Declare fixed-sized (instead of variable-sized) arrays on the stack in recover() and do_write(). Signed-off-by: Kevin Corry Signed-off-by: Linus Torvalds [PATCH] dm: Remove 1024 devices limitation Remove the limitation of 1024 DM devices. Signed-off-by: Kevin Corry Signed-off-by: Linus Torvalds [TCP]: TCP acts like it is always out of memory. Current 2.6.7 tree acts as if it is alway under memory pressure because a recent change did a s/tcp_memory_pressure/tcp_prot.memory_pressure/. The problem is tcp_prot.memory_pressure is a pointer, so it is always non-zero! Rather than using *tcp_prot.memory_pressure, just go back to looking at tcp_memory_pressure. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [ARM] Timer fixes for CLPS711x. [PATCH] EDD: x86-64 build fix On Wed, Jun 30, 2004 at 01:22:21AM -0400, Jeff Garzik wrote: > CC arch/x86_64/kernel/setup.o > arch/x86_64/kernel/setup.c: In function `copy_edd': > arch/x86_64/kernel/setup.c:415: error: `EDD_MBR_SIGNATURE' undeclared=20 > (first use in this function) > arch/x86_64/kernel/setup.c:415: error: (Each undeclared identifier is=20 > reported only once > arch/x86_64/kernel/setup.c:415: error: for each function it appears in.) > arch/x86_64/kernel/setup.c:417: error: `EDD_MBR_SIG_NR' undeclared=20 > (first use in this function) > make[1]: *** [arch/x86_64/kernel/setup.o] Error 1 > make: *** [arch/x86_64/kernel] Error 2 Arrgh. On i386 it's in include/asm-i386/setup.h On x86_64 it belongs in include/asm-x86_64/bootsetup.h. Patch below defines EDD_MBR_SIG_NR and EDD_MBR_SIGNATURE on x86_64. Signed-off-by: Matt_Domsch NTFS: Add a set_page_dirty address space operation for ntfs_m[fs]t_aops. It is simply set to __set_page_dirty_nobuffers() to make sure that running set_page_dirty() on a page containing mft/ntfs records will not affect the dirty state of the page buffers. Signed-off-by: Anton Altaparmakov NTFS: Add fs/ntfs/index.c::__ntfs_index_entry_mark_dirty() which sets all buffers that are inside the ntfs record in the page dirty after which it sets the page dirty. This allows ->writepage to only write the dirty index records rather than having to write all the records in the page. Modify fs/ntfs/index.h::ntfs_index_entry_mark_dirty() to use this rather than __set_page_dirty_nobuffers(). Signed-off-by: Anton Altaparmakov NTFS: Update __ntfs_index_entry_mark_dirty() so it makes sure that the page has buffers. Otherwise we could end up with a dirty page without buffers and our set_page_dirty() would not mark the buffers dirty when they are created and thus they would not be written out and the dirty records would be lost. Signed-off-by: Anton Altaparmakov NTFS: 2.1.15 - Implement fs/ntfs/aops.c::ntfs_write_mst_block() which enables the writing of page cache pages belonging to mst protected attributes like the index allocation attribute in directory indices and other indices like $Quota/$Q, etc. This means that the quota is now marked out of date on all volumes rather than only on ones where the quota defaults entry is in the index root attribute of the $Quota/$Q index. Signed-off-by: Anton Altaparmakov [PATCH] err2-14: skge locking fix It can return with the lock held. Found by the Stanford locking checker. Signed-off-by: Andrew Morton [PATCH] [Bug 2948] New: Atmel wireless driver Oopses [TG3]: Fibre PHY fixes from Sun. - Support HW autoneg on 5704. - On serdes, no MII reg ioctl support. [TG3]: Update driver version and reldate. [PATCH] ppc64: remove RTAS arguments from PACA This patch removes the RTAS arguments structure on ppc64 from the PACA. The args have to be in the RMO, but since we have a global spinlock for RTAS anyway, there's no reason to have a separate copy of the args per-CPU. This patch replaces the PACA field with a single instance in the global rtas structure. The one exception is for the rtas_stop_self() call, which can't take the lock, because it never returns. But it has a fixed set of arguments, so we can use another global instance which is initialized at boot. This lets us remove rtas.h from paca.h, which substantially reduces overall #include hairiness (because paca.h is now, as it wants to be, a nice low-level structure-defining header which relies on very little and can safely be included almost anywhere). Although it does add some noise to the patch, because a bunch of places relied on the indirect inclusion of rtas.h, or even more indirect inclusions (see the hunks applying to eeh.h and current.h!). Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: PACA cleanup Cleanup the PPC64 PACA structure. It was previously a big mess of unecessary fields, overengineered cache layout and uninformative comments. This is essentially a rewrite of include/asm-pp64/paca.h with associated changes elsewhere. The patch: - Removes unused PACA fields - Removes uneeded #includes - Uses gcc attributes instead of explicit padding to get the desired cacheline layout, also rethinks the layout and comments accordingly. - Better comments where asm or firmware dependencies apply non-obvious layout constraints. - Splits up the pointless STAB structure, letting us move its elements independently. - Uses offsetof instead of hardcoded offset in spinlocks. - Eradicates xStudlyCaps identifiers - Replaces PACA guard page with an explicitly defined emergency stack (removing more than NR_CPUS pages from the initialized data segment). Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: janitor log_rtas_error() call arguments This patch from Linas Vepstas (rediffed by me) fixes the confusing argument aliasing of the log_rtas_error() subroutine. This patch makes no functional changes, it just cleans up some strange usage. The rtas_args used to communicate with firmware are always taken from the paca struct, so as to keep the args at a fixed, low-memory location. But the log_rtas_error() routine also took an rtas_args pointer, which it assumed was aliased to the paca struct. This aliasing is both un-neccessary, and confusing; this patch eliminates this confusion. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Janitor rtas_call() return variables Recently I changed the return value of rtas_call() from an unsigned long to an int. That patch missed a few places where we declare a variable to store the result from rtas_call(). This new patch changes those places to use an int variable instead of a long or unsigned long variable. Linas Vepstas pointed this out. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: OCP for MP10x Attached is the latest version of Adrian Cox's OCP patch for MPC107/8240/8245. This unifies some openpic setup code, and ensures that the OCP devices are only added to the bus on chip variants which have them. All interested parties seem happy, and this patch is necessary to provide a unified I2C driver for 85xx and 107/824x. Signed-off-by: Adrian Cox Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: PPC44x defconfig update and fixes Update PPC44x defconfigs and some fixes. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: PPC4xx preempt fix PPC4xx preempt fixes. Based on previous Classic PPC patch. Signed-off-by: Tom Rini Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix dual UICs in 4xx PIC support Fixes a case where we were not correctly acking the base cascade controller on PPC4xx. Patch from Pavel Bartusek Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: preparation for smp support & fix device suspending It fixes levels for calling driver model, puts devices into sleep before powering down (so that emergency parking does not happen), and actually introduces SMP support, but its disabled for now. Plus noone should try to freeze_processes() when thats not implemented, we now BUG()s -- we do not want Heisenbugs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] produce a warning on unchecked inode_setattr use The patch below uses the new-in-gcc-3.4 option to generate a warning on unchecked results of marked functions, and applies this to the inode_setattr function (which based on recent bk commits HAS to be checked for it's return value for correct operation). A warning looks like this: fs/ext2/inode.c:1279: warning: ignoring return value of 'inode_setattr', declared with attribute warn_unused_result Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Bugfix for CLOCK_REALTIME absolute timer As required by the standard, this patch adds to POSIX ABSOLUTE timers the functionality of adjusting the timer when the clock is set so that it still expires at the specified time (provided that time has not passed, in which case the timer expires immeadiatly). The standard is, IMNSOHO, a bit vague on just how repeating timers are to be handled so I made some choices: 1) If an absolute timer is to expire every N intervals, we assume that the expiries should happen at those specified times after clock setting. I.e. we adjust the repeat timer as well as the initial timer. (The other option would be to treat the repeating timers as relative and not to adjust them.) 2) If a clock set moves the the clock prior to the initial expiry time AND that time has already passed and been signaled, the current repeat timer is adjusted, i.e. we DO NOT go back to the initial time and repeat that. (The other option is to treat this case as a new request with the initial timer parameters (which by this time we have lost).) 3) If time is advanced such that it appears that several expiries have been missed, the overrun count will reflect the misses. (The other option is to not reflect this in the overrun.) At the same time, nothing is done to acknowledge, to the user, that we are repeating expiries when the clock is retarded. Signed-off-by: George Anzinger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: define max kernel symbol length and clean up errors in kernel/kallsyms.c CHECK kernel/kallsyms.c kernel/kallsyms.c:136:7: warning: bad constant expression kernel/kallsyms.c:136:7: warning: bad constant expression kernel/kallsyms.c:136:7: warning: bad constant expression kernel/kallsyms.c:143:22: warning: bad constant expression kernel/kallsyms.c:143:22: warning: bad constant expression kernel/kallsyms.c:143:22: warning: bad constant expression Now the cause of sparse warnings is that it does not handle runtime array dimensioning (which I take it is a sparse problem), but in this particular case it _might_ make sense to change the runtime allocation to compile time, as the upper size of the array is known, because the code in kernel/kallsyms.c clearly uses 127 (or 128) as "magic constant" for kernel symbol (array) length, and in the other hand in include/linux/module.h there is: #define MODULE_NAME_LEN (64 - sizeof(unsigned long)) The only concern is that the array become quite big (the original comment of it being "pretty small" no longer applies ...). One way to help that would be to use buffer[] also in place of namebuf[], but that would be little tricky as the format string should be before the symbol name ... Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: fix sparse warnings in kernel/power/* CHECK kernel/power/swsusp.c kernel/power/swsusp.c:320:15: warning: expected lvalue for member dereference kernel/power/swsusp.c:337:15: warning: expected lvalue for member dereference kernel/power/swsusp.c:359:14: warning: expected lvalue for member dereference kernel/power/swsusp.c:925:12: warning: assignment expression in conditional [...] CHECK kernel/power/pmdisk.c kernel/power/pmdisk.c:795:12: warning: assignment expression in conditional Trivial sparse fixes for two files under kernel/power. Patch attached. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: fix sparse in drivers/pnp/pnpbios/* CHECK drivers/pnp/pnpbios/core.c include/linux/pnpbios.h:144:5: warning: undefined preprocessor identifier 'needed' CC drivers/pnp/pnpbios/core.o CHECK drivers/pnp/pnpbios/bioscalls.c include/linux/pnpbios.h:144:5: warning: undefined preprocessor identifier 'needed' drivers/pnp/pnpbios/bioscalls.c:346:5: warning: undefined preprocessor identifier 'needed' drivers/pnp/pnpbios/bioscalls.c:361:5: warning: undefined preprocessor identifier 'needed' drivers/pnp/pnpbios/bioscalls.c:388:5: warning: undefined preprocessor identifier 'needed' drivers/pnp/pnpbios/bioscalls.c:427:5: warning: undefined preprocessor identifier 'needed' drivers/pnp/pnpbios/bioscalls.c:509:5: warning: undefined preprocessor identifier 'needed' CC drivers/pnp/pnpbios/bioscalls.o CHECK drivers/pnp/pnpbios/rsparser.c include/linux/pnpbios.h:144:5: warning: undefined preprocessor identifier 'needed' CC drivers/pnp/pnpbios/rsparser.o CHECK drivers/pnp/pnpbios/proc.c include/linux/pnpbios.h:144:5: warning: undefined preprocessor identifier 'needed' The fix is trivial, sparse wants the preprocessor symbol to be defined before use. There was a similar fix accepted by Linus couple weeks ago. Patch attached. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] convert private ABS() to kernel's abs() Convert private ABS() defines and callers to use abs() from linux/kernel.h. Builds successfully. stv0299, riva, & sstfb modules load. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Rivafb fixes The patch below fixes the following to rivafb: 1 Seems that nVidia hardware has a limit on clipping coordinates that is also dependent on the color depth of the framebuffer. 2.From Pawel Goleniowski : Fix for wrong colors at 16bpp (RGB565). The fix has been submitted several times in lkml and this list but was never applied. 3 Search all I2C/DDC busses for the EDID block instead of just the first bus. 4 Updated request_mem_region/release_mem_region to pci_request_regions/pci_release_regions. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Mode Switch in fbcon_blank() As we've discussed in another thread, below is a diff that will do a set_par() as late as possible when there is KD_TEXT<->KD_GRAPHICS switch. The set_par() will be forced in fbcon_resize() instead. Not sure if this has repercussions with the other drivers, but this patch fixed the X nv driver hanging when switching to the console. (I believe the crash is actually caused by an early set_par() -- while in fbcon_blank. Removing the set_par in fbcon_blank fixed the hang but caused cursor sprite and display corruption). Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Another batch of fbcon fixes - Update display->vrows when fbset changes certain fields in var (such as color depth) but without changing the display resolution. This might produce concommitant changes in other fields such as and especially var->yres_virtual. - Clear the FBINFO_MISC_MODECHANGEUSER flag _before_ issuing a notifier_call_chain(). Clearing it after the notifier_call_chain() will cause fbcon to go into an infinite loop. - Sanitized failure path of set_con2fb_map(). Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pcdp.c needs io.h Include for ioremap() declaration. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] es7000 subarch update for target_cpus() This is ES7000 sub arch update. The tiny patch below fixes a bug that results in boot problem on all ES7000 partitions with numbers higher than 0. Currently, target_cpus() returns incorrect cpumask value since it indexes bits by the logical APIC ID, not by CPU number. The patch affects only ES7000 sub arch. It was tested extensively on the system with multiple partitions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] asiliantfb fix The init function is writing somewhere using a physical address instead of a virtual address. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] 64 bit bug in radix-tree lookup. The radix tree functions __lookup and __lookup_tag uses (1 << shift) in their index calculations. On 64 bit systems the shift can be bigger than 32. The shift of an integer by more than 32 bits evaluates to zero which causes the lookup to fail. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes From: Arnd Bergmann From: Christian Bornträger From: Michael Holzheu From: Martin Schwidefsky s390 core changes: - Fix cpu_idle loop if /proc/sys/kernel/hz_timer is set. - Store correct trap indication on 64 bit for call to do_debugger_trap in the single stepped svc code. - Avoid the use of alloca in the debug feature. - Remove extraneous includes of linux/version.h. - Regenerate default configuration. - Mention eServer z890 in Kconfig help text. - Prevent gcc 3.4 from removing statically defined per cpu variables. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: comon i/o layer From: Utz Bacher From: Cornelia Huck Common i/o layer changes: - Consolidate store channel subsystem characteristics from its three users (css, cmf and qdio) to a single location. - Always use new stipd format and move creation of global path group to channel subsystem init function. Add dummy init_IRQ to setup.c and remove requestirq.c. - Remove bogus CHPID_LONGS define. - Add more magic to catch chpids coming online again without generating machine checks. - Fix check for unsolicited interrupts. Deferred cc=1 indicates a solicited interrupt. - Fix progress indication in qdio summary bytes to avoid loosing interrupts. - Rename console_device to console_devno to avoid naming conflict. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dasd driver changes From: Horst Hummel From: Carsten Otte From: Stefan Weinhuber dasd device driver changes: - Fix calculation of number of idal words needed for a channel program. - Fix race in i/o termination after request timeout. - Fix race in state change interrupt handling. - Fix call to BLKPG ioctl in dasd_destroy_partitions. - Integrate irb into dasd request to avoid kmalloc in the interrupt handler. - Store build clock for error recovery requests. - Remove unused cpu variable from dasd_ext_handler. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: sclp console driver From: Peter Oberparleiter sclp console driver changes: - Correct handling of busy and not operational states. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: network driver changes From: Ursula Braun-Krahl From: Frank Pavlic From: Thomas Spatzier From: Peter Tiedemann s390 network driver changes: - ctc: replace snprintf by strlcpy. - lcs: change info text for lcs cards from "OSA2 card" to "OSA LCS card". - lcs: fix alignment of lcs_cmd structure to get multicast pings working. - lcs: first call in_dev_put then register multicast addresses. - netiucv: remove unused device timer and unused flags field. - netiucv: include interrupt type in pathid mismatch message. - qeth: don't start a new kernel thread for every new ip address. - qeth: fix IP assist command sequence numbers. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: zfcp host adapter From: Heiko Carstens From: Andreas Herrmann From: Maxim Shchetynin zfcp host adapter changes: - Exploit FC transport class and autoselect SCSI_FC_ATTRS for zfcp. - Fix acl download to zfcp controller. - Change message loglevels to make zfcp less noisy. - Don't wait for SBAL to finish for command aborts after a timeout and for logical unit or target resets. - Force reopen of port if link test failed. - Fix race between qdio_shutdown and do_QDIO. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Telephony Driver ISAPNP fix I recently got an ISA Phonejack card and quickly found it wouldn't work with a stock 2.6.7 kernel. So found this bug in the ISAPNP part of the code, throughout the code it use it's own data structure to reference it's base IO address, in the ISAPNP code this was not being populated with any value hence it can't talk to the card and so the driver fails. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: kconfig spelling fixes Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: update config symbols CONFIG_DECSTATION is now CONFIG_MACH_DECSTATION ... Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: MIPS updates - Remove support for NEC Eagle which is a system that was produced in almost zero numbers. - Sort out the MV-64340 code a little more. - Fix computation of interrupts masks for the upper 32 interrupts of the MV-64340. - Gas was producing bad break codes for MIPS32/MIPS64 processors for a while. Add a workaround to the kernel trap handler. - Rewrite RM7000 cache code in a way where it's hopefully easier to read. - Handle 64-bit pointers right for the BCM1250. - Try to share code for GT-64240 and MV-64340. - Fix RM9000 definition of _CACHE_CACHABLE_NONCOHERENT. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: MAINTAINERS updates Update my email address. Add Manish Lachwani as maintainer for the MV-64340 driver which has already been accepted by Jeff Garzik. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: MIPS needs a 32-bit ioaddr_t Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: delete IRIX emul misc minors Remove the last leftovers of the compatibility code for running the IRIX X server. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm86: set IOPL to 3 on pushf The attached patch fixes the pushf under v86 to always set the IOPL field to 3, as the Intel CPUs do. It was in 2.4 for year, but somehow missed 2.6. It comes from here (although now a bit shorter): http://lkml.org/lkml/2003/5/25/81 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remaining sparse warnings in allnoconfig Attached is a smallish patch for couple trivial sparse warnings in allnoconfig build and more importantly an "excuses" text file explaining why the rest have not been fixed. Basically all of them (with the exception of the one in Andrews tree) need some serious re-engineering. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] [err1-10] journal_extend() locking fix From the new Stanford locking checker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] [err1-25] snd_ctl_read() locking fix From the new Stanford locking checker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sonypi driver update (PM and DMI VGN-) This updates the sonypi driver by: * fixing the power management handling, using the new device model PM scheme. * adds "VGN-" as a DMI search pattern for a Sony Vaio laptop. Florian Lohoff reported the power management issue and tested the patch. Many users reported the DMI name issue, including Till Busch who made a patch for dmi_scan.c. Signed-off-by: Stelian Pop Signed-off-by: Linus Torvalds [PATCH] meye driver update (wait_ms -> msleep) This patch, originally from Daniel Drake, replaces the meye driver 'wait_ms()' function with calls to the kernel provided 'msleep()' function. Signed-off-by: Daniel Drake Signed-off-by: Stelian Pop Signed-off-by: Linus Torvalds [PATCH] i386 nx prefetch fix & cleanups - fix possible prefetch-fault loop on NX page, based on suggestions from Jamie Lokier. - clean up nx feature dependencies - simplify detection of NX-violations when the kernel executes code - introduce pte_exec_kern() to simplify the NX logic - split the definitions out of pgtable-[23]level.h into pgtable-[23]level-defs.h, to enable the former to use generic pte functions from pgtable.h. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds [PATCH] PCI: export pci_scan_child_bus for the pci hotplug drivers to use Signed-off-by: Linda Xie lxie@us.ibm.com Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Add some PCI Express constants to pci.h This patch adds some PCI Express register constants to For my device, setting the Max_Read_Request_Size value in the PCI Express device control register makes a huge performance difference. I wanted my driver code that does this to be a little more self-documenting than: pci_read_config_word(mdev->pdev, cap + 8, &val); val = (val & ~(5 << 12)) | (5 << 12); I went a little overboard and added all the basic device register fields. If desired I could go even further overboard and add the link, slot and root registers as well. This patch is based on Matthew Wilcox's patch for pciutils, corrected for some PCI Express spec 1.0a changes. Signed-off-by: Roland Dreier Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: rpaphp null pointer deref This patch fixes a null-pointer dereference when hot-plug operations are performed on a machine that has virtual-io devices in it. Virtual i/o devices to not have pci bridges associated with them. It also corrects an ordering problem during hotplug remove. This patch was previously reviewed/tested by Linda Xie, the current rpaphp maintainer. Signed-off-by: Linas Vepstas Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: RPAPHP structure size/performance Please review and apply the following patch if you find it agreeable. This patch does not make any functional changes, but does improve both performance and memory usage by rearranging structure elements. The need for these changes became appearent during a code review of the disassembly involving this structure. The memory footprint of this structure is made smaller by grouping the byte fields next to each other. The access of the list_head can be simplified by making it the first element of the structure, thus avoiding a needless add-immediate without negatively impacting any of the other accesses. Signed-off-by: Linas Vepstas Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: New PCI vendor/device ID for Radisys ENP-2611 board Included is a patch for linux to add a PCI vendor/device ID for the Radisys ENP-2611 board. The ENP-2611 is a 64bit/66MHz PCI board which hosts an Intel IXP2400 network processor, has three GigE interfaces, runs linux and generally kicks ass. (see http://www.radisys.com/oem_products/ds-page.cfm?productdatasheetsid=1147) Signed-off-by: Greg Kroah-Hartman [PATCH] check attr updates in /proc Any proc entry with default proc_file_inode_operations allow unauthorized attribute updates. This is very dangerous for proc entries that rely solely on file permissions for open/read/write. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] sparse: remaining integer zero / NULL fixes in allmodconfig & vmlinux This fixes the the remaining 0 to NULL things that were found with 'make allmodconfig' and 'make C=1 vmlinux'. [PATCH] fat/inode.c Two years ago, OGAWA Hirofumi removed some ugly code and added a few simple tests to the FAT filesystem code, intended to avoid recognizing non-FAT as FAT (for people who fail to specify rootfstype=, forcing the kernel to guess). That worked fairly well, until this year. I have now seen a thread in Czech and a report from Holland that involved the "FAT: bogus sectors-per-track value" error message. The patch below removes this test again. The advantage is that some real-life FAT filesystems can be mounted again. The disadvantage that more non-FAT fss will be accepted as FAT. Ferry van Steen reports "the patch Andries Brouwer gave me seems to work". Signed-off-by: Andries Brouwer Signed-off-by: Linus Torvalds logo/logo.c needs for NULL It's one of the rare files that has almost no includes what-so-ever, so it actually never got NULL any other way. [PATCH] chown permission check fix for ATTR_GID SuSE discovered this problem with chown and ATTR_GID. Make sure user is authorized to change the group, CAN-2004-0497. [libata] add ->qc_issue hook This hook is used when an ATA controller wishes to use hardware-specific methods of taskfile delivery, rather than the standard method of bitbanging the ATA shadow registers. [libata] add ata_queued_cmd completion hook [PATCH] natsemi 1: switch to netdev_priv() [PATCH] natsemi 2: support packets > 1518 bytes [PATCH] Gigabit Ethernet support for forcedeth - Lots of updates for the gigabit ethernet nic: New ring entry format, support for RGMII phys, new pci ids. - Silence interrupt source 0x01: it's rx error, no need to ask the end user to report it. - add support for vlan packets: The NvRegOffloadConfig register contains the maximum packet size, it was set to 1518 which caused vlan to fail. - fix bit flags for mii access: the wrong bit was polled and the mii write implementation was just broken. - Do not stop the rx/tx engines around mii accesses. - reset and reinit the phy during probe. [libata sata_sil] add drive to mod15write quirk list [PATCH] ntfs build fix gcc-2.95 chokes on this. Cc: Anton Altaparmakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove deprecated firmware API From: Linas Vepstas This patch eliminates the usage of the deprecated ibm,fw-phb-id token for idnetifying PCI bus heads in favor of the documented, offically supported mechanism for obtaining this info. Please note that some versions of firmware may return incorrect values for the ibm,fw-phb-id token. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set ppc_md.log_error We have a platform-specific function pointer on ppc64 for a function to log errors detected by the platform, but it was never getting set. This patch sets it on pSeries (the only ppc64 platform which has an error logging function). Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Redwood[56] support for smc91x Ethernet driver This patch enables the Redwood 5 and Redwood 6 platforms to use the smc91x ethernet driver. Signed-off-by: Dale Farnsworth Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ia32 NUMA: physnode_map entries can be negative Based on work from Bill Irwin physnode_map[] needs to be signed so that pfn_to_nid() can return negative values used to detect invalid pfn's. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix minor quota race It fixes a possible race between quotaoff and prune_icache. The race could lead to some forgotten pointers to quotas in inodes leading later to BUG when invalidating quota structures. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 math emu build fix rmk's patch found a defined-but-unimplemented symbol Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove unused variable in esp.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove unused variable in mxser.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: optimization for accel_putcs() I did some simple benchmarking (time cat linux-2.6.7-mm5/MAINTAINERS) between 2.4 and 2.6 and I am not satisfied with what I see (It's claimed that fbdev-2.6 is faster than 2.4). The reason for the claim: 2.4 putcs - draw small amounts of data a lot of times 2.6 putcs - draw larger amounts of data a fewer times The way characters are drawn in 2.6 is optimal for accelerated drivers but should also give a speed boost for drivers that rely on software drawing. However the penaly incurred when preparing a large bitmap from a number of small bitmaps is currently very high. This is because of the following reasons: 1 fb_move_buf_{aligned|unaligned} uses pixmap->{out|in}buf. This is very expensive since outbuf and inbuf methods process only a byte or 2 of data at a time. 2 fb_sys_outbuf (the default method for pixmap->outbuf) uses memcpy(). Not a good choice if moving only a few bytes. 3 fb_move_buf_unaligned (used for fonts such as 12x22) also involves a lot of bit operations + a lot of calls to outbuf/inbuf which proportionately increases the penaly. So, I thought of separating fb_move_buf_* to fb_iomove_buf_* and fb_sysmove_buf_*. fb_iomove_buf_* - used if drivers specified outbuf and inbuf methods fb_sysmove_buf_* - used if drivers have no outbuf or inbuf methods *Most, if not all drivers fall in the second category. Below is a table that show differences between 2.4, 2.6 and 2.6 + abovementioned changes. To reduce the effect of panning and fillrect/copyarea, the scrollmode is forced to redraw. ================================================================= Test Hardware: P4 2G nVidia GeForce2 MX 64 Scrollmode: redraw time cat linux-2.6.7-mm5/MAINTAINERS 1024x768-8 1024x768-16 1024x768-32 ================================================================= 8x16 noaccel (2.4) real 0m5.490s real 0m8.535s real 0m15.388s user 0m0.001s user 0m0.000s user 0m0.001s sys 0m5.487s sys 0m8.535s sys 0m15.386s 8x16 noaccel (2.6) real 0m5.166s real 0m7.195s real 0m12.177s user 0m0.001s user 0m0.000s user 0m0.000s sys 0m5.164s sys 0m7.192s sys 0m12.176s 8x16 noaccel+patch (2.6) real 0m3.474s real 0m5.496s real 0m10.460s user 0m0.001s user 0m0.001s user 0m0.001s sys 0m5.492s sys 0m5.492s sys 0m10.454s ================================================================= 8x16 accel (2.4) real 0m4.368s real 0m9.420s real 0m22.415s user 0m0.001s user 0m0.001s user 0m0.001s sys 0m4.019s sys 0m9.384s sys 0m22.312s 8x16 accel (2.6) real 0m4.296s real 0m4.339s real 0m4.391s user 0m0.001s user 0m0.001s user 0m0.000s sys 0m4.280s sys 0m4.336s sys 0m4.389s 8x16 accel+patch (2.6) real 0m2.536s real 0m2.649s real 0m2.799s user 0m0.000s user 0m0.000s user 0m0.001s sys 0m2.536s sys 0m2.645s sys 0m2.798s ================================================================= 1024x768-8 1024x768-16 1024x768-32 ================================================================= 12x22 noaccel (2.4) real 0m7.883s real 0m12.175s real 0m21.134s user 0m0.000s user 0m0.000s user 0m0.001s sys 0m7.882s sys 0m12.174s sys 0m21.129s 12x22 noaccel (2.6) real 0m10.651s real 0m13.550s real 0m21.009s user 0m0.001s user 0m0.001s user 0m0.000s sys 0m10.617s sys 0m13.545s sys 0m21.008s 12x22 noaccel+patch (2.6) real 0m4.794s real 0m7.718s real 0m15.173s user 0m0.002s user 0m0.001s user 0m0.000s sys 0m4.792s sys 0m7.715s sys 0m15.170s ================================================================= 12x22 accel (2.4) real 0m3.971s real 0m9.030s real 0m21.711s user 0m0.000s user 0m0.000s user 0m0.000s sys 0m3.950s sys 0m8.983s sys 0m21.602s 12x22 accel (2.6) real 0m9.392s real 0m9.486s real 0m9.508s user 0m0.000s user 0m0.000s user 0m0.001s sys 0m9.392s sys 0m9.484s sys 0m9.484s 12x22 accel+patch (2.6) real 0m3.570s real 0m3.603s real 0m3.848s user 0m0.001s user 0m0.000s user 0m0.000s sys 0m3.567s sys 0m3.600s sys 0m3.844s ================================================================= Summary: 1 2.6 unaccelerated is a bit faster than 2.4 when handling 8x16 fonts, with a higher speed differential at high color depths. 2 2.4 unaccelerated is a bit faster than 2.6 when handling 12x22 fonts, with a smaller speed difference at high color depths (2.6 is actually a bit faster than 2.4 at 32bpp). 3 2.4 rivafb accelerated suffers at high color depths, even becoming slower than unaccelerated, possibly because of the 'draw few bytes many times' method. 4 2.6 rivafb accelerated has similar performance at any color depth, possibly because of 'draw lots of bytes a fewer times' method. 5 With the changes, there is a speed gain of ~1.7 seconds and ~5.7 seconds with 8x16 and 12x22 fonts respectively indepependent of the color depth or acceleration used. The speed gain is constant but significant. Below is a patch against 2.6.7-mm5. The effects will be very noticeable with drivers that uses SCROLL_REDRAW, but one should still see some speed gain even if SCROLL_YPAN/YWRAP is used. Separated fb_sys_move_* into fb_iosys_move_* and fb_sysmove_* to reduce penalty when constructing fb_image->data from character maps. In my testcase (1024x768 SCROLL_REDRAW), I get a ~1.7 second advantage with 'time cat MAINTAINERS' using 8x16 fonts and ~5.7 seconds with 12x22 fonts. The speed gain is independent of acceleration or color depth. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err1-40: sysvfs locking fix Found by the new Stanford locking checker. Minimal fix for a deadlock in sysvfs: get_branch() can take read_lock(&pointers_lock), but one caller already has a write_lock. Perhaps some of the "oh we raced, drop everything and try again" logic in there can go away now, but this is enugh to fix the obvious deadlock. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err1-2: sscape locking fix Fix deadlock identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err1-14: sb_audio locking fix Lamely fix a straightforward deadlock in sb_audio.c. Founf by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err2-1 dvb_register_i2c_device locking fix Fix deadlock identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err2-25: dvb_register_i2c_bus() locking fix Found by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err2-27: i2o_claim_device() locking fix Found by the Stanford locking checker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err2-29: ufs_new_fragments() locking fix Found by the Stanford locking checker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dma_get_required_mask() build fix This new function fails to build on sparc64 due to nasty include dependencies. Fix that by uninlining it - it was too big for inlining anyway. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] telephony: support devfs Add devfs support to telephony devices. Only tested with a single telephony device. Devices name phone/. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s/2.5/2.6/ in MAINTAINERS s/2.5/2.6/ in MAINTAINERS Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] apm.c warning fix arch/i386/kernel/apm.c: In function `suspend': arch/i386/kernel/apm.c:1221: warning: implicit declaration of function `save_processor_state' arch/i386/kernel/apm.c:1223: warning: implicit declaration of function `restore_processor_state' Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [libata] create, and use, ->irq_clear hook This is more conservative in general, and so applies to multiple controllers. Specifically it attempts to address irq-related issues on the Intel ICH5/6 hardware. On Intel ICH5/6, the BMDMA 'interrupt' status bit will be set even on non-DMA commands, which software (and I) did not expect. This change clears pending interrupts once upon initialization, and then each time ata_irq_on() is called. [ata] add ata_ok() inlined helper, and ATA_{DRDY,DF} bit to linux/ata.h [libata] split ATA_QCFLAG_SG into ATA_QCFLAG_{SG,SINGLE} In part of the effort to remove SCSI specifics from the libata internals, remove references to cmd->use_sg. cmd->use_sg becomes ATA_QCFLAG_SG, and !cmd->use_sg becomes ATA_QCFLAG_SINGLE. Convenience constant ATA_QCFLAG_DMAMAP is created when the programmer wishes to refer collectively to ATA_QCFLAG_{SG,SINGLE}. [libata] create, and use aga_sg_init[_one] helpers Move more SCSI-specific code out of libata core. [libata sata_promise] update driver to use new ->qc_issue hook The ->qc_issue hook was designed to allow drivers to override some or all of the actual delivery of the taskfile to hardware. In the case of Promise, the hardware has its own packet format when doing read/write DMA commands, but uses traditional ATA taskfile registers for other types of commands. [PATCH] remaining cpumask const qualifiers The remainder of the const qualifiers on cpumask ops. My cpumask overhaul missed specifying the const qualifiers in cpumask.h. Subsequently, Linus has added some. The following should provide the remainder of them. It also fixes one src vs dst variable misnaming. Using crosstool on 2.6.7-mm5, I have built the following arch's with the following change included: alpha ia64 powerpc-405 powerpc-750 sparc sparc64 x86_64 Signed-off-by: Paul Jackson Signed-off-by: Linus Torvalds [Bluetooth] Change inquiry_cache to hci_inquiry_cache This patch changes the inquiry_* functions to be either local to hci_core.c or change name from inquiry_cache_lookup to hci_inquiry_cache_lookup to try and reduce the potential for namespace conflicts. There could be USB or SCSI or other code that uses an inquiry_cache. Signed-off-by: Stephen Hemminger Signed-off-by: Marcel Holtmann [Bluetooth] Fix deadlock in the 3Com driver This patch fixes the deadlock problem when bt3c_interrupt() is calling bt3c_write_wakeup() with info->lock held. Signed-off-by: Marcel Holtmann [Bluetooth] Fix kobject oops on firmware loading Allocate the memory for .kobj.k_name and make use of kobject_init() for the fake device that is needed for firmware loading. Signed-off-by: Marcel Holtmann [Bluetooth] Add HID protocol support This patch adds support for the Bluetooth HID protocol to the Bluetooth subsystem. Currently only the boot mode is supported. Signed-off-by: Marcel Holtmann [BK] Selectively ignore drivers/video/logo/*.c These are generated from drivers/video/logo/*.ppm. For non-BK users, this is the same as .cvsignore. [BK] Ignore build-generated files Module.symvers, drivers/net/wan/wanxlfw.inc For non-BK users, this is similar to .cvsignore. [Bluetooth] Allocate protocol number for AVDTP support This patch allocates the next free protocol number for the upcoming AVDTP support. Signed-off-by: Marcel Holtmann [PATCH] ppc32: compilation failure on ppc32 This fixes compilation on ppc32. The power/smp.o file should be linked only if both SMP and SWSUSPEND are configured in. It used to do it even without SWSUSPEND. [PATCH] swap_unplug_io_fn() nommu update include/linux/swap.h changed the definition for swap_unplug_io_fn() awhile back, but mm/nommu.c was never updated to reflect the new definition. As such, mm/nommu.c presently fails to compile. This fixes it. Signed-off-by: Paul Mundt Signed-off-by: Linus Torvalds typo.. typo in radeon_state.c whitespace cleanup in radeon.h [ARM PATCH] 1950/1: SIZEOF_MACHINE_DESC requires asm/constants.h Patch from Nicolas Pitre The change as seen here: http://linux.bkbits.net:8080/linux-2.5/diffs/arch/arm/kernel/head.S@1.19?nav=index.html|ChangeSet@-4d|cset@1.1769.3.12 has this note: "No need to include asm/mach/arch.h" But it now requires asm/constants.h otherwise SIZEOF_MACHINE_DESC is not defined. Why compilation succeeds anyways still mystify me. [ARM PATCH] 1953/1: Omit id for platform devices where only one can possibly exist. Patch from Ian Campbell Now that the BK tree allows platform devices to specify an id of -1 to get rid of the numbered suffix. Following discussion on the l-a-k mailing list here is patch to do this for the pxafb, pxa2xx-udc and pxamci generic PXA2xx platform devices and the platform devices on the Lubbock. [ARM PATCH] 1938/1: Support for Collie device Patch from John Lenz Cleanup and forward port of patch 1850. Add machine support for the Sharp Zaurus SL5500 PDA. Does not include support for the collie serial port or the sa1100fb_lcd_power function. [PATCH] v850: Get rid of lvalue-casts in memset.c to make gcc happy Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] v850: Use __volatile__ qualifier on test_bit asm statements Otherwise recent versions of gcc seem to optimize away some necessary tests. Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] v850: Return value from no_action in irq.c Signed-off-by: Miles Bader Signed-off-by: Linus Torvalds [PATCH] ppc64: EEH fixes for POWER5 machines (1/2) From: Linas Vepstas This patch allows ppc64 to boot on Power5 machines. The new Power5 PCI bridge design requires EEH (enhanced PCI error handling) to be enabled for all PCI devices, not just some PCI devices. In addition, this patch moves the check for PCI to ISA bridges out of perf critical code, and into initialization code. This also avoids race conditions where the device type might not have been set. Also, some whitespace fixes, and some error-message-printing beautification. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: EEH fixes for POWER5 machines (2/2) From: Linas Vepstas This patch fixes the usage of the slot-error-detail log buffer for the Power5 architecture. The size of the error buffer is variable, and the correct size to use should have been obtained from firmware. Failure to use the correct buffer sizes will result in hard-to-debug system lockups deep in firmware. This patch is based on an earlier patch from Ben Herrenschmidt, which essentially did the same thing. This patch also tweaks some of the subroutine documentation. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: RTAS error log locking fix From: Linas Vepstas When an RTAS call returns the "hardware error" code, we need to do another RTAS call to find out what went wrong. Previously we weren't doing that inside the lock that serializes RTAS calls, and thus another cpu could get in and do another RTAS call in the meantime. This patch fixes it. This patch also includes some minor whitespace fixes. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: gcc 3.5 fixes gcc 3.5 ICEd on the ppc64 version of __ptep_set_access_flags, but it does look like we want to use *ptep here. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: gcc 3.5 fixes #2 Here are the ppc64 specific gcc 3.5 fixes. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: SPLPAR spinlock optimisation Currently our spinlocks can call into the hypervisor on dedicated processor machines. Doing this may slow our locks down, so avoid it where possible. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: biarch gcc support A native powerpc64-linux gcc can not compile a ppc32 kernel properly. This patch fixes it. It was copied from ppc64. The change to vmlinux.lds.S fixes this error: ld: warning: powerpc:common architecture of input file `init/built-in.o' is incompatible with powerpc:common64 output Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove MachineCheck_Pseries rmk added a check to vmlinux for undefined symbols in -mm kernels. ppc64 fails due to trying to export an unimplemented symbol from assembly code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] port reboot workarounds to new DMI probing This patch moves reboot related workarounds out of dmi_scan.c Please consider applying. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix sparse warnings in fs/udf/* CHECK fs/udf/dir.c fs/udf/dir.c:240:13: warning: expected lvalue for member dereference [...] CHECK fs/udf/namei.c fs/udf/namei.c:872:6: warning: expected lvalue for member dereference fs/udf/namei.c:916:6: warning: expected lvalue for member dereference fs/udf/namei.c:1189:14: warning: expected lvalue for member dereference fs/udf/namei.c:1234:7: warning: expected lvalue for member dereference Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix up physnode_map At the moment, we initialise physnode_map from the various BIOS tables, which can create problems, as holes inside an node return 1 for pfn_valid, and yet pfn_to_nid is not correct for them. I'd hacked around this in my tree by defaulting the mapping to 0, not -1, but that's not the correct fix ... this is. I consolidated all the code back into 1 place, and use node_start_pfn[] and node_end_pfn[] to walk over it instead - that means it matches up perfectly with lmem_map's as we're using the same data. It also cleans up a lot of the code. Tested on both NUMA-Q and x440 ... and it only affects i386 NUMA boxen. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] wavefront_fx.c build fix With gcc from CVS: sound/isa/wavefront/wavefront_fx.c:697: error: static declaration of 'page_zero' follows non-static declaration include/sound/yss225.h:4: error: previous declaration of 'page_zero' was here Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MTRR __initdata fix smp_changes_mask is used by generic_set_all() which isn't __init Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] selinux build fix With gcc-3.5 from CVS: security/selinux/avc.c:76: error: static declaration of 'avc_cache_stats' follows non-static declaration security/selinux/include/avc.h:107: error: previous declaration of 'avc_cache_stats' was here Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] selinux space saving Move inline avc_cache_stats helper functions alongside the statically declared avc_cache_stats array. Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err1-7, err1-8: double locking fix for radeonfb radeonfb: the Stanford lock checker found us double-locking rinfo->reg_lock via sequences like OUTPLL(foo, INPLL(bar) | baz ), as both OUTPLL and INPLL grab the register lock. This should fix the problem. Signed-off-by: David Eger Signed-off-by: Linus Torvalds [PATCH] Fix ia64 UPF_RESOURCES pcdp.c 2.6.7-mm5 build It looks like someone removed UPF_RESOURCES in remove-upf_resources.patch in parallel with someone adding drivers/firmware/pcdp.c that references UPF_RESOURCES. In any event, trying to build a defconfig ia64 2.6.7-mm5 (which includes CONFIG_SERIAL_8250=y in the .config) fails with: drivers/firmware/pcdp.c: In function `setup_serial_console': drivers/firmware/pcdp.c:100: error: `UPF_RESOURCES' undeclared (first use in this function) Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32 cpumask bitop build fix With the following changes, I was able to compile the "sparc" (32 bit) arch, using defconfig and crosstool. There were still plenty of warnings, but nothing else relating to bitops or cpumasks that I noticed. This is working with 2.6.7-mm5. I have no way to boot test this, but these changes seem obvious enough that I'd recommend including them. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] force O_LARGEFILE in sys_swapon() and sys_swapoff() For 32-bit, one quickly discovers that swapon() is not given an fd already opened with O_LARGEFILE to act upon and the forcing of O_LARGEFILE for 64-bit is irrelevant, as the system call's argument is a path. So this patch manually forces it for swapon() and swapoff(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc 3.5 fixes gcc 3.5 is warning about static vs non static function declarations. The following patch removes function prototypes in .h files where possible and changes prototypes to be static elsewhere. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc 3.5 fixes #2 gcc 3.5 is warning about unused static variables, add __attribute_unused__ to the 2 places to silence it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] __bdevname leak fix The __bdevname library function is leaking module references due to __bdevname ->get_gendisk ->kobj_lookup ->ata_probe ->get_disk ->try_module_get What we're trying to do in there is too ambitious. Change it to just print the major and minor. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] spurious remap_file_pages() -EINVAL As ->vm_private_data is used as a cursor for swapout of VM_NONLINEAR vmas, the check for NULL ->vm_private_data or VM_RESERVED is too strict, and should allow VM_NONLINEAR vmas with non-NULL ->vm_private_data. This fixes an issue on 2.6.7-mm5 where system calls to remap_file_pages() spuriously failed while under memory pressure. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove allowdma0 documentation allowdma0 is gone in 2.6, the patch below removes the mentionings of this option in the documentation. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kyrofb warning fix drivers/video/kyro/fbdev.c: In function `kyrofb_probe': drivers/video/kyro/fbdev.c:736: warning: passing arg 1 of `memset' makes pointer from integer without a cast Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PCMCIA] check for proper registration with device core Patch from Dominik Brodowski Fail if registration of socket with driver core failed. This is necessary so that socket-related sysfs entries will appear always if a socket thread is up and running. [PKT_SCHED]: Pass NET_XMIT_* status properly back through classifiers. [PKT_SCHED]: Rip out requeue stat addition, user ABI breaker. [IPV4]: Calculate default broadcast even when using SIOCSIGNETMASK. While getting hands-on with netkit (www.netkit.org), a networking simulation environment based on UML, it struck me that ifconfig wasn't capable of calculating the proper broadcast address for a subnetted interface. Some browsing through newsgroups and on the Debian package site (nettools), showed that this leads to misconfigured interfaces and a couple of bugreports on ifconfig. Digging a bit deeper revealed that it actually is an issue with SIOIFNETMASK. Once you bring up an interface with SIOIFADDR, a classfull netmask and broadcast address is set (if applicable for the type of interface), in order to get a properly configured interface. But if you subnet the network using SIOIFNETMASK no proper broadcast address is set. So you always have to calculate it yourself, obviously leading to configuration errors. This patch takes care of this. First of all it doesn't change existing functionality, eg. a command like 'ifconfig eth0 192.168.1.1 netmask 255.255.255.240 broadcast 192.168.1.0' still works. But if you omit the broadcast address, a proper 'all ones' broadcast address for the subnet is set. 'ifconfig eth0 192.168.1.1 netmask 255.255.255.240' gives you 'eth0 inet addr:192.168.1.1 Bcast:192.168.1.15 Mask:255.255.255.240' and this should solve some real life problems. Signed-off-by: Jaap Keuter Signed-off-by: David S. Miller [NETLINK]: Check connect address. [NETLINK]: Return err in netlink_connect. This patch makes netlink_connect() return the value of err instead of 0. It doesn't actually make any difference since the current implementation of netlink_autobind() never fails. But since we went to all this trouble to check the return status of autobind, might as well return the correct value :) Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Allow large MTU on dummy net device. It is useful for testing to allow larger MTU value to be set on the dummy network device. The current code limits it to valid Ether mtu's. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [TG3]: Delay both before and after PCI cfg space readback after reset. [TG3]: Bump driver version and reldate. [ESP4]: Merge NAT-T code in esp_output(). [ROSE]: rose_route locking fix Fix deadlock in rose_del_loopback_node(). Found by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [AX25]: ax25_ds_idletimer_expiry() locking fix. Fix deadlock identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [LAPB]: lapb_unregister() locking fix. Fix deadlock identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [AX25]: ax25_rt_add() locking fix. Fix deadlock identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [AH4]: Harmonization of output function. This is another step towards the union of the tunnel mode encapsulation between transforms. As there are significant differences between the tunnel encapsulation of IPv4 and IPv6, I'll be dealing with IPv4 only for now. This particular patch rearranges the code in ah_output to isolate the tunnel mode encapsulation. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6] Bring lo up before setting other interface up. IPv6 was not configured appropriately without lo. Noticed by / tested by Russell King . Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [SPARC64]: Kill silo_args bogus .globl [VLAN]: Do not access released memory. [IPV6]: Fix flags for ndisc dst. Because RTF_LOCAL is for local unicast address, it was wrong to set RTF_LOCAL to ndisc dst. This patch also adds some comment on other fields. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [TCP]: Inline message. D: [TCP] Diet using unknown [NET]: Save space for dst underflow message. Save space for 'dst underflow' message. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [XFRM]: Convert XFRM_MSG_* macros to an enum. This way we will not forget to update XFRM_MSG_MAX in the future. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Do not embed spinlock in tc_stats structure. This makes it not get sized/copied around to/from userspace correctly. The real crux of the problem comes from the rtnetlink attribute copying line which read: RTA_PUT(skb, TCA_STATS, (char*)&st->lock - (char*)st, st); which is not necessarily sizeof(struct tc_stats) due to alignment issues. [NETFILTER]: Fix initializer of ip6table.c:initial_table Just because gcc accepts [index] bar as [index] = bar is no reason to make use of that gross construct. Also fully C99ify [ARM] Use platform_get_resource/platform_get_irq in sa1111.c JFS: Updated field isn't always written to disk during truncate There is a possibility that a change to header.next is not logged or written to disk if it is the only change to an xtree leaf page. Signed-off-by: Dave Kleikamp [ARM] Usual mach-types update. [ARM PATCH] 1954/2: Make pxa platform device names more sensible Patch from Ian Campbell Update 1954/1 to use pxa2xx- as the platform device prefix instead of pxa2xx_. This changes pxamci to pxa2xx-mci, pxa2xx_udc to pxa2xx-udc and pxafb to pxa2xx-fb. pxa2xx-uart doesn't need changing. [PATCH] ia64: Rename local move_irq to sn_move_irq Rename SN local function move_irq to sn_move_irq to remove conflict with global move_irq. Needed since ashok.raj moved move_irq() from iosapic.c to irq.c. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ia64: IA-32 sigaltstack bug fix More code needs to be guarded by if (uss32) { ... }. Without this patch, if (buf32..) may be checking uninitialized data and may result in spurious ENOMEMs. Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: David Mosberger [PCMCIA] core socket sysfs support, export card type Patch from Dominik Brodowski Add a first socket-related sysfs entry; and to keep things ordered, do so in a new file drivers/pcmcia/socket_sysfs.c. To keep things easy, all files will be present all the time, even if no card is in the socket at a specific moment -- however, accessing the file will result in -ENODEV then, so that # cat /sys/class/pcmcia_socket/pcmcia_socket1/card_type will cause an error message like "cat: card_type: No such device" which is quite self-explanatory. The attribute "card_type" will return either "16-bit" or "32-bit", depending on whether the PCCard is a 16-bit PCMCIA card or a 32-bit CardBus card. The result "invalid" should not happen, and if it happens, something strange is going on. [PCMCIA] card voltage Patch from Dominik Brodowski Add an attribute "card_voltage" which returns the card's voltage requirements: "5.0V", "3.3V" or "X.XV". [PCMCIA] card vpp / vcc Patch from Dominik Brodowski Add attributes "card_vpp" and "card_vcc" which return these voltages, like "3.3V" [PCMCIA] card insert / eject Patch from Dominik Brodowski Add two further attributes, "card_insert" and "card_eject". Reading these files will fail; but writing _anything_ non-empty to these files will execute an user insert/ejection request -- equivalent to "cardctl insert", "cardctl eject". To ensure proper error values to userspace, transform the return values from CS_ error codes to -E error codes. [NETFILTER]: ip6t_LOG and packets with hop-by-hop options. Packet with IPPROTO_HOPOPTS extended header isn't logged properly by ip6t_LOG.c. It only prints PROTO=0 and nothing more, because IPPROTO_HOPOPTS=0 and in this file 0 is used to indicate last header. This patch fix it by using IPPROTO_NONE to indicate last header. Signed-off-by: Marcel Sebek Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PKT_SCHED]: Update to network emulation QOS scheduler. This patch updates the network emulation packet scheduler. * name changed from delay to netem since it does more than just delay * Catalin's merged code to do packet reordering * uses a socket queue's directly rather than layering on qdisc(fifo) because this is used in performance tests. * adds placeholder in API for future enhancements (rate and duplicate). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [IPCOMP]: Exclude IPCOMP header from props.header_len This is another patch on the way towards a unified XFRM tunnel encapsulation function. This patch changes the value of props.header_len for IPCOMP to exclude the IPCOMP header. The reason is that the IPCOMP header is added only if the packet is compressible. That is, if the size of the compressed payload plus the size of the IPCOMP header is less than that of the original payload. This means that the IPCOMP encapsulation does not impose any overhead at all as far as the MTU is concerned. The current code incorrectly reduces the MTU by the size of the IPCOMP header. As a side-effect, this means that we don't have to move the IP header around when IPCOMP is used. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Fix some missing qdisc_copy_stats() conversions. [PKT_SCHED]: Two small netem fixes. - rtnetlink.h needs including - optimize loss test so that net_random() call is not done when no-loss is indicated Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] ia64: Correct invalid unwind data ASM_UNW_PRLG_GRSAVE(n) must match the number of input registers in the following alloc statement. Otherwise you get invalid backtraces :( Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PKT_SCHED]: Another missed qdisc_copy_stats() conversion. [PKT_SCHED]: New version of u32 classifier hashing workaround. This version does not change user visible structures. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [PKT_SCHED]: Kill CONFIG_CLS_U32_PERF2 cruft code. [PKT_SCHED]: Kill fix_u32_bug ifdef tests in cls_u32.c [PATCH] prism54 freq to channel incorrect for 5GHz 2004-07-06 Margit Schubert-While * The frequency to channel conversion is wrong for the 5GHz band * Although the (known) devices don't/can't use it, they do report it. (iwlist ethX freq) [IPV4]: Set UDP accept back to sock_no_accept. Setting it to inet_accept causes UDP accept attempts to OOPS. In particular, accept01 from LTP tries this. Signed-off-by: David S. Miller [PATCH] s390: dasd driver changes From: Horst Hummel dasd device driver changes: - Set and check the retry counter in start_IO for all requests. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer From: Arnd Bergmann Common i/o layer changes: - Reorder checking and setting of the ccw device id. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: ctc driver changes From: Peter Tiedemann ctc driver changes: - Make use of the debug feature to ease debugging. - ctctty: use dev_alloc_name to allocate a network device name. - ctctty: avoid deadlock of ctc_tty_close vs ctc_tty_flush_buffer. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: cpu-idle notifier This patch introduces a notifier chain for cpu idle. There are two events CPU_IDLE and CPU_NOT_IDLE that are called just before the cpu goes to sleep and right after the cpu woke up again. The notifier is used to simplify the no-hz-timer-in-idle feature and the virtual cpu timers. In addition the virtual cpu timer functions have been moved to arch/s390/kernel/vtime.c, which gives a nice separation between the timer functions related to real time and the timer functions related to virtual cpu time. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: cpu hotplug support From: Ursula Braun-Krahl From: Heiko Carstens From: Gerald Schaefer From: Martin Schwidefsky Add s390 architecture support for cpu hotplug. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon mode switching fix Ugly workaround. When switching from KD_GRAPHICS to KD_TEXT, the event is captured at fbcon_blank() allowing fbcon to reinitialize the hardware. However, some hardware requires the reinitialization to be done immediately, others require it to be done later. Others may need it to be done immediately and later, this is the worst case. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: refinements for fbcon 1. From Petr Vandrovec . Begin quote yesterday I finally found why 2.6.x has problems with taking over vgacon. Problem is that take_over_console does: if (IS_VISIBLE) save_screen(i); ... visual_init(i, 0); ... so code nicely saves screen contents, and calls visual_init, which calls fbcon's init, which in turn can issue vc_resize. And this vc_resize will trigger read from vc->vc_origin. But vc_origin still points to videomemory, not to the buffer where save_screen() copied its data. End quote So updating vc->vc_origin to point to screenbuf after the previous console deinitializes allows fbcon to correctly update the screen from the screen buffer. This change makes the clearing of vram (using fillrect) unnecessary. 2. If FBINFO_MISC_MODESWITCH flag is set in info, do the set_par() in fbcon_switch() instead of piggy-backing the set_par() on fbcon_resize(). This preserves the current var, skipping the unnecessary fb_find_mode() step. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: new scrolling mode: YPAN + REDRAW Added a new scrolling mode (SCROLL_PAN_REDRAW) to fbcon that should greatly benefit unaccelerated drivers such as VESA fbdev. An increase of 3-10 times in scrolling speed can be expected. Currently, fbcon has 4 different scrolling methods (1-4). Potentially, we can have 6. This patch implements SCROLL_PAN_REDRAW (5). SCROLL_WRAP_REDRAW (6) is still unimplemented. Scroll Mode Operation YPan YWrap +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. SCROLL_ACCEL copyarea No No 2. SCROLL_REDRAW imageblit No No 3. SCROLL_PAN copyarea Yes No 4. SCROLL_WRAP copyarea No Yes 5. SCROLL_PAN_REDRAW imageblit Yes No 6. SCROLL_WRAP_REDRAW imageblit No Yes +++++++++++++++++++++++++++++++++++++++++++++++++++++ Note 1: I've changed the nomenclature to increase clarity: SCROLL_ACCEL = SCROLL_MOVE SCROLL_REDRAW = SCROLL_REDRAW SCROLL_PAN = SCROLL_PAN_MOVE SCROLL_WRAP = SCROLL_WRAP_MOVE To demonstrate the effect of each of the scrolling methods on an unaccelerated PCI/AGP-based driver (vesafb), I used a simple benchmark (time cat linux/MAINTAINERS - a 50K text file). The framebuffer is set at: 1024x768-8bpp, 8x16 font, yres_virtual = 2*yres 1. SCROLL_MOVE: real 5m50.277s user 0m0.001s sys 5m50.227s Almost 6 minutes for a 50K text file. Using soft copyarea on a PCI-based card is just too slow (because copyarea has to read from the framebuffer memory). 2. SCROLL_PAN_MOVE scrollmode: SCROLL_PAN real 0m8.592s user 0m0.000s sys 0m8.586s Using ypan with copyarea dramatically improves the scrolling. However, the scrolling action is jerky (fast during the panning stages, slows down during the copyarea stages). 3. SCROLL_REDRAW (this is the default scrolling mode) real 0m3.189s user 0m0.000s sys 0m3.170s Simply eliminating the copyarea, even without ypanning, makes it faster than SCROLL_PAN_MOvE. Plus, the scrolling action is smoother. So, if we combine YPanning with imageblit (PAN_REDRAW), we get this: 4. SCROLL_PAN_REDRAW real 0m0.520s user 0m0.000s sys 0m0.518s That's almost 6x faster than SCROLL_REDRAW. Increasing the amount of video RAM still increases the speed, but not very dramatically. Higher than 16 MB, the increase is negligible. Using an accelerated driver, we see almost the same effect but not as dramatically: 1. SCROLL_MOVE - accel real 0m3.112s user 0m0.000s sys 0m3.112s 2. SCROLL_REDRAW - accel real 0m2.604s user 0m0.000s sys 0m2.603s Redraw is still faster than move, but not much. 3. SCROLL_PAN_MOVE - accel real 0m0.203s user 0m0.000s sys 0m0.202s 4. SCROLL_PAN_REDRAW - accel real 0m0.326s user 0m0.002s sys 0m0.323s This is one exception. If panning is enabled, move is actually faster than redraw. As to why, I don't know. So based on the above, fbcon will choose the scrolling method based on the following preference: Ypan/Ywrap > accel imageblit > accel copyarea > soft imageblit > (soft copyarea) Note 2: Exception: accel copyarea > accel imageblit if Pan/Wrap is enabled. Note 3: soft copyarea will be avoided by fbcon as much as possible unless there is a specific override, ie., FBINFO_READS_FAST flag is set. If this flag is set, fbcon will prefer copyarea over imageblit, accel or soft. As a final note, in order for fbcon to use the best scrolling method, the low-level drivers must provide the correct hinting by setting the FBINFO_HWACCEL_* flags. To vesafb users: boot vesafb like this for fastest scrolling action: video=vesafb:ypan,vram:16 Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: set capabilities flag for vesafb and vga16fb This patch sets the correct capabilities flag for vesafb and vga16fb to provide fbcon with the correct hints as to the best scrolling mode. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NUMA API: fix use-after-free bug Move the memory policy freeing to later in exit to make sure the last memory allocations don't use an uninitialized policy. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: fix remaining three non-ANSI warnings CHECK fs/smbfs/smbiod.c fs/smbfs/smbiod.c:68:25: warning: non-ANSI parameter list CHECK drivers/isdn/tpam/tpam_crcpc.c drivers/isdn/tpam/tpam_crcpc.c:57:15: warning: non-ANSI parameter list CHECK drivers/scsi/aic7xxx/aic79xx_reg_print.c drivers/scsi/aic7xxx/aic79xx_osm.h:791:19: warning: non-ANSI parameter list Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] saa5246a Videotext driver update From: Michael Geng The patch updates docs, comments + strings to also mention the SAA5281 chip (which is compatible to the SAA5246A) as supported. Signed-off-by: Michael Geng Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove include/{asm-i386,linux}/upd4990a.h From: Alexey Dobriyan drivers/char/upd4990a.c was removed from 2.6. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix memory leak in epoll There was a memory leak in epoll. The reference count (d_count) of the struct dentry of a new epoll-fd was set to TWO. (new_inode() assigned ONE, than ep_getfd() incremented it by dget()). There was only ONE reference to this dentry, so struct dentry and struct inode were never freed. Signed-off-by: Davide Libenzi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] snd_ctl_read() fix fix hm, I had a brainfart here. The recent "fix" to snd_ctl_read() actually unfixed it. Revert that, and fix the real bug. Cc: Jaroslav Kysela Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds sparse: annotate signal handler and ss_sp as user pointers fix oops in build_wildcard_path_from_dentry [AGPGART] VIA K8T890 Host Bridge support. Signed-off-by: Dave Jones [AGPGART] VIA VT838x [K8T800/K8M800/K8N800] support Signed-off-by: Dave Jones [AGPGART] VIA KT880 support. Signed-off-by: Dave Jones [AGPGART] VIA VT83xx/VT87xx/KTxxx/Px8xx support. Signed-off-by: Dave Jones [AGPGART] VIA P4M800 support. Signed-off-by: Dave Jones JFS: Protect active_ag with a spinlock Signed-off-by: Dave Kleikamp JFS: prevent concurrent calls to txCommit on the imap inode Signed-off-by: Dave Kleikamp [NETFILTER]: Fix two broken checks for options in ipt_LOG Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NET]: Deinline sock_i_uid, sock_i_ino The sock_i_uid and sock_i_ino functions are only called by /proc type interfaces, so they don't need to be inlined. Also, the inline functions writeable, rcvtimeo, sndtimeo are test for value functions that don't change their argument. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller JFS: Check for dmap corruption before using leafidx Signed-off-by: Dave Kleikamp [IPV4]: IPMR fixes. - pim_protocol warning fix - ipmr_vif_open() and ipmr_mfc_open() allocates the memory, so it should use seq_release_private(). - ipmr_mfc_seq_xxx is using it->cache, in order to control whether unlock should be do or not, but it->cache was not initialized in ipmr_mfc_seq_start(). So it can point the previous state if user did seek(). This become to the cause of twice unlock. Signed-off-by: OGAWA Hirofumi Signed-off-by: David S. Miller [NET]: Cleanup mis-usage of seq_release_private These doesn't allocate memory and doesn't use seq->private. However kfree() ignores NULL, so these are not the problem. This patch just cleans these up. Signed-off-by: OGAWA Hirofumi Signed-off-by: David S. Miller [AGPGART] Intel I915 support. From: Alan Hourihane Signed-off-by: Dave Jones [PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low priority process in kernel Rearranged code to make it work. There were two problems: 1. The preempt flag was being tested only if code was leaving for user space (the logic should be: test for RESCHEDULE if we're switching to a kernel thread, test everything if switching to a user thread) 2. The check of the user space flags was being repeated even if the work had been done. There is one small change in semantics: when returning from a preemption, the preemption flag will *not* be rechecked. Otherwise, I found that it was easy to get into a livelock situation where no forward progress was made. Signed-off-by: David Mosberger [AGPGART] Add support for SiS 5591. Untested, but from the looks of things (comparing with DragonFlyBSD's agp implementation) this should work. Strangely, we added the PCI ID for this a long time ago, back in 2.0.34 (long before agpgart driver got merged) and then we never used it. Signed-off-by: Dave Jones [NET] convert storage for MIB from struct member to array item. Signed-off-by: Hideaki YOSHIFUJI [PKT_SCHED]: Another missed tc_stats spinlock conversion. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [TCP]: Type qualifiers, such as const, are ignored on function return type. [TCP]: Do not round window to MSS if window scaling. Signed-off-by: John Heffner Signed-off-by: David S. Miller [NET] use SNMP_MIB_ITEM for MIB description. Signed-off-by: Hideaki YOSHIFUJI [NET] fold long comment lines. Signed-off-by: Hideaki YOSHIFUJI [NET] use seq_puts() where appropriate. Signed-off-by: Hideaki YOSHIFUJI ia64: Nuke two compiler warnings. [ARM] IXP4xx: platform_add_device() to platform_add_devices() conversion Signed-off-by: Deepak Saxena [ARM PATCH] 1937/1: LoCoMo common device Patch from John Lenz Cleanup and forward port of patch 1849. This patch provides support for the SHARP LoCoMo device, a companion chip similar to the sa1111 device. It is present in many of the SHARP Zaurus line of PDAs. Back out smc91x late collision "performance" hack. Apparantly, the reason for this change is that it gives "much less NFS stalls with a SMC91C96 on a 10/100MB switch." Alan Cox's comments on this is: "spec says 16 collision retries max _ever_. I bet his 'broken switch' is a case of half v full duplex" and a recommendation to remove it. Also, since the change does not limit the number of times we may retry to send the packet, I think this code opens a potential DoS attack against network which has a machine connected running this code. [PATCH] I2C: ADM1030 and Co sensors chips support Here is a patch against linux-2.6.7-mm1 kernel that adds support for adm1030 and adm1031 sensors chips. It has been reviewed several times by Jean Delvare, and he thinks it is ready for inclusion into 2.6 kernel. So here it is. Signed-off-by: Alexandre d'Alton Signed-off-by: Greg Kroah-Hartman [PATCH] I2C PPC4xx IIC driver: 0-length transactions bit-banging implementation IBM PPC 4xx i2c controller doesn't support 0-length transactions (e.g. used by SMBUS_QUICK). This patch implements bit-banging emulation for such requests and removes temporary kludge added earlier. Signed-off-by: Eugene Surovegin Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Class of scx200_acb This is needed for the scx200_acb to accept hardware monitoring chips. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Add support for LM86, MAX6657 and MAX6658 to lm90 This adds support for the LM86, MAX6657 and MAX6658 sensor chips to the lm90 driver. These are less popular than the LM90 and ADM1032 but several users have reported to use these, so I added support to the lm90 driver. All these chips are fully compatible so that's just a matter of accepting the new chip ids. I also slightly simplified the detection code. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c/i2c-dev.c::i2c_dev_init() cleanup. This patch does the fallowing cleanup for drivers/i2c/i2c-dev.c::i2c_dev_init(): *) in a error condition, return the error code of register_chrdev() insted of -EIO; *) adds missing audit for class_register(); *) in a error condition, only prints "Driver Initialisation Failed", insted printing the cause. (Note that the error will be printed by the return of the error code, and the information about what function caused the problem need to be done by a debug code). Only compiled, lack of hardware. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Documentation for i2c-parport At least, the i2c-parport gets some documentation. I heard several persons complaining that there was no sample electronics schema for building their own i2c-over-parallel-port, so I did just that, with the help of Sylvain Munaut. The documentation also includes the list of supported adapters, and a short comparison with other drivers using the parallel port to drive an i2c bus. At the end of the document I included an updated version of the i2c-velleman doc file (which I then deleted). Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Add support for LM77 This patch (against the current stack) adds support for the LM77 sensor chips made by National Semiconductor. Formerly this was claimed by the LM75 driver but when I got hold of an embedded board (built around the National Geode SC1100 CPU), which was equipped with an LM77, it turned out that the two chips are not compatible. It has been developed with help of, reviewed and approved by Jean Delvare. Signed-off-by: Andras Bali Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: Fix bug in ia64_atomic64_{add,sub} Hit this bug just yesterday. I hope the problem and fix require no explanation. Patched kernel boots and runs just fine. Signed-off-by: Brent Casavant Signed-off-by: David Mosberger [IPV4]: Fix multicast socket hangs. If a multicast packet gets looped back, the sending socket can hang if a local read just sits and does not empty its receive queue. The problem is that when an SKB clone is freed up, the destructor is only invoked for the head SKB when there is a fraglist (which is created for fragmentation). The solution is to account the fragment list SKB lengths in the top-level head SKB, then it all works out. Signed-off-by: David S. Miller ia64: Define machvec_noop as "static inline" This way, non-GENERIC kernels can optimize away the no-op calls while GENERIC kernels can still take the address of the function to initialize the machvec vector. [PATCH] Driver core: add platform_device_register_simple to register platform Add platform_device_register_simple to register platform devices requiring minimal resource and memory management. The device will have standard release function that just frees memory occupied by the platform device. By having release function in the driver core modules using such devices can be unloaded without waiting for the last reference to the device to be dropped. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: add default driver attributes to struct bus_type Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: kset_find_obj should increment refcount of the found object kset_find_obj should increment refcount of the found object so users of the function can safely use returned object Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: add driver_find helper to find a driver by its name Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: fix various problems in pfm_check_task_state() Commands not requiring the monitored task to be stopped would spin in wait_task_inactive() forever. After call to wait_task_inactive(), state may have changed, therefore it needs to be rechecked. Signed-off-by: Stephane Eranian Signed-off-by: David Mosberger JFS: jfs_dmap build fix fs/jfs/jfs_dmap.c: In function `dbAllocNear': fs/jfs/jfs_dmap.c:1343: parse error before `*' fs/jfs/jfs_dmap.c:1357: `leaf' undeclared (first use in this function) fs/jfs/jfs_dmap.c:1357: (Each undeclared identifier is reported only once fs/jfs/jfs_dmap.c:1357: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Dave Kleikamp [PATCH] ia64: nointroute option needs to be parsed early This patch does an early parsing of kernel command line to check if no_int_route is present. Sal_init code depends on this option to enable/disable interrupt routing. Signed-off-by: Rohit Seth Signed-off-by: David Mosberger [PATCH] ia64: allow module core code calls to module init code again Drop the prohibition for module core code calls to module init code (this breaks netfilter). Signed-off-by: Signed-off-by: David Mosberger [PATCH] ia64: add audit support This patch adds IA64 support to the audit infrastructure. The IA64 audit patch complements the existing audit support for the i386, PPC64, and x86_64 architectures. This patch is based on work by Ray Lanza. Signed-off-by: Peter Martuccelli Signed-off-by: David Mosberger [Bluetooth] Respond to L2CAP info requests This patch adds the correct behavior when a L2CAP info request is sent by the peer. The answer should be a L2CAP info response with the result code set to "not supported". Signed-off-by: Marcel Holtmann [PATCH] ia64: fix interpolation-bug in fsys_gettimeofday() The order of reading ar.itc is incorrect with respect to all other variables in fsys_gettimeofday. All variables involved in time interpolation need to be protected by the sequence lock xtime_lock for consistency check. However, the first time that fsys_gettimeofday() takes a time stamp, it reads the count outside the seq lock leading to the following possible time leap into the future scenario: fsys_gettimeofday: read ar.itc .... .... read_seqbegin read all other variables (last_nsec_offset, jiffies, xtime) do time interpolation - elapsed_cycles become a large negative number and converting it to nsec overflows and make it a large positive number read_seqretry success updates last_nsec_offset (which is several seconds into the future). All subsequent gettimeofday() calls will be wrong as well because monotonic property kicks in. It only self-corrects once that future time actually arrives. This patch fixes the problem (and moves one instruction to make some room). Signed-off-by: Ken Chen Signed-off-by: Asit Mallick Signed-off-by: David Mosberger [Bluetooth] Don't reset the USB halted bits The USB halted bits are useless and so there is no need to reset them after changing the configuration. Signed-off-by: Marcel Holtmann [PATCH] I2C: remove Documentation for i2c-pport > > This also raises a question about Documentation/i2c/i2c-pport. > > Should we keep a document about a driver which is not in the kernel > > tree (and hasn't even been ported to 2.6 yet)? > > No we should not. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: adm1025 driver ported to 2.6 This is my port of the adm1025 driver to 2.6. It has been tested by a few users and reported to work OK. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman I2C: sparse cleanups for a few i2c drivers. [PATCH] I2C: small ADM1030 fix Please find an incremental patch that applies on top of the previous one (the one from the first message of the thread) and that adds parenthesis to the macro as pointed out by Mark. Signed-off-by: Greg Kroah-Hartman [PKT_SCHED]: Remove CSZ scheduler. It was an experimental hack and never finished off. Signed-off-by: David S. Miller [BRIDGE]: Support different MTU sizes. This patch adds support for different size MTU's to bridging. It is useful for bridging Ethernet's with jumbo frames, etc. The mtu of the bridge pseudo-device is maintained as the minimum of all the underlying ports. And when forwarding a frame through the bridge, it will drop the frame if the outgoing port's MTU is less than the frame size (as per 802 standard). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller 1 Wire: add Dallas 1-wire protocol driver subsystem This was written and developed by Evgeniy Polyakov with only very minor cleanups by me. Signed-off-by: Greg Kroah-Hartman [PKT_SCHED]: Add jitter support to netem. This patch adds jitter if desired to the delayed packets in the netem scheduler. I dropped the rate stuff out and reorganized so that an underlying pfifo queue is used (next plan is to make it have class ops). The jitter is given as sigma to a Gaussian normal distribution. The actual implementation is a reduced form of the table driven stuff in NISTnet (free). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [CRYPTO]: Remove lazy allocation from deflate. Signed-off-by: James Morris Signed-off-by: David S. Miller [XFRM]: Add FLUSHSA and FLUSHPOLICY. This patch adds FLUSHSA and FLUSHPOLICY to xfrm_user which are analagous to SADB_FLUSH and SADB_X_SPDFLUSH in af_key. This is useful in KMs on startup/shutdown so that the system is reset to a known state. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Fix uh->len when doing NATT with IP options. I just noticed that the UDP header length in esp4_output() is incorrect when IP options are present (in transport mode). This patch fixes exactly that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [CRYPTO]: Set CRYPTO_TFM_RES_BAD_KEY_LEN in twofish. ia64: Fix EFI physical-mode stubs to correctly calculate physical address This fixes a bug in which the Ski simulator ended up getting the wrong time, since phys_get_time() ended up storing the correct time in the wrong place if a region-5 virtual address was passed (as would happen for stack variables of the init-task). On real machines, this bug likely would have caused a crash on machines which don't support switching EFI into virtual mode. ia64: Nuke a warning due to the syscall auditing patch. [ARM] Remove asm/hardware.h from SMC91x ethernet driver. This include isn't required for ARM builds either. [ARM] Fix allocation of 8390 ethernet device structure in etherh. [IPSEC]: Move generic encap code into xfrm4_output I've finally finished merging the general encapsulation code for IPv4. Here is the patch. The idea is basically to make x->type->output similar in structure to x->type->input. That means moving the tunnel encapsulation and other generic code out. They have ended up in xfrm4_output.c. The advantage of this is that we have exactly one copy of the tunnel encapsulation code. So if we need to change it (e.g., set the TTL according to the route) then it's easier and less error-prone. In fact, in doing so I've already noticed that the ECN wasn't being copied correctly in everything except xfrm4_tunnel. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPCOMP6]: Exclude IPCOMP header from props.header_len Now that the IPv4 encap stuff is out of the way, I'll be sending you the IPv6 versions. Here is the one to remove the unnecessary extra space reserved for IPCOMP. Signed-off-by: Herbert Xu Signed-off-by: Yoshifuji Hideaki Signed-off-by: David S. Miller [NET]: Fix dst_underflow_bug_msg printk args. [ARM] Fix two bugs in Acorn expansion card subsystem - Setup synchronous expansion card resource. - Fix order of IRQ and FIQ mask/offsets. [PCMCIA] Use a class interface to provide sysfs attributes. Patch from Dominik Brodowski [PCMCIA] Clean up class device attribute registration and fix build error [PATCH] quota: inode->i_flags locking fixes The patch fixes locking of i_flags. It removes S_QUOTA flag from i_flags because it was almost unused and updating it on some places correctly (under i_sem) would be tricky. Note that accessing of S_NOQUOTA flag is serialized by dqptr_sem and so we can reliably tested without i_sem. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: serial console autodetection We have something like this in our kernel since many months. It sets the console device to what OF uses. ppc64 does the same, and it works ok. serial is found on CHRP, ch-a is used on all powermacs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: CPM UART fixes Here is a patch to fix some bugs with the current CPM UART code, Tom Rini has seen this and ok'd it. * Fixes need to config both SMC1 & SCC1 * Fixes buffer descriptor wrapping issue in set_termios * Fixes confusion in Kconfig regarding CPM1 vs CPM2 Signed-off-by: Kumar Gala Signed-off-by: Pantelis Antoniou Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: uninline some user copy routines gcc 3.5 is complaining about the size of copy_from_user. It turns out it is rather large and putting it out of line saves us about 30kB on a default kernel build. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix unbalanced dev_get/put calls in EEH code This patch fixes some unbalanced usage of pci_dev_get()/pci_dev_put() calls in the eeh code. The old code had too many calls to dev_put, which could cause memory structs to be freed prematurely, possibly leading to bad bad pointer derefs in certain cases. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: enable EEH on PCI host bridges On recent pSeries systems, EEH needs to be enabled even on PCI Host Bridges (PHB's). If not enabled, then ordinary PCI probing (config-space reads/writes to the bridges) will generate firmware error messages, possibly a very large number of messages for systems with large numbers of pci slots. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: update lparcfg to use seq_file From: Will Schmidt This patch includes updates and cleanup for the PPC64 proc/lparcfg interface. - use seq_file's seq_printf for output - remove redundant e2a function. (use viopath.c's instead) - change to Kconfig to allow building as a module. - export required symbols from LparData.c Pass # 2 updates.. - Per Pauls request I've removed the vpurr references, and left just a stub function get_purr(). - this should apply clean to latest linus tree. (test-applied against 2.6.7-rc3). Pass # 3 updates... - Correcting my previously incorrect description of the lparcfg_count_active_processors() function.. This is for the cases where we have some number of virtual processors that are different than the total number of threads in the system. (i.e. systemcfg->processorcount isnt the desired value for partition_active_processors) - moved e2a function into its own file in arch/ppc64/lib. - changed lparcfg_count_active_processors() to use a while loop instead of a for loop. - removed redundant of_node_put in lparcfg_count_active_processors(). - removed unneeded parms from get-system-parameter rtas_call. Signed-off-by: Will Schmidt Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kbuild: clean up module install rules Consolidate rules for installing internal and external modules. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kbuild: sort modules for modpost and modinst Process modules in sorted order during modpost and modules install. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] intrinsic automount and mountpoint degradation support Here's a patch that I worked out with Al Viro that adds support for a filesystem (such as kAFS) to perform automounting intrinsically without the need for a userspace daemon. It also adds support for such mountpoints to be degraded at the filesystem's behest until they've been untouched long enough that they'll be removed. I've a patch (to follow) that removes some #ifdef's from fs/afs/* thus allowing it to make use of this facility. There are five pieces to this: (1) Any interested filesystem needs to have at least one list to which expirable mountpoints can be added. Access to this list is governed by the vfsmount_lock. (2) When a filesystem wants to create an expirable mount, it calls do_kern_mount() to get a handle on the filesystem it wants mounting, and then calls do_add_mount() to mount that filesystem on the designated mountpoint, supplying the list mentioned in (1) to which the vfsmount will be added. In kAFS's case, the mountpoint is a directory with a follow_link() method defined (fs/afs/mntpt.c). This uses the struct nameidata supplied as an argument as a determination of where the new filesystem should be mounted. (3) When something using a vfsmount finishes dealing with it, it calls mntput(). This unmarks the vfsmount for immediate expiry. There are two criteria for determining if a vfsmount may be expired - it mustn't be marked as in use for anything other than being a child of another vfsmount, and it must have an expiry mark against it already. (4) The filesystem then determines the policy on expiring the mounts created in (2). When it feels the need to, it passes the list mentioned in (1) to mark_mounts_for_expiry() to request everything on the list be expired. This function examines each mount listed. If the vfsmount meets the criteria mentioned in (3), then the vfsmount is deleted from the namespace and disposed of as for unmounting; otherwise the vfsmount is left untouched apart from now bearing an expiration mark if it didn't before. kAFS's expiration policy is simply to invoke this process at regular intervals for all the mounts on its list. (5) An expiration facility is also provided to userspace: by calling umount() with a MNT_EXPIRE flag, it can make a request to unmount only if the mountpoint hasn't been used since the last request and isn't in use now. This allows expiration to be driven by userspace instead of by the kernel if that is desirable. This also means that do_umount() has to use a different version of path_release() to everyone else... it can't call mntput() as that clears the expiration flag, thus rendering this unachievable; so it's version of path_release() calls _mntput(), which doesn't do the clear. My original idea was to give the kernel more knowledge of automounted things. This avoids a certain problem with stat() on a mountpoint causing it to mount (for example, do "ls -l /afs" on a machine with kAFS), but Al wanted it done this way. > Why is autofs unsuitable? Because: (1) Autofs is flat; AFS requires a tree - mounts on mounts on mounts on mounts... (2) AFS holds the data as to what the mountpoints are and where they go, and these may be cross-links to subtrees beyond your control. It's also not trivial to extract a list of mountpoints as is required for autofs. (3) Autofs is not namespace safe. (4) Ducking back to userspace to get that to do the mount is pretty tricky if namespaces are involved. In fact, autofs may well want to make use of this facility. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kAFS automount support Here's a patch to allow the kAFS filesystem to use the automount facility patch presented in a previous email. It allows me to mount an AFS root volume on /afs and then just walk through the directory structure causing referenced volumes to be automounted and autoumounted. For instance, if I do: [root@andromeda root]# mount -t afs \#root.afs. /afs [root@andromeda root]# ls /afs asd cambridge cambridge.redhat.com grand.central.org [root@andromeda root]# ls /afs/cambridge afsdoc [root@andromeda root]# ls /afs/cambridge/afsdoc/ ChangeLog html LICENSE pdf RELNOTES-1.2.2 And then look in the mountpoint catalogue, I see: [root@andromeda root]# cat /proc/mounts ... #root.afs. /afs afs rw 0 0 #root.cell. /afs/cambridge.redhat.com afs rw 0 0 #afsdoc. /afs/cambridge.redhat.com/afsdoc afs rw 0 0 Then after waiting a few minutes: [root@andromeda root]# cat /proc/mounts ... #root.afs. /afs afs rw 0 0 Is all that remains. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix MCA_LEGACY dependencies The patch below against 2.6.7-mm5 fixes more compile errors with MCA_LEGACY=n. Cc: Jeff Garzik Cc: James Bottomley Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use llseek instead of f_pos= for directory seeking nfsd currently just sets f_pos when seeking in a directory. This bypasses any checking and other handling that a filesystem might want to do. So instead, we define "vfs_llseek" to be an exported "llseek", and use that, both to seek at the start, and the find the new position at the end. Thanks to "Derrick Schommer" "Trond Myklebust" Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove dead isdn pcmcia code The _config function called just before clear DEV_CONFIG, and DEV_STALE_LINK isn't set anywhere else. This is a copy & paste thing found in all old pcmcia drivers. The patch has been sent to the isdn list ages ago but I didn't get any response. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kallsyms ppc32 fix PPC small data area base symbols shift between kallsyms phases 1 and 2, which makes the kallsyms data unstable. Exclude them from the kallsyms list. Signed-off-by: Keith Owens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update kernel-parameters.txt for the noexec option Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cfq: bad allocation Arjan (sensibly) put a might_sleep() in mempool_alloc() and it caught a bad cfq usage. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] FAT: update document Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use NULL instead of integer 0 in security/selinux/ Fixup another round of sparse warnings of the type: warning: Using plain integer as NULL pointer Acked by Stephen. From: Mika Kukkonen Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] int return to unsigned in smb_proc_readdir_long() in fs/smbfs/proc.c CC [M] fs/smbfs/proc.o fs/smbfs/proc.c: In function `smb_proc_readdir_long': fs/smbfs/proc.c:2313: warning: comparison of unsigned expression < 0 is always false fs/smbfs/proc.c:2467: warning: comparison of unsigned expression < 0 is always false The first one is pretty dangerous looking, as smb_proc_readdir_long() can return several negative error values and all those are converted to unsigned and then erronously pass the test on line 2313. Chris Wright gave it a quick look and we did not see immediately if this can be remotely exploited, but it looks pretty scary. The second warning on line 2467 is just extra so I just removed it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: scripts_kernel-doc: ignoring embedded structs shouldn't be From: Imagine you have a code similar to struct foo { union { struct tcphdr *th; } h; union { struct iphdr *iph; } nh; }; kernel-doc in it's current state will happily eat everything from first '{' to last '}' and nobody will see parameter 'h' in documentation (look at include/linux/skbuff.h:struct sk_buff for real world example). So, fix the greedy regexp. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: scripts_kernel-doc: missing bracket. From: Fix missing bracket when parameter to be documented is a pointer to function. int (* resume (struct usb_interface *intf); Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: little arch_i386_kernel_timers_timer_none.c fix fixes a cut'n'paste error... Signed-off-by: Rusty Trivial Russell Signed-off-by: Adam Lackorzynski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: RCS___IGNORE quilt backup files From: David Gibson This patch excludes the .pc directory from the same things that SCCS/BitKeeper/.svn/CVS files are excluded from. The .pc directory is used for backup/reference files by quilt, a patch mangling system conceptually derived from akpm's patch scripts. Excluding the .pc directory is handy, because otherwise old versions of files found in there tend to end up at the front of the TAGS index. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: remove warning in ftape From: Chris Heath Here's a trivial patch that removes an unused-variable warning in ftape. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: arch_i386_kernel_scx200.c: kill duplicate #include From: (Arthur Othieno) via scripts/checkincludes.pl: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial: kill off CONFIG_PCI_CONSOLE (OK from maintainer Geert Uytterhoeven ) From: a.othieno@bluewin.ch (Arthur Othieno) AFAICS, CONFIG_PCI_CONSOLE isn't used elsewhere: hubb@mars:linux-2.6.2$ grep -r PCI_CONSOLE * | grep -v defconfig drivers/video/console/Kconfig:config PCI_CONSOLE hubb@mars:linux-2.6.2$ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] convert uses of ZONE_HIGHMEM to is_highmem As the comments in mmzone.h indicate is_highmem() is designed to reduce the proliferation of the constant ZONE_HIGHMEM. This patch updates references to ZONE_HIGHMEM to use is_highmem(). None appear to be on critical paths. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] smbfs compilation warning fix Use %Zd to eliminate a compiler warning in printk. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove always false check in mm/slab.c CC mm/slab.o mm/slab.c: In function `kmem_cache_create': mm/slab.c:1129: warning: comparison of unsigned expression < 0 is always false This comes from the fact that 'align' is size_t and so unsigned. Just to be sure, I did $ grep __kernel_size_t include/*/posix_types.h and yes, every arch defines that to be unsigned. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Correct return type of hashfn() in fs/dquot.c CC fs/dquot.o fs/dquot.c:208: warning: type qualifiers ignored on function return type Once again with extra gcc warnings enabled. Every user of the function is expecting unsigned value, not int in first place, and I think the const is just misplaced. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix misplaced 'inline' in include/linux/iso_fs.h CC [M] fs/isofs/namei.o In file included from fs/isofs/namei.c:10: include/linux/iso_fs.h:280: warning: `inline' is not at beginning of declaration Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pagefault readaround fix Mika Kukkonen says: CC mm/filemap.o mm/filemap.c: In function `filemap_nopage': mm/filemap.c:1161: warning: comparison of unsigned expression < 0 is always false The pagefault readaround code is currently doing purely readahead. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] slab: fix get_user inside spinlock This little debugging __get_user is in fact happening inside a spinlock. It was never very useful, and has caused problems for some architectures in the past. Let's just remove it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha: print the symbol name in Oops Cc: Richard Henderson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] port ACPI sleep workaround to new DMI probing This patch moves Toshiba ACPI sleep workaround out of dmi_scan.c Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] DMI isn't broken anymore This patch removes dmi_broken global variable which is not used anymore. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix CRC16 misnaming As pointed by Thomas Sailer, crc16.c module contains CRC16-CCITT (x^16 + x^12 + x^5 + 1) implementation, not IBM CRC16 (x^16 + x^15 + x^2 + 1) one. Looks like we need to rename it accordingly and this patchset does exactly this. Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crc16 kconfig touchups drivers/net/hamradio/Kconfig:116:warning: 'select' used by config symbol 'BAYCOM_SER_FDX' refer to undefined symbol 'CRC16' drivers/net/hamradio/Kconfig:136:warning: 'select' used by config symbol 'BAYCOM_SER_HDX' refer to undefined symbol 'CRC16' drivers/net/hamradio/Kconfig:154:warning: 'select' used by config symbol 'BAYCOM_PAR' refer to undefined symbol 'CRC16' drivers/net/hamradio/Kconfig:169:warning: 'select' used by config symbol 'BAYCOM_EPP' refer to undefined symbol 'CRC16' net/irda/Kconfig:8:warning: 'select' used by config symbol 'IRDA' refer to undefined symbol 'CRC16' drivers/net/Kconfig:1749:warning: 'select' used by config symbol 'VIA_VELOCITY' refer to undefined symbol 'CRC16' drivers/net/Kconfig:2465:warning: 'select' used by config symbol 'PPP_ASYNC' refer to undefined symbol 'CRC16' drivers/isdn/hisax/Kconfig:403:warning: 'select' used by config symbol 'HISAX_ST5481' refer to undefined symbol 'CRC16' drivers/isdn/hisax/Kconfig:7:warning: 'select' used by config symbol 'ISDN_DRV_HISAX' refer to undefined symbol 'CRC16' drivers/isdn/tpam/Kconfig:7:warning: 'select' used by config symbol 'ISDN_DRV_TPAM' refer to undefined symbol 'CRC16' Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CRC16 renaming in AX25 drivers Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CRC16 renaming in IRDA drivers Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CRC16 renaming in ISDN drivers Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CRC16 renaming in PPP driver Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: cpumask cleanup. With the recent cpumask changes, some things ended up being broken on sh64. This fixes them.. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Fix init_task.c build. resource.h was falling a bit behind, so we use the asm-sh version instead. This exposed another compile issue with init_task.c, which in turn needed linux/mqueue.h. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Add asm-sh64/setup.h With the recent changes to init/main.c, we need an asm-sh64/setup.h. This pulls out the definitions from arch/sh64/kernel/setup.c and moves them to setup.h instead. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: defconfig update. This just updates the defconfig against current BK. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tmpfs: scheduling-while-atomic fix Nick has tracked scheduling-while-atomic errors to shmem's fragile kmap avoidance: the root error appears to lie deeper, but rework that fragility. Plus I've been indicted for war crimes at the end of shmem_swp_entry: my apologia scorned, so now hide the evidence. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ad1889 warning fix   CC [M]  sound/oss/ad1889.o           sound/oss/ad1889.c: In function `ad1889_ac97_init':           sound/oss/ad1889.c:854: warning: comparison is always false                                   due to limited range of data type Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] writepage fs corruption fix Fix a data loss bug in mpage_writepages(), triggerable under extreme memory pressure on ext2, JFS, hfs and hfsplus: The bug is the marking of the bh clean despite we could still run into the "confused" path. After that the confused path really becomes confused and it writes nothing and fs corruption triggers silenty (the reugular writepage only writes bh that are marked dirty, it never attempts to submit_bh anything marked clean). The mpage-writepage code must never mark the bh clean as far as it wants to still fallback in the regular writepage which depends on the bh to be dirty (i.e. the "goto confused" path). This could only triggers with memory pressure (it also needs buffer_heads_over_limit == 0, and that is frequent under mm pressure). Thanks a lot to Chris for his fine debugging that localized the problem in the writepage code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] __block_write_full_page() comment fixups Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mpage_writepages() i_size reading fix I believe reading the i_size from memory multiple times can generate fs corruption. The "offset" and the "end_index" were not coherent. this is writepages and it runs w/o the i_sem, so the i_size can change from under us anytime. If a parallel write happens while writepages run, the i_size could advance from 4095 to 4100. With the current 2.6 code that could translate in end_index = 0 and offset = 4. That's broken because end_index and offset could be not coherent. Either end_index=1 and offset =4, or end_index = 0 and offset = 4095. When they lose coherency the memset can zeroout actual data. The below patch fixes that (it's at least a theoretical bug). I don't really expect this tiny race to fix the bug in practice after the more serious bugs we covered yesterday didn't fix it (more likely the compiler will get involved into the equation soon ;). This is also an optimization for 32bit archs that needs special locking to read 64bit i_size coherenty. This patch also arranges for mpage_writepages() to always zero out the file's final page between i_size and the end of the file's final block. This is a best-effort correctness thing to deal with errant applications which write into the mmapped page beyond the underlying file's EOF. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: signals & exceptions From: Martin Schwidefsky From: Ulrich Weigand s390 core changes: - Add signo between signal frame and the signal return instruction on the user stack for backtrace over signal handlers. - Add hfp floating point exceptions. - Use a single function for region, segment and page translation exceptions. - Discard SIGTRAP for single stepped instructions if the trapping instruction is repeated (normal memory faults) or if another signal is delivered anyway. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: cpu hotplug bugs [PATCH] s390: cpu hotplug bugs. From: Ursula Braun-Krahl From: Martin Schwidefsky iucv driver changes: - Fix iucv declare/retrieve buffer which the cpu hotplug patch has broken. - Make smp_call_function_on call func(info) in non-smp kernels. - Use a spinlock to get smp_get_cpu/smp_put_cpu race free. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix (UDF_FS=y && NLS=m) compile error The patch below fixes Bugzilla #3030 ((UDF_FS=y && NLS=m) results in a compile error). Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove outdated ext2 help text parts The patch below solves Bugzilla #3014 by removing much outdated information from the ext2 help text. The help text is now very short, but few correct information is better than outdated information - and if you think it's too short, feel free to send a patch that adds more current information. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove drivers/char/h8.{c,h} CONFIG_H8 in drivers/char/ depends in both 2.4 and 2.6 on CONFIG_OBSOLETE which is never enabled. To remove this driver, the following is required additionally to the patch below: rm drivers/char/h8.c rm drivers/char/h8.h This patch was already ACK'ed by Richard Henderson. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kill IKCONFIG_VERSION The patch below (already ACK'ed by Randy Dunlap) kills the unused IKCONFIG_VERSION from kernel/configs.c . This patch is based on a previous patch by Anton Blanchard and an idea of Bartlomiej Zolnierkiewicz. (I hope I haven't forgotten anyone who contributed to this patch. ;-) ) Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ppc64: export the user copy functions. When Anton uninlined them, he didn't remember to export them to modules.. [PATCH] sparse: removal of iovec use in mtd mtd, jffs and jffs2 switched from iovec to kvec [PATCH] sparse: NULL noise is mtd 0->NULL conversions in mtd [PATCH] sparse: NULL noise in jffs [PATCH] sparse: NULL noise in jfs Linux 2.6.8-rc1 Remove obsoleted drivers/char/h8.c drivers/char/h8.h. [ARM] ohci-omap does not need asm/mach-types.h clean up NULL vs. 0 warnings generated by sparse tool [SPARC64]: Add CMT register defines. [IPV4]: Remove no longer available URL. This patch solves Bugzilla #2445 by removing a no longer available URL from the help text for NET_IPIP. Noted by Nils Hammar . Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller [SPARSE]: Fix warnings in net/sctp/ Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NETFILTER]: Add timestamping to ipt_ULOG After Andi's timestamp optimizations we don't have any timestamps on the packets unless someone requested them. Here's a patch for 2.6 to explicitly timestamp the packets before we log them. Harald approved it some time ago, he's pretty busy so I'm sending it instead. Signed-off-by: Martin Josefsson Signed-off-by: David S. Miller x86: fix stackframe ownership confusion in sys_sigaltstack() gcc doesn't understand that "asmlinkage" routines have the argument stack owned by the assembly-language caller, and the recent sparse cleanup made gcc think it owns enough stack frame space to make a tailcall by overwriting "struct pt_regs" that is set up by the low-level system call code. Hide that problem again. The real fix would be to tell gcc that the caller owns the stack frame that it set up, but we don't have any such interfaces, so for now the best we can do is to hide it. [SPARC32]: Don't allow the kernel to read PAGE_NONE pages. [SPARC64]: Update defconfig. [PATCH] sparse: NULL noise in fs/reiserfs [PATCH] sparse: misc NULL noise in fs/* [PATCH] sparse: aacraid annotation [PATCH] sparse: megaraid inline fixes inlined functions moved, a couple of heavy-weight ones (issue_scb() and meg_cmd_done()) uninlined. [PATCH] sparse: megaraid annotation [PATCH] sparse: NULL noise in drivers/isdn [PATCH] sparse: misc NULL noise in drivers/* [PATCH] sparse: ISDN ->readstat() and ->writecmd() annotation ->readstat() and ->writecmd() are always getting a userland pointer; marked argument as such, killed "user" flag, killed dead code. [PATCH] sparse: blind dereference of userland pointers in divasproc [PATCH] sparse: drivers/isdn/* annotation [PATCH] sparse: dvb_ringbuffer_pkt_write()/dvb_ringbuffer_write() annotation copy_from_user() moved from dvb_ringbuffer_{write,pkt_write}() to callers; these functions are always getting kernel pointer now. "usermem" argument killed, code annotated. [PATCH] sparse: blind dereference of userland pointers in ac7110 [PATCH] sparse: drivers/media/* annotation JFS: Add d_hash and d_compare operations for case-insensitive names JFS supports OS/2-compatibility with case-insensitive file names. To avoid multiple dentries for these names, jfs needs to provide the d_hash and d_compare dentry_operations. The operations are only used when the volume was created in OS/2 or with the -O flag. [PATCH] ia64: build fixes for IA64_MCA_DEBUG_INFO Make mca.c build again with debug enabled. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ia64: Reduce TLB flushing during process migration This patch adds an architecture-specific callout after explicit processor migrations. The callout allows architectures (or platforms) to update TLB specific information (ex., cpu_vm_mask). Signed-off-by: Jack Steiner Signed-off-by: David Mosberger [ARM PATCH] 1958/1: make collie use INIT_MACHINE Patch from John Lenz make collie use the new INIT_MACHINE macro instead of arch_initcall. [ARM PATCH] 1961/1: S3C2410 - fix for UART FIFO size calculation Patch from Ben Dooks Fixes calculation of how many bytes in the RX/TX FIFOs. Previous code failed to check wether the full flags where set before returning the byte counter. This should ensure that the serial driver behaves correctly when the FIFO fills, and not just ignore the input data [ARM PATCH] 1962/1: S3C2410 - Rename MACH_VR1000 to Thorcom-VR1000 Patch from Ben Dooks Place correct machine name for VR1000 in machine support file. Set Type field when creating block/char/pipe e.g. via mknod. Fixing problem mentioned by Jeremy Allison remove spurious warning message logged on mount with credentials file (pointed out by Richard Hughes) Signed-off-by: Steve French (sfrench@us.ibm.com) Set DevMajor/DevMinor when querying info on remote char/block devices Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] sparse: switching afs to kvec - afs and rxrpc switched to kvec; definition of kvec moved to uio.h (duh). - afs/mntpt.c got missing cast added. at that point afs is sparse-clean and rxrpc has only one remaining warning (setsockopt from local variable, protected by set_fs()). [PATCH] sparse: VIDIOCSWIN compat_ioctl fixes In handling of VIDIOCSWIN for 32bit on 64bit platforms: * switched to compat_alloc_user_space() * fixed memory corruption in copying arguments from userland * fixed arithmetic overflows * added missing checks for get_user() results and corresponding returns with -EFAULT. [PATCH] sparse: usb ioctl cleanups usb ioctls in compat_ioctl.c switched to compat_alloc_user_space() and cleaned up; ioctl structures annotated. [PATCH] sparse: isdn compile fix for platforms with HZ > 1000 Division by zero is an ugly thing... We are safe wrt overflows, since the maximal value we ever pass is 10000 - not enough to overflow unless you've got a platform with HZ > 200000. [PATCH] sparse: saa fix direct write to userland pointer. [PATCH] sparse: compile fix for rrunner on big-endian platforms bitrot strikes again... [PATCH] sparse: tms380tr.c fix tms380tr is used both by ISA and PCI drivers. Enabling/disabling DMA is done only for ISA ones (it's protected by if (dev->dma > 0) and PCI ones leave it 0), but it's compiled unconditionally. Which breaks on platforms that don't have that ISA crap at all, but support PCI just fine. Code in question placed under ifdef CONFIG_ISA. [PATCH] sparse: NULL noise removal in drivers/sbus [PATCH] sparse: drivers/sbus fixes a) vfc is not 64bit-clean, marked as such in Kconfig b) aurora is simply broken - still uses tqueues. Marked as broken. c) vfc does dereferencing of userland pointer, right after having carefully copied the data to kernel space ;-) Fixed. d) vfc ->mmap() had missed prototype change. Fixed. e) BPP ioctls are misdeclared - they should've been _IO(...) instead of _IOR(..., void). Too late to fix, but we can at least make them _IOR(..., char) - same value, but doesn't try to find sizeof(void). [PATCH] sparse: drivers/sbus annotation [PATCH] sparse: alpha NULL noise removal [PATCH] sparse: alpha sparse infrastructure * added usual CHECK assignment in Makefile * switched uaccess.h to __check_uptr() * added L on long constants (ones missed earlier) * added __user in osf_sys.c (duh - I've added __user to cast in the initializer, but forgot to add it in declaration) [PATCH] sparse: alpha topology.h compile fix Missing bits of cpumask_t conversion [PATCH] sparse: signal annotation ss_sp in struct sigaltstack made __user ->si_addr and ->sival_ptr made __user your ->sa_restorer and ->sa_handler changes propagated users of these guys annotated on i386/amd64/alpha/sparc/sparc64 [PATCH] sparse: arch/* NULL noise removal [PATCH] sparse: ipc compat annotations and cleanups ipc compat code switched to compat_alloc_user_space() and annotated. [PATCH] sparse: gemtek ioctl fix Dumb Typo(tm) - the first bug caught by 0/NULL checks (arg is really a kernel pointer there, so memset() is actually OK - results will be copied to userland by caller. Or would be, if we would not oops ;-) [PATCH] sparse: drivers/media NULL noise removal [PATCH] sparse: drivers/net partial NULL noise removal [PATCH] sparse: drivers/usb NULL noise removal [PATCH] sparse: net/* NULL noise removal [PATCH] sparse: assorted drivers/* NULL noise removal [PATCH] sparse: more fs/* NULL noise removal (partially based on patch from Mika Kukkonen) [PATCH] __vfs_follow_link() made inline again __vfs_follow_link() really should be inline; that's a special case since we are in the middle of recursion and really want to conserve stack space. Moved before the first use, made inline again. [PATCH] compat_fillonedir() warning fix access_ok() expects a pointer, not unsigned long. It's not a problem on platforms that have this guy done as a macro (or ones that do not use fs/compat.c at all), but that's still wrong and on some platforms that care we actually have access_ok() as inlined function. Bogus cast removed. ppc64: fix up si_addr usage Al's last changes mean that it is now annotated as a user pointer, and we want to avoid warnings. [PATCH] pmac_zilog: initialize port spinlock on all init paths pmac_zilog: initialize the serial ports' spinlocks even if console over serial is not enabled; disable this driver by default for ppc This lock not being initialized was Oopsing my TiBook :-P Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix 3c59x.c uses of plain integer as NULL pointer This patch will fix 3Com "Vortex" and "Boomerang" ethernet driver sparse warnings about using plain integer as NULL pointer. Signed-off-by: Petri T. Koistinen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small style fixups for the new automount code Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifndef guard percpu_counter.h and blockgroup_lock.h Insert header guards to allow possible multiple inclusion for include/linux/percpu_counter.h and include/linux/blockgroup_lock.h Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] floppy.c: remove superfluous variable initialization From: Kam Leo Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] `unknown symbol' in sound/oss/kahlua.ko needs unknown symbol udelay Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove struct_cpy() Only two architectures implement it, so afs broke the build. Remove struct_cpy() altogether, and use structure assignments. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] autoselect FAT_FS in config Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix saa7146 compilation From: Colin Leroy This patch fixes a compilation error on 2.6.8-rc1. Here's the error: drivers/media/common/saa7146_video.c:3: conflicting types for `memory' include/asm-m68k/setup.h:365: previous declaration of `memory' make[3]: *** [drivers/media/common/saa7146_video.o] Error 1 Signed-off-by: Colin Leroy Signed-off-by: Michael Hunold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix return codes after i2c_add_driver() in tea6415c and tea6420 In two of my i2c helper drivers the return value of i2c_add_driver() is ignored. Thanks to Arthur Othieno for finding these bugs. Signed-off-by: Arthur Othieno Signed-off-by: Michael Hunold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove outdated Stallion contact information The patch below (applies against both 2.4 and 2.6) removes the bouncing email address from all files and removes the outdated MAINTAINERS entry. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix ia64 early_printk build problem Rename PCDP_TABLE_GUID back to HCDP_TABLE_GUID to get the file to compile again. This change is against current 2.6 BK and is under CONFIG_IA64_EARLY_PRINTK_UART. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: read_descriptor_t annotation We have a fun situation with read_descriptor_t - all its instances end up passed to some actor; these actors use desc->buf as their private data; there are 5 of them and they expect resp: struct lo_read_data * struct svc_rqst * struct file * struct rpc_xprt * char __user * IOW, there is no type safety whatsoever; the field is essentially untyped, we rely on the fact that actor is chosen by the same code that sets ->buf and expect it to put something of the right type there. Right now desc->buf is declared as char __user *. Moreover, the last argument of ->sendfile() (what should be stored in ->buf) is void __user *, even though it's actually _never_ a userland pointer. If nothing else, ->sendfile() should take void * instead; that alone removes a bunch of bogus warnings. I went further and replaced desc->buf with a union of void * and char __user *. [PATCH] sparse: missing cpumask_t bits on sparc (no, it still doesn't fix sparc32-smp - just partial compile fixes ;-/) [PATCH] sparse: aout32 sparse fixes for compat this basically repeats the stuff done to fs/binfmt_aout.c for amd64 and sparc64 aout32. [PATCH] sparse: __forced added to casts in arch-specific code Casts from __user to address-space-agnostic in amd64 and i386 made explicit (__force added; in these places we pass userland pointer to arch-specific code that handles kernel and userland pointers the same way). csum_partial_copy_*() annotated properly [PATCH] pointer-to-int done the canonical way Extraction of int from pointer is slightly broken in several places. [PATCH] sparse: more drivers/scsi annotations Almost all are trivial, aacraid/linit.c annotations had caught a bug - copy_from_user() where copy_in_user() should've been. [PATCH] sparse: a couple of inline fixes in drivers'/scsi Usual "inline used before definition" fixes in nsp32.c and sg.c [PATCH] sparse: more drivers/usb/* annotations [PATCH] sparse: #if where #ifdef should've been (saa7146) [PATCH] sparse: (ipv6/netfilter) initializer fix Missing '=' in C99 initializer [PATCH] sparse: sound compat ioctls annotations Trivial annotations + typo fix in _snd_ioctl32_hwdep_dsp_image() (we want to copy 32bit structure from userland, convert it to native one and do normal ioctl on it; see the first changed line below for what's really happening...) [PATCH] mcdx irq handling cleanup mcdx has different IRQ numbers for all drives; irq handler needs a pointer to structure describing the drive in question. However, instead of passing such pointer at request_irq() time and having it passed to mcdx_intr() for free, mcdx.c sticks the pointer in question into an array indexed by IRQ number and has mcdx_intr() go look it up there. Cleaned up, array killed. [PATCH] mconf.c: Honor $LINES and $COLUMNS if TIOCGWINSZ failed While reading code, I found this buglet. If the TIOCGWINSZ fails, mconf.c assumes 24/80 as screen size, without honoring the LINES and COLUMNS environment variables. This is the shorter and IMHO more correct version. Signed-off-by: Jan-Benedict Glaw Signed-off-by: Linus Torvalds [PATCH] Fix 'unsigned' < 0 checks Using "-W" found a few places that should probably use signed variables since they can contain (and check for) negative error values. [netdrvr pci-skeleton] refresh Here it is. The patch fixes all compile errors and warnings in pci-skeleton.c. The "debug" parameter lacks corresponding variable, so I removed it to avoid a warning on module load. Obsolete pci_power_on() and pci_power_off() have been replaced with the new code using pci_set_power_state(), pci_save_state() and pci_restore_state(). The driver has been tested by compiling it as module and as part of the kernel. [PATCH] [TRIVIAL 2.6] sk98lin: kill dup include From: a.othieno@bluewin.ch (Arthur Othieno) [netdrvr dmfe] remove ALi pci id It's tulip driver, and tulip driver performs better than dmfe (yet some distro installers pick this driver to use). Requested by ALi. [PATCH] prism54 Fix wrong type for BSSID 2004-07-12 Margit Schubert-While * The OID type for BSSID was incorrectly set to type SSID. It should be type RAW. This lead to interesting reporting by "iwpriv ethX g_bssid". (Which caused garbage output and possibly an out of bound) * Be ultra-cautious in reporting SSID by changing the "%s" to "%.*s" and passing the length. (Prompted by the false type above, whereby length = 0 and a %s on a garbage field) [PATCH] fix airo oops-on-removal From: Bill Nottingham airo creates /proc/driver/aironet/ on device activation. However, the device can be renamed - then on teardown it tries to remove the wrong directory. The removal of /proc/driver/aironet then runs afoul of the BUG_ON() in remove_proc_entry. This fixes it by keeping a copy of the name of the directory it created. (It doesn't actually solve the problem of the stats directory still being /proc/driver/aironet/eth0 when you rename the device to, say, 'joe'. But that patch would be a little less trivial.) Signed-off-by: Andrew Morton [PATCH] I2C: Remove extra inits from lm78 driver This patch is from the lm_sensors project CVS, from this revision: 1.63 (mds) remove initialization of limits by driver It is better to set these limits by a combination of /etc/sensors.conf and 'sensors -s'; "mechanism not policy." Please apply. Signed-off-by: Mark M. Hoffman Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Refine detection of LM75 chips The LM75 detection method was a bit loose so far and would accept non-LM75-compatible chips from times to times. It should be better now. Additionally, the help for the lm75 driver was reworked because we now know that the LM75 and the LM77 are not compatible. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] tg3 bug During receive processing, the tg3 card updates rx_producer (the hardware position in the receive ring) and the opaque cookie. Due to PCI rules the stores happen in order. However the cpu may reorder the reads. In these sort of cases there is usually a data dependency between reading the index and looking up the data (since we use the index to load the data). I think all cpus except alpha guarantee the reads happen in order in this case. However in this particular case we load hw_idx, compare it to sw_idx and then use sw_idx to locate the opaque cookie. There is no data dependency in this case. We need a read memory barrier between the read of rx_producer and the opaque cookie to enforce ordering. Thanks to Olof Johansson, Michael Chan and Broadcom for their assistance in finding this bug. Signed-off-by: Anton Blanchard [netdrvr tg3] bump version and reldate [wireless airo] fix alignment problem (particularly on ARM) Bugzilla #2905 [netdrvr acenic] fix RX descriptor memory ordering [PATCH] libata: fix kunmap() of incorrect page, in PIO data xfer Obvious bug. Fixes highmem oops. [PCI, libata] Fix "combined mode" PCI quirk for ICH6 The hardware vendor, in their infinite wisdom, make the combined mode configuration register different between ICH5 and ICH6. Take this into account. [PATCH] USB: add 3 Phidget device ids to the HID blacklist. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add usb_kill_urb() This patch is a slightly revised version of as277c, updated to match the current source. The only difference from the older version is that this makes urb->use_count into an atomic_t, to avoid the overhead of an extra locking step each time an URB is submitted and given back. The important features of this patch are: -EPERM added to Documentation/usb/error-codes.txt. Failure to use URB_ASYNC_UNLINK with usb_unlink_urb() is deprecated in the documentation. New ->reject and ->use_count fields added to struct urb. The reject field is protected by urb->lock, and locking is required only in usb_kill_urb() which doesn't have to be fast. Single wait_queue used for all processes waiting inside usb_kill_urb(). The wait queue is woken up only when an URB is given back with ->reject set. usb_rh_status_dequeue() changed to return int. It looks like this function should be declared static; it's not used outside the hcd.c file. Prototype for unlink_urb() in struct usb_operations is changed to include a status code argument. This is necessary so that the different unlink paths can return -ENOENT and -ECONNRESET as appropriate. Support for synchronous usb_unlink_urb() has been removed; such calls are passed to usb_kill_urb(). Kerneldoc for usb_unlink_urb() is updated. usb_kill_urb() added to urb.c. hc_simple() host driver is partially updated -- it should compile but it won't really work right. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Make hub driver use usb_kill_urb() This is a rerun of as278, updated to match the current source. It changes the hub driver, replacing calls to synchronous usb_unlink_urb() with usb_kill_urb() and removing the machinery formerly needed to synchronize the status URB handler with the rest of the driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Don't ask for string descriptor lengths Okay, here's a revised patch (as332b). This tries first to ask for 255 bytes, and if that fails then it asks for the length and the full descriptor. Hopefully nobody will object to applying this version... You know, it occurs to me that the have_langid field in usb_device could easily be eliminated. Just set string_langid to -1 during initialization and test for whether or not it is >= 0. I'll do that some other time. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Store pointer to usb_device in private hub structure This patch adds a pointer to the hub's usb_device into the usb_hub private structure. It's a small change, and permits a small amount of simplification in a few spots, i.e., avoid calling interface_to_usbdev(). This doesn't really do much in itself, but it's a prerequisite for the next patch. (A situation arises where we can't use the interface pointer to find the usb_device because the interface might not exist.) Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix up the wording in the emi26 firmware file to match the other kernel firmware files. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: more sparse cleanups (all pretty much NULL usages.) Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix lockup with 2.6 keyspan_pda driver I suggest to put the pointer to port instead of the pointer to the pointer to port to the workqueue data. Did that driver ever work with 2.6? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Trivial fix to include/linux/usb.h Hi Greg! I am compiling allmodconfig with some extra gcc warnings enabled (-W -Wno-unused -Wno-sign-compare -Winline -Wundef) and got this one: CC [M] security/root_plug.o In file included from security/root_plug.c:30: include/linux/usb.h:358: warning: `inline' is not at beginning of declaration Patch is trivial: Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix endianness bug in UHCI driver This patch fixes a byte-swapping error in the UHCI driver. It has been present since 2.6.6 and only got tracked down just now! Thanks a lot to Michel Roelofs for all his help and testing. This should be pushed through to Linus in time to appear in 2.6.8, if possible. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: more sparse fixups that found a real bug in the se401 driver Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix usbfs mount options ignored bug Ok here is a patch to make the mount options work. In addition to implementing the remount function, it removes the parse_options() call from usb_fill_super and adds a "ignore" flag around the mounting that gets done in create_special_files. The parse_options call in usb_fill_super is removed because it is not needed when remount is implemented. The ignore_mount flag is needed because the simple_pin_fs function calls remount with no mount options - i.e. it's not a real mount. So the mount options would be cleared out. The ignore_mount flag causes the remount function to only act on real mounts. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb/core/file.c::usb_major_init() cleanup. This patch does a cleanup for usb/core/file.c::usb_major_init(), which is: *) in error condition, returns the error code from register_chrdev(), insted returning -EBUSY; *) adds missing audit for class_register(); *) only calls devfs_mk_dir() if the prior calls have success. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Allow NULL argument in usb_unlink_urb() and usb_kill_urb() It makes sense for APIs involved in cleanup activities (like kfree()) to accept NULL arguments. Doing so frees drivers from the responsibility of checking whether each resource was actually acquired before trying to release it. Accordingly, this patch makes usb_unlink_urb() and usb_kill_urb() accept a NULL pointer (which used to be acceptable until I changed it) and notes explicitly in the kerneldoc that such arguments are permitted. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet:ax8817x - use interrupt URB for link detection This patch uses the interrupt URB on the ax8817x for link detection. This allows the driver to notify userspace when link drops/comes back so it can take action such as run dhclient, etc. I was also able to reduce the bind function by using some of the stock mii_xxx calls as well as my own for handling initial link negotiation. Signed-off-by: David Hollis Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ax8817x_unbind does not free the interrupt URB after unlinking ax8817x_unbind does not free the interrupt URB after unlinking. Noticed that the net->status already has a flag for link so my private structure variable for link was redundant. Worked around this and was able to kill off the unique ax8817x_get_link() function in the process. Signed-off-by: David Hollis Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet, Sitecom LN-029 ID for another AX8817x based usb2 Ethernet adapter. From: Tim Chick Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: misc ohci tweaks Various minor OHCI tweaks; - Fix osdl bugid=2503 by: * Change needlessly-scarey message (WARN_ON dumps stack) * Tries cleaning up, as if it's just IRQ lossage. - Force IRQs off when shutting down a controller that was already stopped ... just in case. - Allow suspending OHCI during driver initialization, to support more aggressive power management. - Fix some misleading/wrong debug messages. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman USB: oops, revert hub patch that wasn't supposed to make it into this patch series yet. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb serial gadget, add omap_udc This lets the serial gadget work with another controller. Tell serial about omap_udc. This driver still needs updating to use the endpoint autoconfig suppport; like Gadget Zero, it really shouldn't need _any_ hardware-specific #ifdeffery. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadgetfs, handle omap_udc Tell gadgetfs about omap_udc. Add some missing __user annotations. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadget API updates Gadget API updates, including new features: - Adds several new optional calls that can be made to the USB peripheral controller: * VBUS session reporting, for use mostly by external transcievers (such as isp1301). Detection of VBUS power is the first step in enumeration, and usually corresponds to a device being plugged into a hub. * "Soft Connect" feature, wherein the D+ pullup is under gadget driver control. This is a second step during enumeration, which lets the hub see the new device. (Based on a patch by Alex Sanks .) * Control over VBUS current draw. So for example this is what a gadget driver uses during SET_CONFIGURATION to say "it's OK to draw 300 mA from VBUS to recharge". - Basic interfaces to support device-side USB OTG. Feature flags and descriptors are in already. * Reports whether the device has a Mini-AB port, so that OTG support (desriptors etc) is required. * Reports OTG device feature flags for HNP. (The OTG spec requires user interfaces to report this stuff.) Say if this is a B-Peripheral or an A-Peripheral. * Says that usb_gadget_wakeup() is how to access SRP, and usb_gadget_disconnect() is how to access HNP. - Minor updates/cleanups to comments (Linux 2.5-->2.6 etc) Currently there's no support for SRP-only OTG devices. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadget zero, basic OTG updates This patch teaches "gadget zero" enough about OTG to pass simple USBCV tests, mostly by including OTG descriptors in each configuration. It tests and reports OTG status, as reported by the USB controller driver. It also adds an option to build gadget zero to act as the designated OTG "HNP Test Device", which exists primarily to trigger HNP. However, it won't currently request HNP. Includes other minor tweaks: delete a timer on disconnect, reset the req->zero flag, don't autoresume after disconnect. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb ethernet gadget, minor fixes + basic OTG support Update CDC Ethernet/RNDIS gadget driver to the latest: - Basics of OTG support: providing the OTG descriptor in each configuration (as needed). No HNP yet. - Stop issuing partial-packet reads. There's some hardware that only counts reads in packets, not bytes, so let's not bother. There are still software checks to catch framing gone wild. - Fix a small bug that crept in with a memory leak fix: after RNDIS requests, ep0 responses would use the RNDIS completion handler even for non-RNDIS requests. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] Updates for W99[87]CF and new SN9C10[12] driver This single patch contains some updates and cleanups for the W996[87]CF driver and a new experimental V4L2 driver for SONiX SN9C10[12] PC Camera Controllers connected to various image sensors. I have not divided the patch in two logical sub-patches becouse of two independent changes in one common file, KConfigure. More informations about the SN9C10[12] can be found below in the documentation. The driver is marked as "EXPERIMENTAL", meaning that there are no known bugs, but further testing is necessary before considering it stable. This the first driver using the new SBGGR8 video format, which has been recently added to the mainline kernel, so there are no available user application at the moment: this is one more reason why it should be in the kernel now. Changes in W996[87]CF: - remove w9968cf_externaldef.h now that ovcamchip.h is in the kernel; - mark user pointers with __user in a cleaner way to avoid sparse warnings; - use appropriate exclusive wait macro during open(); - replace info(), err(), warn() with dev_info(), dev_err(), dev_warn(), pr_debug(), pr_info(); - replace usb_unlink_urb() + wait_for_completion() with usb_kill_urb(); - fix memory offsets for buffers in the chip to be used with generic image sensors; - 'vppmod_load', 'debug', 'specific_debug' and 'simcams' module parameters are now writeable by default; - fix possible race conditions between disconnect() and open(); - add automatic 'ovcamchip' module loading option with 'ovmod_load' module parameter; - get rid of deprecated intermodule communication routines and use the correct module registration/unregistration approach; - remove period at the end of kernel messages; - fix several typos; - use MODULE_VERSION() macro; - other small internal cleanups; - documentation updates. Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: change all usbserial drivers to use module_param() Signed-off-by: Greg Kroah-Hartman [PATCH] USB: remove CONFIG_USB_SERIAL_DEBUG This involved reworking the usb_serial_debug_data() function too. Based on a request from SuSE, and numerous user confusions with how to enable this option. Now that all usb-serial drivers are using module_param() it can be set from the boot command line if the drivers are built into the kernel. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: sort the order in which the usb-serial drivers get built all other usb drivers get built in alphabetical order, why not these? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix SN9C10[12] driver for ia64 On Sun, Jul 11, Luca Risolia wrote: > This single patch contains some updates and cleanups for > the W996[87]CF driver and a new experimental V4L2 driver > for SONiX SN9C10[12] PC Camera Controllers connected to various > image sensors. I have not divided the patch in two logical > sub-patches becouse of two independent changes in one common > file, KConfigure. Since this mailing list refused the patch, > due to its size, I have uploaded it here, as > Documentation/SubmittingPatches suggests: I need this patch for x86_64. CC [M] drivers/usb/media/sn9c102_core.o In file included from drivers/usb/media/sn9c102.h:34, from drivers/usb/media/sn9c102_core.c:43: include/asm/rwsem.h:55: error: redefinition of `struct rw_semaphore' In file included from drivers/usb/media/sn9c102.h:34, from drivers/usb/media/sn9c102_core.c:43: include/asm/rwsem.h:79:1: warning: "__RWSEM_INITIALIZER" redefined In file included from include/linux/rwsem.h:25, from include/asm/semaphore.h:43, from include/linux/sched.h:18, from include/linux/module.h:10, from drivers/usb/media/sn9c102_core.c:21: include/linux/rwsem-spinlock.h:49:1: warning: this is the location of the previous definition include/asm/rwsem.h:87: warning: static declaration for `init_rwsem' follows non-static include/asm/rwsem.h:100: warning: `__down_read' declared inline after being called include/asm/rwsem.h:100: warning: static declaration for `__down_read' follows non-static include/asm/rwsem.h:122: warning: `__down_read_trylock' declared inline after being called include/asm/rwsem.h:122: warning: static declaration for `__down_read_trylock' follows non-static include/asm/rwsem.h:146: warning: `__down_write' declared inline after being called include/asm/rwsem.h:146: warning: static declaration for `__down_write' follows non-static include/asm/rwsem.h:171: warning: `__down_write_trylock' declared inline after being called include/asm/rwsem.h:171: warning: static declaration for `__down_write_trylock' follows non-static include/asm/rwsem.h:184: warning: `__up_read' declared inline after being called include/asm/rwsem.h:184: warning: static declaration for `__up_read' follows non-static include/asm/rwsem.h:208: warning: `__up_write' declared inline after being called include/asm/rwsem.h:208: warning: static declaration for `__up_write' follows non-static include/asm/rwsem.h:233: warning: `__downgrade_write' declared inline after being called include/asm/rwsem.h:233: warning: static declaration for `__downgrade_write' follows non-static make[3]: *** [drivers/usb/media/sn9c102_core.o] Error 1 Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update added another device to unusual_devs.h. Its a Sony Clie PEG-675C. Now I can mount the memory stick. cat /proc/bus/usb/devices T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 18 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=054c ProdID=0099 Rev= 1.00 S: Manufacturer=Sony S: Product=Sony PEG Mass Storage C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 6mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=05 Prot=00 Driver=usb-storage E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbserial/ipaq update However, attached I provide you a patch against 2.6.7 which should add the ASUS A620 PDA to the ipaq Kernel module. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb/core/hcd.c::usb_init() missing audit. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio debug trace for TIOCMSET Someone spotted that ftdi_sio outputs a debug trace for TIOCMGET, but not for TIOCMSET, so this patch adds a debug trace for TIOCMSET too. Signed off by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio VID/PID updates Greg, This patch adds various VID/PIDs to the ftdi_sio driver that I've accumulated from the ftdi-usb-sio-devel mailing list, and one from the 2.4 kernel sources: * Interbiometrics USB I/O boards VID/PIDs from 2.4 kernel (Rudolf Gugler). * Intrepid Control Systems ValueCAN and NeoVI VID/PIDs from Scott Wolchok. * Falcom Twist USB GPRS modem VID/PID from Justin Schoeman. * Suunto Sports instrument PID from Panu Kekalainen. Also a few minor clean-ups: * Removed a stray PID macro constant FTDI_GUDEADS_889_PID. * Copied the Inside Accesso VID/PID into the FT232BM ID table so that the "combined" table is a proper union of the others (unless I've missed something else). * Added a comment that the OCT US101 is also rebadged as a SIIG Inc. US2308. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb host side updates, mostly for suspend This adds some of the infrastructure needed to support some more USB capabilities: - CONFIG_USB_SUSPEND, so Linux can put individual devices into the USB "suspend" state. They can (sometimes) use "remote wakeup" to resume the host; or they can each be resumed by the host. + New usbcore device selective suspend/resume APIs * Define them, as stubs for now * Call them on the paths sysfs uses (renamed functions) + HCD support * Define root hub suspend calls; delegate them to HCDs. * OHCI and EHCI can suspend/resume root hubs that way. * Not called yet, until suspend/resume calls exist - CONFIG_USB_OTG, which depends on the selective suspend APIs to allow devices to switch roles (host to peripheral, etc). This patch just adds a few key flags in usb_bus, needed by usbcore (during enumeration) and by HCD and OTG controllers on OTG-capable boards. - Related bugfix: power budgeting is supposed to place a 100mA per port (non-OTG) for bus-powered devices. This patch changes no behavior; later patches will do that, and they'll be smaller because of this. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: W99[87]CF fix Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb hub, don't check speed before reset Signaling (even D- vs D+ pullup) may not be stable for a while. At least one OTG root hub won't reliably (<10%) report device speed until after reset (and the OTG state transitions have quiesced for a while). This patch makes that not matter. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: USB w9968cf compile error On Tue, Jul 13, 2004 at 06:25:59PM -0700, Andrew Morton wrote: >... > All 252 patches: >... > bk-usb.patch >... This patch marks w9968cf_valid_depth as inline, although it's used before it's defined. gcc 3.4 therefore correctly fails with: <-- snip --> ... CC drivers/usb/media/w9968cf.o drivers/usb/media/w9968cf.c: In function `w9968cf_set_picture': drivers/usb/media/w9968cf.c:487: sorry, unimplemented: inlining failed in call to 'w9968cf_valid_depth': function body not available drivers/usb/media/w9968cf.c:1722: sorry, unimplemented: called from here make[3]: *** [drivers/usb/media/w9968cf.o] Error 1 <-- snip --> This patch moves w9968cf_valid_depth above it's first user (it also uses two other functions to keep the ordering of functions a bit more consistent). Signed-off-by: Adrian Bunk Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: patch quirks.c - SMBus hidden on hp laptop This patch unhides the SMBus on the hp nc8000 and nc6000 laptops. The patch has been co-written by Jean Delvare and Rudolf Marek. I've only tested this on nc8000, but it should work for the nc6000 too. Unfortunatley, we had to little information to fix the problem described in the reported bug below, as is probably the same problem. But if we're very lucky it might solve it too. http://bugzilla.kernel.org/show_bug.cgi?id=2976 Signed-off-by: Örjan Persson Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: Fix OOPS in device_platform_unregister Driver core: platform_device_unregister should release resources first and only then call device_unregister, otherwise if there are no more references to the device it will be freed and the fucntion will try to access freed memory. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Upgrade security/root_plug.c to new module parameter syntax Hi again, Still doing my compile, and got this: CC [M] security/root_plug.o security/root_plug.c:39: warning: missing initializer security/root_plug.c:39: warning: (near initialization for `__parm_vendor_id.addr') security/root_plug.c:42: warning: missing initializer security/root_plug.c:42: warning: (near initialization for `__parm_product_id.addr') security/root_plug.c:48: warning: missing initializer security/root_plug.c:48: warning: (near initialization for `__parm_debug.addr') Simply upgrading root_plug to use the new module parameter syntax seemed to do the trick. I made the debug writable, the others just readable to root. Signed-off-by: Greg Kroah-Hartman [PATCH] add removeable sysfs block device attribute This patch adds a /block/*/removeable sysfs attribute. A value of 1 indicates the media can change anytime. This is a hint for userland to poll such devices for possible media changes, and leave all others alone. There is currently no way to see if a connected usb-storage device is a disk or a card reader. It will also show 1 for CD and ZIP drives. It was done by Patrick Mansfield a while ago. I can probably not sigh-off his work. ;) Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: Extend oem section types for SN mca records SN mca records now contain oem data for platform memory errors. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ide: PIO-out fixes for ide-taskfile.c (CONFIG_IDE_TASKFILE_IO=n) - in task_out_intr() fix off-by-1 bug and (stat & DRQ_STAT) check,   previously "if" was always true for rq->current_nr_sectors == 1 - fail request if DRQ_STAT is not set and rq->current_nr_sectors != 0 (instead of setting handler and waiting for the next IRQ) or if DRQ_STAT is set but !rq->current_nr_sectors (in task_mulout_intr() this was OK) - in task_mulout_intr() check also DRIVE_READY and WRERR_STAT status bits Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-out ->prehandler() fixes (CONFIG_IDE_TASKFILE_IO=y) Setup handler and output first data block directly from ->prehandler() instead of calling ->handler(). The only change in functionality is that we no longer check DRIVE_READY status bits (there is no need to do it). Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-out error handling fixes (CONFIG_IDE_TASKFILE_IO=y) We shouldn't ever get into ->handler() if drive is busy so just call ->error() unconditionally if status check fails. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove BUSY check from task_in_intr() (CONFIG_IDE_TASKFILE_IO=n) We shouldn't ever get there if drive is busy and we can't start transfer in this case. ide-disk.c:read_intr() also doesn't check for BUSY_STAT bit. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] remove pre_task_out_intr() comment (CONFIG_IDE_TASKFILE_IO=n) disable_irq_nosync() in ide-io.c:ide_do_request() protects pre_task_out_intr() from racing with the task_out_intr(). Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: pre_task_mulout_intr() cleanup (CONFIG_IDE_TASKFILE_IO=n) drive_is_ready() reads STATUS register if CONFIG_IDEPCI_SHARE_IRQ is not defined and ALTSTATUS register if it is defined. Therefore drive_is_ready() in pre_task_mulout_intr() only makes sense if we can't trust STATUS register (because we call ide_wait_stat() which reads STATUS register earlier). Remove this "workaround" for now as it is not present in ide-disk.c and whole multi PIO-out code (CONFIG_IDE_TASKFILE_IO=n) was buggy before. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: no partial completions for PIO (CONFIG_IDE_TASKFILE_IO=y) Don't do partial completions but instead acknowledge already transferred sectors with verified good status on error. This allows us to complete "good" sectors to block layer even if bio they belong to wasn't finished and simplifies code. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: merge CONFIG_IDE_TASKFILE_IO=y|n PIO handlers together This fixes a couple of CONFIG_IDE_TASKFILE_IO=n issues: - check status after last sector for PIO-in transfers - handle drive->unmask properly in PIO-out prehandlers - use rq->[hard]_nr_sectors where appropriate Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: use "normal" handlers for "flagged" taskfiles (ide-taskfile.c) This fixes following issues for PIO-in: - shared PCI IRQs handling - fail request if the last status is bad and PIO-out: - set hwgroup->handler/timer in prehandlers - handle drive->unmask in prehandlers - check for !rq->nr_sectors and DRQ_STAT bit set - use drive->bad_wstat instead of BAD_W_STAT Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] CFQ: allocation under lock, missing memset on allocation This fixes two issues in the CFQ IO-scheduler: o Still a bad allocation under the queue lock o We need to clear crq after mempool_alloc(), otherwise the rbtree pointers can contain garbage if slab poisoning is enabled. This causes crashes on front/back merges because rb_next() returns crap. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds NAND flash driver updates. Update the core NAND code: - support multiple chips - support bad block tables - improved generic ECC support and 'spare area' usage. - 16-bit NAND - Large-block NAND devices - Renesas AG-AND devices - M-Systems DiskOnChip devices - Other new board support wrappers Most of the work was done by Thomas Gleixner. Signed-Off-By: David Woodhouse JFFS2 file system update - Improved support for NAND flash - More generic compression support, allowing for extra compressors - Fix potential deadlock with kupdated MTD core include and device code cleanup - Move user-visible bits from headers to include/mtd/ directory. - Update old DiskOnChip drivers for newer hardware. - Switch NFTL and INFTL support to work with new DiskOnChip/NAND code. - New phram driver, reimplenting the ugly slram driver. - Bug fixes in partitioning code NOR flash drivers update - Handle cached access to flash chips on supporting platforms - Handle arrangements of chips larger than a single bus width - Clean up the AMD/Fujitsu chip driver - Update board 'mapping' drivers to match - New mapping drivers for new platforms. [PATCH] ia64: fix obsolete and now misleading comment Signed-off-by: Josh Aas Signed-off-by: David Mosberger [ALPHA] Pass pt_regs as pointer to execve and sigprocmask syscalls. [PATCH] tmpfs preempt count panic Just unearthed another of my warcrimes: reading a 17-page sparse file, I mean holey file, hits the in_interrupt panic in do_exit on a current highmem kernel (but 2.6.7 is okay). Fix mismatched preempt count from shmem_swp_alloc's swapindex hole case by mapping an empty_zero_page. Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds WindRiver SBC8560: Set all internal IRQs level-triggered. Fix UART detection on WindRiver SBC8560 The UART is detected as a ST16650V2 but its FIFO doesn't behave nicely. Disable autoprobe and hard-code it to be a ST16650 instead. Fix UART initialisation on WindRiver SBC8560. The UART tristates its IRQ output when the OUT2 bit in the MCR isn't set. For reasons not known to civilised man, the hardware engineers stopped it from floating by pulling it _high_ instead of low, so if anybody requests that IRQ before OUT2 is turned on, we die in an IRQ storm. The serial8250 driver does precisely that thing, with precisely that effect. ALPHA_KLUDGE_MCR was designed to fix exactly this kind of problem, so we use it here as intended. Ideally ALPHA_KLUDGE_MCR would go away and be replaced with something like UPF_FORCE_OUT2 and UPF_FORCE_OUT1 flags, but now is not the time to get me started on a cleanup of everything about serial8250 that offends me. PPC openpic driver cpumask_t changes Fix the PPC openpic driver to use cpumask_t where appropriate. ppc32: reworked cpm alloc functions * Unified function names between CPM1 & CPM2 * changed rheap to use ERR_PTR * fixed drivers to use new functions and names ppc32: reworked CPM uart driver to work for properly for all CPMs [ARM] Export ixp42xx_pci_read/write so PCI driver modules load Originally found by Thomas Winkler Signed-off-by: Deepak Saxena [PATCH] ppc32: Fix UART detection on WindRiver SBC8560 The UART is detected as a ST16650V2 but its FIFO doesn't behave nicely. Disable autoprobe and hard-code it to be a ST16650 instead. [PATCH] ppc32: Fix UART initialisation on WindRiver SBC8560. The UART tristates its IRQ output when the OUT2 bit in the MCR isn't set. For reasons not known to civilised man, the hardware engineers stopped it from floating by pulling it _high_ instead of low, so if anybody requests that IRQ before OUT2 is turned on, we die in an IRQ storm. The serial8250 driver does precisely that thing, with precisely that effect. ALPHA_KLUDGE_MCR was designed to fix exactly this kind of problem, so we use it here as intended. Ideally ALPHA_KLUDGE_MCR would go away and be replaced with something like UPF_FORCE_OUT2 and UPF_FORCE_OUT1 flags, but now is not the time to get me started on a cleanup of everything about serial8250 that offends me. [PATCH] ppc32: Fix IRQ setup on WindRiver SBC8560 The internal interrupts are hardcoded to be level-triggered, but we need to make sure the OpenPIC code knows that... [PATCH] ppc32: openpic driver cpumask_t changes This fixes the PPC openpic driver to use cpumask_t where appropriate. Signed-Off-By: David Howells Signed-Off-By: Linus Torvalds [Bluetooth] Add support for another ALPS module This patch adds the specific vendor and product id's for another ALPS module which don't uses the USB Bluetooth class id. Signed-off-by: Marcel Holtmann [Bluetooth] Make use of usb_kill_urb() Now that usb_kill_urb() is in the main kernel tree it should be used. This patch makes the needed modifications to the USB Bluetooth driver. Signed-off-by: Alan Stern Signed-off-by: Marcel Holtmann [Bluetooth] Add missing entry for the HIDP support This small patch adds the missing entry about the HIDP support to the main Kconfig file of the Bluetooth subsystem. Signed-off-by: Marcel Holtmann [Bluetooth] Use a signed integer for the RSSI value The RSSI value in the inquiry response with RSSI must be a signed integer and not an unsigned one. Signed-off-by: Marcel Holtmann Remove /proc/fs/jffs2 support. It wants reimplementing sanely, preferably in sysfs instead. M-Systems DiskOnChip driver: fix DiskOnChip Millennium ECC support and fix a few compiler warnings while we're at it. Make obsolete NOR flash chip drivers depend on BROKEN. If nobody shouts soon about why the new, shiny, generic chip drivers don't work where the old ones do, they can be removed entirely. [PATCH] fix cdrom mt rainier probe Writing to RAM capable media was broken by the moving of write flag detection from probe to drive open time. The media would stay terminally RO due to the set_disk_ro() call. This fixes the code to do the right thing - the detection stays at open time (which it must, since it depends on the media), and we fail with -EROFS if the media can't be written. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] Remove all uses of '#ifdef MODULE_PARM' from kernel I got sidetracked (I do that a lot ;-) and noticed that there are only eight files in 2.6 that have code like: #ifdef MODULE_PARAM MODULE_PARAM(foo, "i"); #endif which I think is old cruft from 2.1.x times. Following patch removes all those eight (six in netfilter, one net driver and one SCSI driver). [PATCH] mmap PROT_NONE fix for NX patch This works around the current PROT_NONE problem from elf binaries that do not have the PT_GNU_STACK so that the do not have execute permission. The problem was that setting "def_flags" to include the VM_EXEC bit for compatibility reasons would also make PROT_NONE pages executable, which is obviously not correct. Signed-off-by: Daniel McNeil Signed-off-by: Linus Torvalds [PATCH] remove bogus casts of pointers to unsigned int in sound/* [PATCH] au88x0: use proper field of snd_kcontrol_t and don't try to store pointer in int The au88x0 driver tries to use the wrong private field - there are two, one of them int and another void *. While it's not a problem on 32bot boxen, it breaks on 64bit ones. Fixed. [PATCH] ic31712: when storing a bitmask in pointer field, use unsigned long [PATCH] annotated sound/pci/nm256/nm256.c [PATCH] NULL noise removal in sound/usb/* [PATCH] mark broken stuff as such in Kconfig A bunch of drivers are broken on sparc64; mark them as such in Kconfig. arlan and smctr are not 64bit-clean; again, markes as such. [PATCH] misc sparse cleanups - missing ; between default: and } in sun4setup.c - cast of pointer to unsigned long long instead of unsigned long in x86_64 signal.c - missed annotations for ioctl structure in sparc64 openpromio.h (should've been in the same patch as the rest of drivers/sbus/* annotations) - 0->NULL in list.h and pmdisk.c [PATCH] switch sys32_timer_create() to compat_alloc_user_space() switched to compat_alloc_user_space(), cleaned up. [PATCH] sparse: beginning of iovec cleanups - infrastructure Beginning of iovec cleanups - added two helpers (kernel_{send,recv}msg) that do sock_sendmsg/sock_recvmsg with kvec instead of iovec; basically, they were abstracted from earlier afs patch. They take kvec/length of kvec as separate arguments, do set_fs(), stick kvec into msghdr and call sock_...msg(). The next group of patches will switch network filesystems to use of kvec for kernel data + use of these helpers. Basically, the same thing we'd done for afs. [PATCH] sparse: iovec cleanups - smbfs smbfs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - ncpfs ncpfs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - cifs cifs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - rxrpc rxrpc (low-level part of afs) switched to kernel_...msg(); it already was using kvec instead of iovec. [PATCH] sparse: iovec cleanups - sunrpc, nfs and nfsd sunrpc, nfs and nfsd switched to use of kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - the rest the rest of iovec cleanups: nbd, dvb-net, sock.c::sock_no_sendpage(), econet over udp and ip_vs switched to use of kvec and kernel_...msg(). [PATCH] annotations and NULL noise removal in drivers/char/drm Massive, but trivial - drm annotated and got 0->NULL where needed. That patch kills ~2200 lines of warnings - out of 5400 that remained at that point. It's a pointer, dummy. Use NULL, not 0. ppc64: More NULL/0 confusion in prom.c [PATCH] 3w-9xxx.c annotated [PATCH] fbmem.c partially annotated partially annotated, fixed dereferencing of userland pointer (trivial, since we'd just copied the entire structure). [PATCH] hfs and hfsplus switched to use of ffs(3) instead of homegrown versions [PATCH] more annotations in binfmt_aout.c [PATCH] pointer-to-number cast in binfmt_elf.c done right [ARM] Fix _find_next_bit_be prototype to use 'const' qualifier _find_next_bit_be() does not have a 'const' qualifier for the first argument, so we get the following warning for a very large number of files: In file included from include/linux/sched.h:15, from include/linux/module.h:10, from drivers/mtd/maps/ixp2000.c:24: include/linux/cpumask.h: In function `__next_cpu': include/linux/cpumask.h:216: warning: passing arg 1 of `_find_next_bit_be' discards qualifiers from pointer target type Signed-off-by: Deepak Saxena [PATCH] ia64: make madt parsing quieter We already get this info in other forms from other boot messages, so kill the printing of the MADT entries as they're parsed. This patch significantly reduces the amount of output from a boot of a 512p system. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger ia64: Nuke two compiler-warnings. [PATCH] Altix serial driver updates Patch for our console driver. We converted the driver to use the serial core functions. Also some changes to use sysfs/udev and a new major number. Cc: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix inode state incoherency This patch fixes a hard-to-trigger condition, where the inode is on the inode_in_use list while it's state is dirty. In this state dirty pages are not written back in sync() or from kupdate, only from direct page reclaim. And this causes a livelock in balance_dirty_pages after a while. The actual sequence of events required to get into this state is: thread function inode state inode list ---------------------------------------------------------------------------- 1 __sync_single_inode (background) I_DIRTY sb->s_io 1 do_writepages ... I_LOCKED 2 __writeback_single_inode (sync) sleeps I_LOCKED 1 __sync_single_inode (background) finish 0 inode_in_use 2 __writeback_single_inode (sync) wakeup 0 2 __sync_single_inode (sync) 0 2 do_writepages ... I_LOCKED 3 __mark_inode_dirty I_LOCKED | I_DIRTY 2 __sync_single_inode (sync) finish I_DIRTY left on inode_in_use Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ia64: fix perfmon bug that could result in kernel hang This patch fixes a potential kernel hang in perfmon during PFM_UNLOAD_CONTEXT. This commands requires that the monitored task be stopped (except when self-monitoring). The task state tests in check_task_state() were incorrect and an actively running task was accepted for PFM_UNLOAD_CONTEXT. This eventually leads to a kernel hang. Signed-off-by: Stephane Eranian Signed-off-by: David Mosberger [PATCH] Fix memory corruption at x86-64 SMP bootup This fixes a long standing corruption bug in the x86-64 code. The SMP trampoline would corrupt page 2, which was sometimes used for other data. This corrupted the ioport/iomem list in some cases and causes oopses while read /proc/iomem. Fix is to check the correct location and don't zero it afterwards because it gets reinitialized for the next CPU anyways. Thanks to Alexander Nyberg for tracking it down. [PATCH] Fix i386 bootup with HIGHMEM+SLAB_DEBUG+NUMA and no real For some reason I booted a NUMA and SLAB_DEBUG i386 kernel on a non NUMA 512MB machine. This caused an oops at bootup in change_page_attr. The reason was that highmem_start_start page ended up zero and that triggered the highmem check in change_page_attr when the slab debug code would unmap a kernel mapping. Fix is straightforward: if there is no highmem set highmem_start_page to max_low_pfn+1 Clean up ptrace child exit case. This also fixes it for when the real parent is ignoring SIGCHLD - noted by David Mosberger. Linux 2.6.8-rc2 Ready for the kernel summit in Ottawa... [PATCH] pmac_zilog: serial minors taken failure path fix I've tracked down the core issue giving me the oops wrt pmac_zilog. When you have two serial drivers, (e.g. 8250 and PMAC_ZILOG) they both say "I want to reserve X ports starting with major TTY_MAJOR and minor 64". By the time pmac_zilog gets there, the ports it requests are already reserved. Unfortunately, init_pmz() doesn't check for pmz_register() failure, and so it merrily goes on to register the half-initialized pmac_zilog driver with the power management subsystem. This path provides a proper failure path. Also: Restore ppc configs now that I know people use AT Keyboards on CHRP and PReP machines, and the zilog driver is no longer Oops'ing. Signed-off-by: David Eger Signed-off-by: Linus Torvalds [PATCH] NX: clean up legacy binary support This cleans up legacy x86 binary support by introducing a new personality bit: READ_IMPLIES_EXEC, and implements Linus' suggestion to add the PROT_EXEC bit on the two affected syscall entry places, sys_mprotect() and sys_mmap(). If this bit is set then PROT_READ will also add the PROT_EXEC bit - as expected by legacy x86 binaries. The ELF loader will automatically set this bit when it encounters a legacy binary. This approach avoids the problems the previous ->def_flags solution caused. In particular this patch fixes the PROT_NONE problem in a cleaner way (http://lkml.org/lkml/2004/7/12/227), and it should fix the ia64 PROT_EXEC problem reported by David Mosberger. Also, mprotect(PROT_READ) done by legacy binaries will do the right thing as well. the details: - the personality bit is added to the personality mask upon exec(), within the ELF loader, but is not cleared (see the exceptions below). This means that if an environment that already has the bit exec()s a new-style binary it will still get the old behavior. - one exception are setuid/setgid binaries: these will reset the bit - thus local attackers cannot manually set the bit and circumvent NX protection. Legacy setuid binaries will still get the bit through the ELF loader. This gives us maximum flexibility in shaping compatibility environments. - selinux also clears the bit when switching SIDs via exec(). - x86 is the only arch making use of READ_IMPLIES_EXEC currently. Other arches will have the pre-NX-patch protection setup they always had. I have booted an old distro [RH 7.2] and two new PT_GNU_STACK distros [SuSE 9.2 and FC2] on an NX-capable CPU - they work just fine and all the mapping details are right. I've checked the PROT_NONE test-utility as well and it works as expected. I have checked various setuid scenarios as well involving legacy and new-style binaries. an improved setarch utility can be used to set the personality bit manually: http://redhat.com/~mingo/nx-patches/setarch-1.4-3.tar.gz the new '-X' flag does it, e.g.: ./setarch -X linux /bin/cat /proc/self/maps will trigger the old protection layout even on a new distro. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds CIFS: Add missing mount option for optionally cifs perm checks when uids on server and client do not match and for optionally overriding server setting default uid/gid of new cifs files and directories. Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] remove unneeded, unused prototypes. Suggested by Carl Spalletta Signed-off-by: Steve French (sfrench@us.ibm.com) [IPV4] Look up route with appropriate protocol when we connect(). Signed-off-by: Hideaki YOSHIFUJI [IPV6] remove rather pointless comment. Signed-off-by: Hideaki YOSHIFUJI PPC32: Typo fix in m8xx serial driver. [PATCH] ia64: update sn2_defconfig to include new console Now that Linus' tree has the new sn2 console driver, make sn2_defconfig enable it by default. The device is major 204, minor 40. Note that you'll probably have to update your elilo.conf and inittab to use the new driver, as it's called ttySG0 rather than ttyS0. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger MTD: remove some kernel 2.0 and 2.2 #ifdef's The patch below (applies against 2.6.8-rc2) removes some #ifdef's for kernel 2.0 and 2.2 from the MTD code. Signed-off-by: Adrian Bunk Signed-off-by: David Woodhouse MAINTAINERS: update MTD list Trying to send an email to mtd@infradead.org gives you the answer that you should use linux-mtd@lists.infradead.org instead. So let's update the entry in MAINTAINERS. Signed-off-by: Adrian Bunk Signed-off-by: David Woodhouse Fix JFFS2_COMPRESSION_OPTIONS in Kconfig Hi, It seems to me that JFFS2_COMPRESSION_OPTIONS depends on JFFS2_FS: Signed-off-by: David Woodhouse NAND support in JFFS2 isn't experimental any more. [PATCH] ia64: sn2 requires a 3.40 or better PROM The SGI 3.40 PROM includes a fix for the move of the init_task to region 5, so specify that in sn_sal.h. Unfortunately, the check for the minimum required version happens *after* the hang/MCA that is symptomatic of the bug, so this message also acts as an announcement of the requirement. Signed-off-by: Jesse Barnes Signed-off-by: David Mosberger kbuild: build binary rpm from pre-built tree Many times it would be nice to quickly package up a kernel tree you're working on, without having to rebuild the whole thing again from a clean source tree (like the current rpm-pkg target does). The patch below adds an "binrpm-pkg" target which uses your existing (already built) tree. Modified by me to always do a make and use binrpm-pkg. Signed-off-by: Greg Edwards Signed-off-by: Sam Ravnborg kbuild: Allow `make O= {cscope,tags}` to work Allow `make O= {cscope,tags}` to work kbuild: Rebuild .spec file when kernel version changes Make a dependency in scripts/package/Makefile to top-level Makefile forcing .spec file to be generated when kernel version changes. Signed-off-by: Sam Ravnborg [SPARC64]: Export __copy_in_user to modules. [SPARC64]: Update defconfig. [SPARC64]: Fix allnoconfig build, based upon a patch from Roland Dreier. - Make SUNOS_EMUL depend upon BINFMT_AOUT32 - Make SOLARIS_EMUL depend upon SPARC32_COMPAT - Add CONFIG_COMPAT guards, where necessary. Signed-off-by: David S. Miller [SPARC64]: Handle SBUS dma allocations larger than 1MB. Signed-off-by: David Dillow Signed-off-by: David S. Miller [PKT_SCHED]: Make sch_netem classful. Simple enhancement to netem packet scheduler that makes it classful so that the underlying pfifo default discipline can be substituted with something else (tbf, red, ...) Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Missing qdisc destroy in sch_netem. The underlying qdisc was not being properly destroyed, shows up as assertion failure on device removal. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Need delayed packet limit in sch_netem. The netem scheduler needs to limit its delayed packet queue to prevent a application burst from chewing up too much memory. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [IPV6]: Missing sparse annotation in addrconf. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [SPARC]: Fix copy_user.S with gcc 3.3 Signed-off-by: Tom Callaway Signed-off-by: David S. Miller [SPARC]: Add pci_dma_mapping_error to pci.h Signed-off-by: Tom Callaway Signed-off-by: David S. Miller [UDP]: Return true length if user specifies MSG_TRUNC. [SPARC32]: Mark William Lee Irwin III as maintainer. [CRYPTO]: Fix stack overrun in crypt(). The stack allocation in crypt() is bogus as whether tmp_src/tmp_dst is used is determined by factors unrelated to nbytes and src->length/dst->length. Since the condition for whether tmp_src/tmp_dst are used is very complex, let's allocate them always instead of guessing. This fixes a number of weird crashes including those AES crashes that people have been seeing with the 2.4 backport + ipt_conntrack. Signed-off-by: Herbert Xu Signed-off-by: James Morris Signed-off-by: David S. Miller [ATM]: use try_module_get appropriately (from Stephen Hemminger ) [IPV4]: Make raw sockets behave like udp wrt. MSG_TRUNC. [ATM]: Update Marko Kiiskila's email address. [IPSEC]: Fix IPCOMP6 ICMP type check. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [INET]: Create enum of ECN bits This patch is a preparation for an update of the ECN encap/decap code with respect to RFC3168. It creates an enum of the four code-points defined by RFC3168 and uses them throughout the inet_ecn.h file. The only non-trivial bit is in IP_ECN_set_ce/IP6_ECN_set_ce where the patch uses INET_ECN_CE instead of 1. This is OK as those functions assume that the ECT bit is already set. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [TCP]: Do not overflow 16-bit window field in tcp_select_window(). Signed-off-by: David S. Miller kbuild: Less intrusive LANG override, fixes menuconfig The locale override caused problems for some people with locale setiings different from 'C'. make menuconfig was looking bad / unuseable. This patch limit the override of locales to the part where we actually descend the kernel doing the full build of the kernel. The speed improvement is the same. make menuconfig should now be useable for all locale settings again. Thanks to Marcel Sebek for pointing out this problem and being paitent in testing. Signed-off-by: Sam Ravnborg kbuild: scripts/genksyms/parse.c_shipped needs to be rebuilt parse.c_shipped has never been regenerated after parse.y has been modified 4 months ago. Signed-off-by: Andreas Schwab Signed-off-by: Sam Ravnborg kbuild: Move modpost files to a new subdir scripts/mod Move modpost and support files to scripts/mod. Directory named mod by Sam. From: Brian Gerst Signed-off-by: Sam Ravnborg kbuild: Fix up moving of modpost A few small issues to fix the moving of modpost. A few files was missing in the commit and one change needed. Also bk ignored the files in their new location. Signed-off-by: Sam Ravnborg kbuild: Two simple kbuild patches foo1.patch: spelling correction in Makefile foo2.patch: replace SUBDIRS with M in Documentation/kbuild/modules.txt From: Kornilios Kourtis Signed-off-by: Sam Ravnborg [PATCH] Missing mnt_namespace update in copy_namespace() copy_namespace() forgets to switch the new 'mnt_namespace' field in the vfsmounts of the new namespace. [PKT_SCHED]: Remove dead timer code. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PATCH] Asus M2N notebook hides SMBus device Asus also "hides" the LPC bridge on M2N notebooks. Add it to the asus_hides_smbus PCI quirk. Fixes bug #2976 @ http://bugme.osdl.org/show_bug.cgi?id=2976 Signed-off-by: Dominik Brodowski Signed-off-by: Linus Torvalds [PATCH] clean up n_tty alloc_buf() Don't bother zeroing the allocated memory inside alloc_buf() in the n_tty line discipline. alloc_buf() is static inline and is only referenced by n_tty_open() which always clears the memory (once more). No bug, just a minor cleanup [PKT_SCHED]: Use get_cycles() for PSCHED_CPU clock source Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PATCH] is_highmem() and WANT_PAGE_VIRTUAL Add is_highmem_idx() and is_normal_idx() to determine whether a zone index is a highmem or normal zone. Use this for memmap_init_zone(). Signed-off-by: Andy Whitcroft Signed-off-by: Linus Torvalds Make "install_page()" able to handle truncated pages. This makes it much easier on the callers, no need to worry about races with vmtruncate() and friends, since "install_page()" will just cleanly handle that case and tell the caller about it. [SPARC64]: Uninline _raw_spin_lock too, saves ~30K in defconfig image. [SCTP] Set/Get default SCTP_PEER_ADDR_PARAMS for endpoint when associd and peer address are 0. Signed-off-by: Anand R. Setlur Signed-off-by: Sridhar Samudrala [SCTP] Fix data not being delivered to user in SHUTDOWN_SENT state. Also cleaned up sctp_sf_eat_data_6_2() and sctp_sf_eat_data_fast_4_4() as they have a lot of common code. Signed-off-by: Jorge Hernandez Signed-off-by: Sridhar Samudrala [SCTP] Fix issues with handling stale cookie error over multihoming associations. Signed-off-by: Jorge Hernandez Signed-off-by: Sridhar Samudrala [SCTP] Use idr_get_new_above() with a starting id of 1 to avoid returning an associd of 0. Signed-off-by: Sridhar Samudrala [SCTP] Fix missing '+' in the computation of sack chunk size in sctp_sm_pull_sack(). Signed-off-by: Jorge Hernandez Signed-off-by: Sridhar Samudrala remove unused #include From: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: David Woodhouse [PATCH] NX: allow architectures to select legacy mode dynamically On some platforms, you'll want to support READ_IMPLIES_EXEC differently depending on personality (e.g, native binary vs. x86 binary). This supports that (and makes the code more readable while at it) by replacing the old architecture-specific fixed LEGACY_BINARIES macro define with a architecture-specific "elf_read_implies_exec_binary()" helper function. For now, x86 is the only user, and sets the "read implies exec" bit for legacy apps. ia64 and x86-64 are likely to want to do their own thing. Acked by Ingo. Signed-off-by: Linus Torvalds [IPSEC]: Missing unlock in policy timer. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [AH6]: Disallow mutable bits after AH header. As we discussed before, mutable headers should not be allowed after the AH header. In fact, this appears to be the intention of RFC 2402. It is further clarified in section 3.1.1 of http://www.ietf.org/internet-drafts/draft-ietf-ipsec-rfc2402bis-07.txt This allows us to simplify the code in ah6.c. As a result, this also fixes the following issues: * Dependence on skb->h in ah6_output(). * Bogus clearing of auth_data of 2nd AH header in ipv6_clear_mutable_options(). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Make clock source configurable Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Alpha not studly enough for SCH_CLK_CPU. The cycle counter it provides overflows very quickly, on the order of 10 minutes, so it is not suitable for this purpose. Signed-off-by: David S. Miller [IPVS]: Convert to module_param. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: eql sparse cleanup. Minor 0 vs NULL cleanup Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] ia64: Update function prototype for sn_io_addr Add "const" to function prototype for sn_io_addr. Cuts boot time on simulator in half. Signed-off-by: Jack Steiner Signed-off-by: David Mosberger [SCTP] Mark chunks as ineligible for fast retransmit after they are retransmitted. Also mark any chunks that could not be fit in the PMTU sized packet as ineligible for fast retransmit. Signed-off-by: Sridhar Samudrala [PATCH] Fix ppc64 max_pfn issue I noticed excessive time in the pid hash functions on a ppc64 box. It turns out the pid hash is being sized way too small, eg on a 16GB box: PID hash table entries: 16 (order 4: 256 bytes) The reason is that the pid hash init function uses max_pfn before it was setup on ppc64. With the following patch things are good again: PID hash table entries: 4096 (order 12: 65536 bytes) Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [CIFS] xattr suport part 2: add listxattr support Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] Fix ppc64 max_pfn issue - again It turns out in the non NUMA case, max_low_pfn doesnt get initialised until init_bootmem so we need to move initialisation of max_pfn below it. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [PATCH] ppc64: exception path optimisations - We were statically predicting syscalls would be 32bit which meant every 64bit syscall was guaranteed to be mispredicted. Just let the hardware predict this one. - We shouldnt use blrl for indirect function calls, it is unlikely to be predicted correctly and corrupts the link prediction stack. We should use bctrl instead. - Statically predict a branch in the system call path, favouring calls from userspace. - Remove static prediction in pagefault path, hardware prediction should do a better job here. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds ppc64: fix more 0/NULL confusion [IPV4/IPV6]: Add myself to MAINTAINERS. Cset exclude: shemminger@osdl.org|ChangeSet|20040722205059|21273 [AH4]: Save daddr iff options are present. This is a little optimisation for AH4. When I moved the tunnel code out, I put the daddr copying code on the main path which is unnecessary since daddr is only mutable if IP options are present. This patch moves the saving and restoring of daddr under the check for the existence of IP options. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [AH6]: Replace skb by iph in clear_mutable_options. This patch replaces the skb argument in ipv6_clear_mutable_options() by an ipv6hdr. Doing so allows us to point skb->nh elsewhere when calling this function. I've also thrown in some obvious clean-ups for that function. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Use NET_IP_ALIGN in acenic. Use NET_IP_ALIGN in acenic driver. Also remove the 16 byte padding, caches can be anywhere from 16 to 256 bytes and the skb should be cacheline aligned already. Signed-off-by: Anton Blanchard Signed-off-by: David S. Miller [SCTP]: Fix mis-merge. [PATCH] sparse: simplify and tighten sparse typechecking This takes advantage of the simplified typeof semantics of sparse address spaces, (should be enough for alpha, i386, ppc, ppc64, sparc, sparc64, x86_64 - most of them didn't actually need anything to be done) and couple of missing annotations that got caught by that. Cset exclude: davem@nuts.davemloft.net|ChangeSet|20040723204655|22654 [XFRM]: Wake up km_waitq once per gc-run instead of once per state. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [IPV6]: Fix route.c gcc-3.4.x inlining error. Fixes the inline error when compiling net/ipv6/route.c with gcc-3.4.1 Signed-off-by: Con Kolivas Signed-off-by: David S. Miller [PATCH] populate nonlinear mappings unconditionally filemap_populate and shmem_populate must install even a linear file_pte, in case there was a nonlinear page or file_pte already installed there: could only happen if already VM_NONLINEAR, but no need to check that. Acked by Ingo and Hugh. Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds [PATCH] ia64: fix bug in irq_affinity_write_proc() Writing 'R' or 'r' character to /proc/irq//smp_affinity cause a kernel Oops. The following patch fixes this issue. Signed-off-by: Kenji Kaneshige Signed-off-by: David Mosberger ia64: Clean up arch/ia64/kernel/irq.c a bit. [CIFS] xattr support part 3 add query EA support to retrieve individual xattr values Signed-off-by: Steve French (sfrench@us.ibm.com) ia64: Oops, SN2 needs pending_irq_cpumask to be global. [PATCH] size_t portability fixes A lot of places assumed that size_t == unsigned; on 64bit boxen that is not true. Signed-off-by: Linus Torvalds [PATCH] appletalk SIOCADDRT fix blind dereferencing of userland pointer in appletalk SIOCADDRT handling. Signed-off-by: Linus Torvalds [PATCH] rndis fix blind dereferencing of userland pointers in procfs ->write() in rndis.c Signed-off-by: Linus Torvalds [PATCH] bluetooth annotations Signed-off-by: Linus Torvalds [PATCH] more NULL noise removal in sound/* Signed-off-by: Linus Torvalds [PATCH] #if abuse is sound/* Signed-off-by: Linus Torvalds [PATCH] tea575 fix Very confused ioctl in tea575x - it is called via video_usercopy(), but assumes that it still has userland pointers. Fixed. Signed-off-by: Linus Torvalds [PATCH] check_region fixes A couple of old ISA drivers had trivial to fix check_region() uses. Sanitized. Signed-off-by: Linus Torvalds [PATCH] dmasound annotation dmasound (core + ppc-specific parts) annotated Signed-off-by: Linus Torvalds [PATCH] misc sound/* fixes a) ALSA variant of wavefront didn't compile on gcc 2.x with debugging turned on - authors heard something about variadic macros on gcc 2.x, but screwed it up. Fixed. b) au88x0 relied on char being signed in non-trivial ways. On ppc it's not true. Fixed by explicit use of s8 (which is what that code really wants). Signed-off-by: Linus Torvalds [PATCH] broken stuff in sound/* marked as such in Kconfig a) OSS is broken on sparc64 (as in "won't compile") b) sb16_csp is broken on ppc marked as such in Kconfig Signed-off-by: Linus Torvalds [PATCH] security/selinux/hooks.c compile fix added missing #include Signed-off-by: Linus Torvalds [PATCH] openpromfs annotation Signed-off-by: Linus Torvalds [PATCH] more NULL noise removal in fs/* Signed-off-by: Linus Torvalds [PATCH] bpck6 compile fix on ppc bpck6 was b0rken on ppc in rather amusing way - it used typedef struct ... PPC; which doesn't mix with having PPC (pre)defined to 1. Fixed by renaming private typedef in question. Signed-off-by: Linus Torvalds [PATCH] impi annotation drivers/char/ipmi/* annotated, structure shared between kernel and userland (ioctls) split in two. ACPI callback in the same code used to have wrong type - it should've been void (...), not u32 (...). Fixed. Signed-off-by: Linus Torvalds [PATCH] mtd fixes Assorted mtd fixes. a) NULL noise removal b) %p pointer instead of %x (int)pointer in printks c) missed iovec->kvec replacements (basically, fixing merge problems) d) fixed type for (unused) last argument in doc_{read,write}_ecc() e) sanitized some comparisons. Signed-off-by: Linus Torvalds [PATCH] NULL noise removal in drivers/net/* That definitely duplicates a bunch of stuff in pending patches from various folks, but since it's all trivial 0->NULL replacements and patches are still not submitted and/or merged... Signed-off-by: Linus Torvalds [PATCH] #if abuse in drivers/net/* Signed-off-by: Linus Torvalds [PATCH] solaris emulation annotated trivial annotations and cleanups + proper use of vfs_...stat(). Signed-off-by: Linus Torvalds [PATCH] sparc32 emulation annotated annotated, a bunch of ioctls switched to compat_alloc_user_space() and cleaned up. Signed-off-by: Linus Torvalds [PATCH] NULL noise removal on ppc 0->NULL in arch/ppc and include/asm-ppc. [That's it for this series - there's still ~200Kb to merge, but I'd rather take a break for a couple of hours before dealing with the rest] Signed-off-by: Linus Torvalds [PATCH] drm/gamma_old_dma.h fix blind dereferencing of userland pointer Signed-off-by: Linus Torvalds [PATCH] NULL noise removal in drivers/* it could be split (all chunks are obviously independent), but I don't think that it's worth doing. Signed-off-by: Linus Torvalds [PATCH] CONFIG_MCOUNT fix for sparc64 CONFIG_MCOUNT on sparc64 is currently broken; we have both mcount and _mcount declared (and aliased to each other), but end up exporting the wrong one. As the result, with that option all modules get unresolved symbol. Signed-off-by: Linus Torvalds [PATCH] #if abuses in drivers/* Signed-off-by: Linus Torvalds [PATCH] annotations for arch/ppc and include/asm-ppc Usual set - explicit -D=1 for sparse, __sighandler_t / __sigrestore_t annotated, annotations in arch/ppc/kernel/*, etc. - same as for other platforms Signed-off-by: Linus Torvalds [PATCH] cciss compat ioctl fix cciss compat ioctls were broken (mixing kernel and userland pointers); fixed (and cleaned up) by switch to compat_alloc_user_space() and elimination of set_fs(). Signed-off-by: Linus Torvalds [PATCH] zoran switched to seq_file zoran procfs code switched to seq_file and cleaned up; a bunch of homegrown procfs glue eliminated. Signed-off-by: Linus Torvalds [PATCH] dpt_i2o annotations Signed-off-by: Linus Torvalds [PATCH] via-velocity switched use of to if_mii() Either it got missed back when if_mii() was introduced, or it got merged that way later. Signed-off-by: Linus Torvalds [PATCH] drivers/macintosh annotations Signed-off-by: Linus Torvalds [PATCH] pointer-to-int conversion fixes Assorted pointer-to-int fixes: a) some places want to take pointer modulo alignment or extract integer that was cast to pointer (which is legitimate), but do that via wrong cast, triggering sparse warnings. b) usual %x (int)ptr -> %p ptr fixes Signed-off-by: Linus Torvalds [PATCH] ffb_context annotation Signed-off-by: Linus Torvalds [PATCH] asm-ppc/reg.h namespace pollution fixes asm-ppc/reg.h defines pollutes namespace like there's no tomorrow; among other things there are LR SR0...SR15 DEC etc. That breaks quite a few drivers that should otherwise work on ppc. SR... and LR were never used by ppc code; commented out in reg.h (note that they are just aliases for SPRN_SR... and SPRN_LR). RPA commented out and its instances in ppc code (all four of them) replaced with SPRN_RPA. Ditto for DEC. The rest of the offenders (DAR and PVR) are left alone for now and #undef'ed in drivers in question. We probably want to rip all these guys out of reg.h and convert ppc users to SPRN_... forms - file ends up included in alot of places and namespace pollution like that is a Bad Thing(tm). Signed-off-by: Linus Torvalds [PATCH] missing (void) in reiserfs on big-endian boxen Usual foo ? void : non-void in reiserfs; gets triggered on big-endian platforms. Signed-off-by: Linus Torvalds [PATCH] broken stuff marked as such in Kconfig a) ppc KGDB builds only on two subarch; say so in Kconfig b) ide-pmac.c can't be a module; make it dependent on IDE=y. c) a bunch of isdn drivers is broken on ppc; marked as such d) oaknet is broken; marked as such (includes on files that do not exist, etc.) e) buslogic and cyber2000 are broken on sparc64 f) s3trio framebuffer is broken g) usual 8250-based serial is broken on sparc64; in principle it might be worth supporting (there are PCI cards of that sort), for now marked as broken (no asm/serial.h, to start with). Signed-off-by: Linus Torvalds [PATCH] drivers/ieee1394 annotation Signed-off-by: Linus Torvalds [PATCH] signed char fixes in drivers/* a couple of "replace char with explicit s8 to make sure it's really signed" fixes. Signed-off-by: Linus Torvalds [PATCH] inline reordering in drivers/* usual "shift definition of inlines before their uses" in a couple of places in drivers/* Signed-off-by: Linus Torvalds [PATCH] cpumask updates in open_pic.c (ppc) compile fixes in open_pic.c - it missed cpumask conversion in several places. Signed-off-by: Linus Torvalds [PATCH] wrong ifdef in ppc/kernel/setup.c (nvram) Wrong ifdef around ppc nvram_read_byte() - it should be CONFIG_GENERIC_NVRAM. [that's it for today; there's more (fb stuff), but I'd rather make that a separate series] Signed-off-by: Linus Torvalds ia64: Update defconfig ia64: Update for elf_read_implies_exec() macro changes in mainline tree. [CIFS] xattr support part 4 add set EA support Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] prism54 Fix reference to uninitialized pointer * oid_mgt.c is calling islpci_mgt_transaction passing the address of a pointer to the management frame. This is not being initialized by the caller. The callee only updates this pointer when successful. When not, boom. * Being ultracautious again, not only initialize in the caller, also null out the pointer unconditionally in the callee. [PATCH] prism54 Refix TRDY/RETRY_TIMEOUT * Reintroduce pushing 0 into the TRDY_TIMEOUT and RETRY_TIMEOUT registers. Make this configurable with module parameter init_pcitm. * We now have the ludicrous situation that some hardware setups require this (not even pushing 0xFF helps), whilst others don't care either way (the majority), and yet others bork if anything is pushed into these regs. If anybody can explain this (including Conexant :-) ), my ears are open. [PATCH] prism54 Fix initialization with older firmware * In the card initialization routine, we try to set the output power. For firmware < 1.0.4.3, this leads to a worrying "mgt_commit has failed .." in the log although the device continues to react normally. Fix is simple, do not try to configure output power. (which I believe we should not be doing anyway as it is probably against local country regulations) [PATCH] prism54 Fix null pointer reference (Bug 100) * prism54_get/set_debug_oid are missing checks for a null pointer. Reported in Bugzilla number 100. [SPARC64]: Kill all this silly inline memcpy handling. GCC does this well enough. Signed-off-by: David S. Miller [Bluetooth] Replace BCSP retransmitting message with BT_DBG The message "Timeout, retransmitting 1 pkts" is not an error and so change this into a debug message. Signed-off-by: Marcel Holtmann drivers: move STANDALONE to drivers/base/Kconfig Move STANDALONE from init/Kconfig to drivers/base/Kconfig . This way, it's besides PREVENT_FIRMWARE_BUILD. Signed-off-by: Adrian Bunk Signed-off-by: Sam Ravnborg [Bluetooth] Replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Marcel Holtmann PPC32: Finish support for the EmbeddedPlanet RPX8260 board. From Dan Malek and myself. kbuild: Create Makefile in output directory if != kernel tree When building a kernel using the O= syntax to save output files in a separate output directory now create a small Makefile in that same dir. This Makefile allow one to use make in the output directory without the hassle of going back to the kernel source tree. The O= option is added by this Makefile stub. Please note that the Makefile silently overwrite an old one, so changes will be lost if modified. If there is a need to tweak a Makefile in the output directory it is recommended to use the filename 'makefile', which GNU Make will try first. Signed-off-by: Sam Ravnborg kbuild: Introduce source symlink in /lib/modules/.../ Traditionally when building a kernel the source and the output files are mixed. When building a kernel using the O= syntax to save output files in a separate directory a way is needed to locate the kernel source. The implemented solution is a new symlink 'source' being added to /lib/modules/.../ used to locate source for an installed kernel. The original symlink build points to the directory containing the output files. Please note that when the kernel is build with source and output files mixed the two symlinks 'build' and 'source' will point to the same directory, thus no changes compared to before. Two options was considered: a) Adding a new symlink pointing to the output files "object" => All external modules have to specify O= to build => External modules grepping in .config or .h files in include/asm needs to be updated => External modules that do grep in source code and ordinary header files just works b) Let the build symlink point to the output files and introduce a new symlink "source" pointing to the kernel source => External module can be build without specifying O= => External modules grepping in .config or .h files in include/asm just works => External modules that do grep in source code and ordinary header files needs to be updated Based on the above option b) is considered the least painfull alternative. So to sum up: - If a distro does not use separate output dir => no change - If a distro uses separate output dir => - Trivial external module just builds - Non-trivial (build-wise) external modules are probarly broken Without this patch - If a distro does not use separate output dir => no change - If a distro uses separate output dir => - Trivial external modules had to specify O= to build, and the directory being pointed at was not obvious - grep in .config or include files in asm/ required knowledge where to locate output files Preferred syntax for building external modules are the following: make -C /lib/modules/`uname -r`/build M=`pwd` [Substituting 'M=...' with 'SUBDIRS=... modules' give same effect]. When the kernel is built using separate output directory the above invocation of make will invoke the generated Makefile located in the output directory - that again will invoke the Makefile located in the kernel source tree root. Patch includes contributions from: Andreas Gruenbacher Signed-off-by: Sam Ravnborg [PATCH] x86-64 fixes This fixes several small but serious x86-64 bugs in 2.6.8rc2: - Fix array overflow in PCI bus checking (Travis Betak) - Fix broken pci_map_sg in swiotlb (Suresh B. Siddha) - Remove bogus bus check in IOMMU code Signed-off-by: Linus Torvalds [SPARC32]: Remove duplicate pci_dma_mapping_error(). [IPV6]: Fix gcc-341 inlining for real. Signed-off-by: Con Kolivas Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [SPARC]: bbc_envctrl: Replace schedule_timeout() with msleep(). Signed-off-by: Nishanth Aravamudan Signed-off-by: David S. Miller [SPARC]: envctrl: Replace schedule_timeout() with msleep(). Signed-off-by: Nishanth Aravamudan Signed-off-by: David S. Miller [ATM]: [lec] remove unnecessary inlines (from Adrian Bunk ) Signed-off-by: Adrian Bunk Signed-off-by: Chas Williams Signed-off-by: David S. Miller [AH6]: Get things working again. Re: [AH6] Disable mutable bits after AH header Unfortunately I broke ah6_input() in that patch. Thanks to Miyazawa-san for notifying me of the problem. In that patch I removed the nh_offset parameter to ipv6_clear_mutable_options. That broke ah6_input() because it relies on that variable to set the nexthdr. The following patch fixes this by moving this work out to the caller xfrm6_rcv() where the information is already available. It also removes an unnecessary call to ip6_find_1stfragopt() in xfrm6_rcv() since nhoffp already points to the nexthdr preceding the current header. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [SPARC]: bbc_envctrl.c needs linux/delay.h [IPV6] fix typoes in macro definitions. Signed-Off-By: Hideaki YOSHIFUJI [IPV6] remove unused macro. [IPV6] fix the order of icmpv6 definitions for consistency. Signed-off-by: Hideaki YOSHIFUJI [IPV6] add missing known icmpv6 types. Signed-off-by: Hideaki YOSHIFUJI [PATCH] SATAPI despite no data I see we lost this source line in the changes since 2.6.7. But if I try SATAPI expecting no data without this source line, then my ata_piix.ko promptly dies with such complaints as: kernel: irq 18: nobody cared! With this source line, I find I can expect no data, though I still have to add auto sense to overcome: kernel: ata2: BUG: timeout without command [ata] fix reversed bit definitions in linux/ata.h The macros ata_id_has_lba() and ata_id_has_dma() seem to have their bits reversed. LBA support is bit 9 of word 49 in the identify page, whereas DMA support is bit 8 of word 49 in the identify page. [sound/oss i810] add MMIO DSP support Enclosed is a patch for the i810_audio OSS driver to support using memory-mapped I/O for those chipsets that support it. o Added a family of macros -- I810_IOREADx() and I810_IOWRITEx() -- that key off the existing card->use_mmio flag to select between using readx/writex or inx/outx for I/O operations. o Converted existing inx/outx invocations to use I810_IOREADx/I810_IOWRITEx instead. o Changed GET_CIV(), GET_LVI, and CIV_TO_LVI() not only to use I810_IOREADx/I810_IOWRITEx but also to take "card" (i.e. struct i810_card) paramter. o Removed check for "Pure MMIO interfaces" in i810_probe() -- replaced w/ (relocated) check for no I/O resources available. [sound/oss i810] misc small changes Attached is a second patch to account for (most of) Herbert Xu's comments. I have left-out the part about changing state->card to a local variable where it is used a lot. Unfortunately, that usage is somewhat pervasive and I would prefer to make those changes in a separate patch -- after I have had a chance to do some testing. If you'd prefer one patch to account for the original plus these changes, let me know and I'll be happy to provide it. # Signed-off-by: Gordon Jin # Signed-off-by: Arun Sharma # Signed-off-by: Tony Luck [PATCH] cirrusfb: discarded in section `.exit.text' from drivers/built-in.o This patch fixes the error in the subject line. [SPARC64]: Simplify and optimize ultra3 memory copies. - Use one unrolled loop instead of two - Improve performance for well aligned copies smaller than 256 bytes - Use better named local label names so that diffing between the various instances is much easier to read - Reverify exception handling Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [PKT_SCHED]: de-inline qdiscipline locking functions This qdisc code has several inline functions for locking that is only used when adding/deleting queuing disciplines; so make them functions instead. The new qdisc_lock_tree encapsulates the locking used throughout this code. Also qdisc_run() is only called from net/core/dev.c so it should be defined there. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Kill rtnl_exlock stubs. Rtnetlink has some macro's that are relics from earlier locking. They are only used a couple of places so are easy to kill. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Remove useless variable in rtnetlink_rcv_msg Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [BRIDGE]: Fix typo in br_stp.c Signed-off-by: Tommi Virtanen Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Use msleep() in sungem driver. Signed-off-by: Nishanth Aravamudan Signed-off-by: David S. Miller [IPSEC]: xfrm_user code forgets to call xfrm_probe_algs() Signed-off-by: Masahide Nakmura Signed-off-by: David S. Miller [NET]: Convert ethertap to use module_param Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Convert pktgen to use module_param Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [CIFS] xattr support for cifs filesystem part 5 of 5, add removexattr capability Signed-off-by: Steve French (sfrench@us.ibm.com) [SPARC64]: Do not duplicate compat dirent code. [CIFS] Resize cifs request buffer mempools as tcp sessions are added to avoid potential deadlocks. Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] fixes for rcu_offline_cpu, rcu_move_batch rcu_offline_cpu and rcu_move_batch have been broken since the list_head's in struct rcu_head and struct rcu_data were replaced with singly-linked lists: CC kernel/rcupdate.o kernel/rcupdate.c: In function `rcu_move_batch': kernel/rcupdate.c:222: warning: passing arg 2 of `list_add_tail' from incompatible pointer type kernel/rcupdate.c: In function `rcu_offline_cpu': kernel/rcupdate.c:239: warning: passing arg 1 of `rcu_move_batch' from incompatible pointer type kernel/rcupdate.c:240: warning: passing arg 1 of `rcu_move_batch' from incompatible pointer type kernel/rcupdate.c:236: warning: label `unlock' defined but not used Kernel crashes when you try to offline a cpu, not surprisingly. It also looks like rcu_move_batch isn't preempt-safe so I touched that up, and got rid of an unused label in rcu_offline_cpu. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix UNIX98 pty indices leak I noticed that our PPPoE/PPtP access concentrator leaks pty devices. When all 4096 indices are leaked, there was need to reboot it. The following patch fixes this problem. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: initialize sched domain table Here is a trivial patch that is required to boot the latest 2.6.7 tree on the SGI 512p system. Initialize the busy_factor in the sched_domain_init table. Otherwise, booting hangs doing excessive load balance operations. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] compat_clock_getres shouldn't return -EFAULT if res == NULL For clock_getres(clockid_t clock_id, struct timespec *res), the specification says "If res is NULL, the clock resolution is not returned." So this kind of call should succeed. The current implementation returns -EFAULT. The patch fixes the bug in compat_clock_getres(). Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] BIO page refcounting fix Hopefully fixes the free-of-a-freed-page BUG caused during CDRW writing. This also fixes a problem in the bouncing for io errors (it needs to free the pages and clear the BIO_UPTODATE flag, not set it. it's already set. passing -EIO to bio_endio() takes care of that). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] selinux: fix clearing of new personality bit on security transitions This patch moves the clearing of the new personality bit from selinux_bprm_apply_creds (called from compute_creds) to selinux_bprm_set_security (called from prepare_binprm). This ensures that the bit is cleared at the same point in exec processing as for setuid/setgid binaries, prior to setting up the new image. Signed-off-by: Stephen Smalley Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] install_page vs. vmtruncate BK is still missing one piece for Oleg's install_page/vmtruncate races. Oleg didn't explicitly ACK this, but I think he did implicitly: Oleg? The previous patch to install_page, returning an error if !page_mapping once page_table_lock is held, is not enough to guard against vmtruncate. When unmap_mapping_range already did this vma, but truncate_inode_pages has not yet done this page, page->mapping will still be set, but we must now refrain from inserting the page into the page table. Could check truncate_count, but that would need caller to read and pass it down. Instead, recheck page->index against i_size, which is updated before unmap_mapping_range. Better check page->mapping too: not really necessary, but it's accidental that index is left when mapping is reset. Also, callers are expecting -EINVAL for beyond end of file, not -EAGAIN. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swapoff mmap_sem deadlock Updating the mm lock ordering documentation drew attention to the fact that we were wrong to blithely add down_read(&mm->mmap_sem) to swapoff's unuse_process, while it holds swapcache page lock: not very likely, but it could deadlock against, say, mlock faulting a page back in from swap. But it looks like these days it's safe to drop and reacquire page lock if down_read_trylock fails: the page lock is held to stop try_to_unmap unmapping the page's ptes as fast as try_to_unuse is mapping them back in; but the recent fix for get_user_pages works to prevent that too. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] DVB major number The DVB merge forgot an important change - DVB is currently using major 250, which is "local" while devices.txt (and thus FSSTND/LSB) require it uses the officially allocated 212 major. Fortunately most 2.6 users don't currently use DVB and vendors ship devfs or versions of makedev that do the right thing and generate 212 majors. Fix below, original author: Red Hat , OSDL certificate of authorship included by reference. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dvb_usercopy() fix Fix some breakage in dvb_usercopy() introduced by sparse cleanups in -rc2. Signed-off-by: Johannes Stezenbach Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] page align emergency stack The PPC64 ABI requires the stack to be 128 byte aligned (and that can become important if AltiVec registers are saved there). In the kernel, that's usually dealt with by the fact that the stack has a page more-or-less to itself. However, the emergency stacks (used in SMP bringup and when we detect a bad stack pointer) aren't necessarily page aligned, or anything aligned for that matter. This patch applies the necessary alignement constraint to them. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove multiple IRQ optimisation ppc64 has an optimisation where it loops on get_irq until there are no more interrupts to be handled. Mark Hack notes that this optimisation hardly ever hits and costs us a potentially expensive extra read of an interrupt register every interrupt. Also make do_IRQ void, the callers never use the return value. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: cpu hotplug fix On Power4 and earlier hardware there is no need to clear the CPPR (see RPAp 479 section 18.5.4.7.2 for what little info there is on the CPPR) when stopping a cpu. On hardware that uses Power5 an undocumented change has been made that requires the CPPR to be cleared if an isolate is to be done on the stopped cpu. So the following patch lets cpu hotplug work on the recent hardware. I sent this patch to the ppc64-dev list back in mid April and Suse picked it up then for SLES9 so it has been well tested for several months. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix RAS irq handlers On pSeries systems, the firmware tells us a list of interrupt numbers that we should enable in order to detect various error conditions. When we get one of these interrupts we are supposed to call the firmware, which will work out and tell us what the error was and possibly also fix it. We were not correctly parsing the property values that tell us which interrupts need to be handled in this fashion. This patch fixes it. It exports prom_n_intr_cells from prom.c since that is needed to do the parsing properly. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: whitespace cleanup in prom.c This patch, originally from Linas Vepstas, cleans up some wonky indentation and other formatting issues in arch/ppc64/kernel/prom.c. It does not change any actual code. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 SMT bugfix This patch is fairly straightforward. maxcpus should be per SMT thread and not per physical processor. SUSE picked this up back in May (was discussed on ppc64 mailing list) and has had no trouble with it. Signed-off-by: Joel Schopp Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: HVCS driver * include/asm-ppc64/hvcserver.h New file added to wrap ppc64 architecture specific firmware calls for use by HVCS. This file provides a struct hvcs_partner_info definition, headers for partner info gathering and vterm connection and termination interfaces. * arch/ppc64/kernel/Makefile Added build directive for hvcserver.o when HVCS is configured. * arch/ppc64/kernel/hvconsole.c Exported hvc_put_chars() and hvc_get_chars() for use by HVCS. * arch/ppc64/kernel/hvcserver.c Body of hvcserver module which accompanies the hvcs module and provides ppc64 architecture firmware calls for use by HVCS. This file provides function bodies for partner info gathering and vterm connection and termination interfaces. * drivers/char/Kconfig Added CONFIG_HVCS option for both built-in version and module version of hvcs. * drivers/char/Makefile Added build directive for hvcs.o when CONFIG_HVCS is configured. * drivers/char/hvcs.c This is the device driver for the IBM Hypervisor Virtual Console Server, "hvcs". The IBM hvcs provides a tty driver interface to allow Linux user space applications access to the system consoles of logically partitioned operating systems, e.g. Linux, running on the same partitioned Power5 ppc64 system. Physical hardware consoles per partition are not practical on this hardware so system consoles are accessed by this driver using inter-partition firmware interfaces to virtual terminal devices. * Documentation/powerpc/hvcs.txt HVCS installation and usage documentation. Thanks everyone for all the help with this driver [Andrew Morton, Paul Mackerras, Ben Herrenschmidt, Dave Hansen, Paul Mackerras, Dave Boutcher, Hollis Blanchard, Santiago Leon, Brian King, Randy Dunlap]. Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix PPC44x early uart setup Fix a bug introduced in the PPC44x early uart setup from the last set of 44x fixes. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: export some DMA API symbols Exports some DMA API symbols so module clients work. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix comment in arch/ppc/platforms/pmac_pci.c Typos. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add gcc-3.4+binutils-2.14 check Add a build-time check for gcc-3.4 and binutils-2.14. They don't play well together. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] macintosh/adb: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays the desired time. Signed-off-by: Nishanth Aravamudan Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ide/pmac: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the desired delay. Signed-off-by: Nishanth Aravamudan Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] macintosh/mediabay: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays the desired time. Signed-off-by: Nishanth Aravamudan Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/macintosh/macserial.c MIN/MAX removal Removes unnecessary min/max macros and changes calls to use kernel.h macros instead. Signed-off-by: Maximilian Attems Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make get_user_pages() work again for ia64 gate area Changeset roland@redhat.com[torvalds]|ChangeSet|20040624165002|30880 inadvertently broke ia64 because the patch assumed that pgd_offset_k() is just an optimization of pgd_offset(), which it is not. This patch fixes the problem by introducing pgd_offset_gate(). On architectures on which the gate area lives in the user's address-space, this should be aliased to pgd_offset() and on architectures on which the gate area lives in the kernel-mapped segment, this should be aliased to pgd_offset_k(). This bug was found and tracked down by Peter Chubb. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix rivafb's NV_ARCH_, cleanup DEBUG, backlight control on ppc - fixes the PCI-IDs (needed to get it to work on at least the NV17) - cleans up the DEBUG option (similar to the new radeonfb). This also makes it easy to replace printk by btext_printf() (on ppc) or similar to ease debugging of the fb code when all else fails. - adds backlight control for Apple powerbooks Signed-off-by: Guido Guenther Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlbfs vm_pgoff bugs 1. hugetlbfs_file_mmap() must check that vm_pgoff is hugepage aligned. 2. hugetlb_vmtruncate_list() confuses << with >> while converting vm_pgoff to huge page offset, and zaps wrong area. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fdomain_cs needs ISA drivers/scsi/pcmcia/fdomain_cs.ko needs unknown symbol isa_memcpy_fromio drivers/scsi/pcmcia/fdomain_cs.ko needs unknown symbol isa_readb iirc the isa bus isn't available on ppc. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v850: Define find_first_bit Signed-off-by: Miles Bader Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radeonfb x86_64 fix Fix radeonfb and aty128fb on x86_64 by using the correct ifdef. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sign fix in swapfile.c CC mm/swapfile.o mm/swapfile.c: In function `scan_swap_map': mm/swapfile.c:114: warning: comparison between signed and unsigned Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove dead comment in mm/filemap.c Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix for buffer limit for long in sysctl.c Fix a bug in do_proc_doulongvec_minmax() where the the string buffer was too short to parse a 64-bit number expressed in decimal. That was causing problems with entries in /proc/sys using long and allowing large number (such as -1) Signed-off-by: Stephane Eranian Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ipmi_msghandler module load failure fix On a 2.6.7 kernel, when I try to modprobe ipmi_msghandler, it fails to load with following message: FATAL: Error inserting ipmi_msghandler (/lib/modules/2.6.7/kernel/drivers/char/ipmi/ipmi_msghandler.ko): Invalid module format And there is an error message in dmesg: ipmi_msghandler: init symbol 0xa000000200058080 used in module code at a000000200031b32 What I have been able to determine is that ipmi_msghandler.c defines ipmi_init_msghandler() as the module_init() routine and then it also calls ipmi_init_msghandler() diretcly from couple of other places. This does not seem to be okay in 2.6.7 kernel. I was able to fix this by defining a new module_init routine which in turn calls ipmi_init_msghandler(). I also removed __init from ipmi_init_msghandler() since it gets called from ipmi_open() on an open of the ipmi device file. So I would think we want to keep ipmi_init_msghandler() around even after initialization. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove scripts/mkconfigs This script is no longer used after the patch to consolidate the stored configs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix readahead breakage for sequential after random reads Current readahead logic is broken when a random read pattern is followed by a long sequential read. The cause is that on a window miss ra->next_size is set to ra->average, but ra->average is only updated at the end of a sequence, so window size will remain 1 until the end of the sequential read. This patch fixes this by taking the current sequence length into account (code taken from towards end of page_cache_readahead()), and also setting ra->average to a decent value in handle_ra_miss() when sequential access is detected. Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MAINTAINERS: update mailing list for osst This list has been on sourceforge for a while now, please apply this patch to make MAINTAINERS reflect that. Signed-off-by: Willem Riede Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k 68060 errata I14 M68k: gcc lately manages to generate the code sequence described in the 060 errata I14, so use the described workaround (from Roman Zippel) Signed-off-by: Roman Zippel Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k ifpsp060 68060 Integer Support Package: Fix _060_real_lock_page(): test %d0 before actually using it (from Roman Zippel) Signed-off-by: Roman Zippel Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse missing void M68k: Add missing `void' parameters (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse #if vs. #ifdef M68k: Use #ifdef instead of #if (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse void return M68k: Don't return anything in functions returning void (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse extern M68k: Remove `extern' at function definition (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse inline M68k: Define inline functions before use (found by sparse) Affected drivers: - Atari floppy - Amiga A2232 serial - Amiga Fastlane SCSI - Mac/PowerMac Valkyrie frame buffer Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dsp56k sparse const Atari dsp56k: Add missing `const' keywords (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k sparse floating point M68k: Replace floating point by integer constants (found by sparse) Affected drivers: - Amiga frame buffer - ATI Mach64 frame buffer Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dnfb sparse struct init Apollo Frame buffer: Fix C99 struct initializers (found by sparse) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] amifb sparse &= Amiga Frame buffer: Use `&' instead of `&=' (found by sparse, present since at least 2.0.x) Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m68k hardirq.h M68k: Add missing #include Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dmasound paths Dmasound was moved to sound/oss/ a while ago Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k bitops M68k: Add `volatile' to some bitops parameters, as this is required by the cpumask code in 2.6.8-rc1. Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k checksum include M68k: Add missing include, showing up due to include reshuffling in 2.6.8-rc1 Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k pgalloc fixup M68k: Fix build after surgery in 2.6.8-rc1: - Add missing include on machines with a standard m68k MMU - Convert __pte_free_tlb() to a macro (like it is on most other archs) on Sun-3, to avoid include hell Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] M68k Maintainership M68k maintainership update: - Transfer maintainership to Roman and me (ack'ed by Jes and Roman) - Update main website URL - Add Linux/m68k CVS repository website Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Multi-Tech, SyncLink, Applicom serial Multi-Tech, Microgate SyncLink, and Applicom serial unconditionally depend on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] !PCI warnings: Moxa serial Kill warnings in MOXA Intellio and Smartio multiport serial drivers when !PCI. Also kill warnings about unused variables in the non-modular case. Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] !PCI warnings: Specialix serial Kill warnings in Specialix serial driver when !PCI. Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: VIA686A i2c VIA686A i2c unconditionally depends on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI DMA API: IEEE1394 core and SBP-2 IEEE1394 core and SBP-2 unconditionally depend on the PCI DMA API, so mark them broken if !PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Fritz!PCI/PCIv2/PnP and HYSDN Fritz!PCI/PCIv2/PnP and HYSDN unconditionally depend on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] !PCI warnings: Hisax ISDN Kill warnings in Hisax ISDN drivers when !PCI. Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Guillemot MAXI Radio FM 2000 Guillemot MAXI Radio FM 2000 unconditionally depends on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Technisat Skystar2 PCI Technisat Skystar2 PCI unconditionally depends on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI DMA API: Cisco/Aironet 34X/35X/4500/4800 Cisco/Aironet 34X/35X/4500/4800 unconditionally depends on the PCI DMA API, so mark it broken if !PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Toshiba and VIA FIR Toshiba and VIA FIR unconditionally depend on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] depends on PCI: Matrox 1-wire Matrox 1-wire unconditionally depends on PCI Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Dallas 1-wire delay.h Dallas 1-wire: never include directly Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cirrusfb: update for amiga (zorro) Cirrusfb updates: - Cirrusfb depends on Zorro or PCI - Revive Zorro support, using new Zorro driver framework - Merge PCI and Zorro code where possible - Use C99 initializers - Kill superfluous whitespace - #undef I/O ops before redefining them on Amiga From: Geert Uytterhoeven Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] page_cache_readahead unused variable Removal of unused variable in mm/readahead.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove faulty __init's from drivers/video/fbmem.c From: Geert Uytterhoeven These four are called from fb_show_logo, which is exported symbol, called by fbcon_switch. From: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Export all functions in lib/string.c Quite a few functions in lib/string.c are not exported. I ran into this trying to use strnchr() in a module. This patch - exports every function defined in lib/string.c - adds some missing __HAVE_ARCH_xxx defines for i386 - gets rid of the exports of functions from lib/string.c in arch/s390 (BTW, why is s390 exporting things NOVERS?) Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hlist_for_each_safe cleanup Make code for hlist_for_each_safe use better code (same as hlist_for_each_entry_safe). Get rid of comment about prefetch, because that was fixed a while ago. Only current use of this is in the bridge code, that I maintain. Signed-off-by: Stephen Hemminger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] front buttons wouldn't mute ESS Maestro Here is a small fix to enable muting ESS Maestro sound card thanks to the up/down buttons: when has reached the driver's minimum (! this is something like -dB value), just mute. (It was working in OSS driver, but not in ALSA) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Config file for laptop mode. From: Dax Kelson Add support for a external configuration file for /sbin/laptop_mode, and /etc/acpi/actions/battery.sh. Convert battery.sh to use CPUFreq (off by default) instead of CPU throttling (that was off by default). Cleanup some formating for 80 columns. All changes were written by me on a plane flight from Philadelphia to Salt Lake City on July 9th. :) (Note from Bart Samwel: was submitted to Linus earlier, this patch is unchanged from that. I needed to submit this into -mm for now because my other changes are dependent on Dax's changes.) Signed-off-by: Bart Samwel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add documentation about /proc/sys/vm/laptop_mode to various docs. From: Bart Samwel A bunch of small laptop mode updates: * Mention the laptop_mode and block_dump sysctls in the relevant docs, referring to the laptop-mode.txt. Improve description of what the laptop_mode knob means (i.e. seconds between last I/O and automatic sync). * Document the most relevant config file options. * Change the installation instructions in the laptop mode doc to describe the ACPI-bound version first, because this is the easiest. Explain the non-ACPI version afterwards. Added a reference to my "packaged version" of the scripts. * Move the setting of hdparm and cpu frequency out of the ACPI script and into the core laptop mode script. Add config option DO_HD to enable hdparm. Add config setting HD to set device to do hdparm on. Rename Dax's CPU_MANAGE to DO_CPU, with 0/1 instead of yes/no, to improve consistency. * Fix a problem where the root filesystem wouln't be remounted when /etc/mtab listed its type as "unknown". Deduce the type of "unknown" filesystems from /etc/fstab. This depends on the patch that adds config files, which was submitted to Linus by Dax Kelson on July 10. Signed-off-by: Bart Samwel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Automatically disable laptop mode when battery almost runs out. From: Jan Topinski Add support to automatically disable laptop mode when the battery almost runs out. This prevents data loss when the battery actually runs out. Signed-off-by: Bart Samwel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: snd-powermac requires i2c The alsa driver for powermacs requires i2c support. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext2_readdir() return value fix ext2_readdir() is ignoring the set error return values and always returns 0. Signed-off-by: Jan Blunck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ncpfs: setattr return value fix Arjan's new warning found a bug! fs/ncpfs/inode.c: In function `ncp_notify_change': fs/ncpfs/inode.c:960: warning: ignoring return value of `inode_setattr', declared with attribute warn_unused_result Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Recommend 'noapic' when timer via IOAPIC fails We might as well recommend the user boot with the noapic kernel parameter instead of filling poor Ingo's mailbox. Signed-off-by: Zwane Mwaikambo Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes s390 core changes: - Rework system call entry cleanup code to fix a potential asynchronous interrupt stack overflow if the user stack pointer happens to be in the same range as the asynchronous stack. - Replace broken schedule_timeout call with msleep. - Regenerate default configuration Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: zfcp host adapter. From: Heiko Carstens From: Maxim Shchetynin zfcp host adapter changes: - Get rid of ZFCP_WAIT_EVENT_TIMEOUT macro. - Correct an error log mesage. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: network driver changes From: Ursula Braun-Krahl From: Thomas Spatzier From: Peter Tiedemann network driver changes. - iucv: add missing symbolic links between /sys/bus/iucv/drivers/netiucv and /sys/class/net. - iucv: make use of the debug feature. - iucv: 0 vs. NULL cleanup, avoid build warnings. - iucv: remove unnecessary -ENODEV check after call to iucv_declare_buffer. - ctc: adjust debug feature log levels. - lcs: replace broken schedule_timeout call with msleep. - qeth: add missing link type. - qeth: treat add_hhlen attribute as decimal value. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lost error code in rescan_partitions This fixes a path where an error from reloading the partition table could be lost. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] trivial doc patch for partitions It's slightly hard to see how these variables are used; this patch adds a short description. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Subject: PATCH: fix bogus ioctl return in mtrr This is fairly self explanatory - ENOIOCTLCMD is an internal code outside of the -1 to -511 range. The correct return for an unknown ioctl is -ENOTTY although some Linux devices return the incorrect -EINVAL result. Patch-By: Alan Cox OSDL Developer Certificate of Origin 1.0 included herein by reference Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove boot98 Remove the orphaned PC9800 boot code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] writepages drops bh on not uptodate page I think I understood why some ext2 fs corruption still happens even after the last i_size fix. what happened I believe is that the writepages layer got a not a fully uptodate page (in turn with bh mapped on top of it), and then right before unlocking the page and entering the writeback mode, it freed all the bh. Without bh a not uptodate page will trigger a full readpage from disk, that overwrites the pagecache before the multi-bio gets submitted, generating fs corruption. I believe the below patch should fix it (untested) against kernel CVS. The testcases developed by Kurt showed the pagecache being overwritten with on-disk data at block offsets, and Chris as well was wondering about races between wait_on_page_writeback and readpage. the below fix just explains everything we've seen since not-fully-uptodate pages must have always bh on them and the below patch enforces just that invariant, and it should fix our pagecache-overwritten-by-disk-data problem. Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] convert ipmi_watchdog to use module option nowayout Convert ipmi_watchdog to also use module option `nowayout' as is done in other watchdog drivers. From: Corey Minyard The patch is good (same style as other watchdogs), but needs to have some documentation updated. I've tacked that on. Signed-off-by: Arkadiusz Miskiewicz Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark swim3 floppy controller as removable device Mark the mac floppy controller driver as removable media. This prevents an entry in /proc/partitions. Several tools will not try to access the floppy anymore with this change. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] comment "ptrace_list" and "children" members Document the purpose of the "ptrace_list/ptrace_children" and "children/sibling" lists. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Watchdog driver for Intel IXP2000 Network Processor Following patch adds support for the watchdog driver embedded in Intel's IXP2000 family of network processors. The architecture-specific bits of IXP2000 support will be merged upstream via the ARM tree once all the various drivers have been merged. Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix up HP copyright & license text Fix up HP copyrights and add licensing terms (GPL v2) for hp-agp.c and pcdp. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove dead code from copy_process() Don't assign to `retval' twice in a row. Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: documentation update Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [ppc] Add basic support for the Freescale MPC52xx embedded CPU and the LITE5200 platform Signed-off-by: Sylvain Munaut [serial/ppc] Add support for MPC52xx PSCs. Can be used as serial port and console. Compliant with the OCP driver model. Signed-off-by: Sylvain Munaut [CIFS] fix smb return code Signed-off-by: Steve French (sfrench@us.ibm.com) [BRIDGE]: Propagate bridge internal MTU changes Need to propagate MTU changes that the bridge does to it's pseudo interface up to others. There ends up being a double call to br_min_mtu() but that's harmless. Cleans up the EXPORT_SYMBOLS including dev_change_flags which is used by vlan. Shouldn't be basing exports on kernel config options like this. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: dev_xmit cleanup The br_dev_xmit function was broken in two pieces (needlessly). Put it back together. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: linkstate handling This makes bridge port status reflect both the state of the interface from software (up/down) and the carrier. It makes STP handle link failure (cable breakage, etc). The original concept comes from a Mark Ruijter who implemented it differently. My way is simpler and requires no polling. Obviously, this link state detection will only work if the network card handles the events properly. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: forwarding table RCU Convert the bridge forwarding database over to using RCU. This avoids a read_lock and atomic_inc/dec in the fast path of output. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [BRIDGE]: RCU fix Follow up to earlier RCU patch. Since now using RCU, need to use deferred free. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH 1/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 2/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 3/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 4/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 5/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 6/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 7/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 8/8] gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PATCH 1/1]: net/sunrpc/xprt.c gcc341 inlining fix From: Mikael Pettersson gcc-3.4.1 errors out in 2.6.8-rc1-mm1 at net/sunrpc/xprt.c: net/sunrpc/xprt.c: In function 'xprt_reserve': net/sunrpc/xprt.c:84: sorry, unimplemented: inlining failed in call to 'do_xprt_reserve': function body not available net/sunrpc/xprt.c:1307: sorry, unimplemented: called from here make[2]: *** [net/sunrpc/xprt.o] Error 1 make[1]: *** [net/sunrpc] Error 2 make: *** [net] Error 2 do_xprt_reserve() is marked inline but used defore its function body is available. Moving it before its only caller fixes the problem. Signed-off-by: Mikael Pettersson Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [PKT_SCHED]: Fix pkt_cls.h incompatabilities. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [NET]: Allow MD5 to be a module I found that recent 2.6 kernels no longer allowed me to build MD5 as a module even though everything that used it were modules (including ipv6 and sctp). It turns out that there were boolean options selecting MD5 in the Kconfig files. Due to limitations in the current kconfig implementation, this forces MD5 to be a boolean as well. The usual workaround in these cases is to move the selection up to the closest tristate. This is what the following patch does. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Convert ROSE to use module_param. Switch to module_param and the hash list can be local. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Convert netrom to use module_param. Convert Netrom to use module_param Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [SPARC]: sparc64 openpromio.h needs compiler.h, sync sparc32 [NET]: Decrease skb->cb[] to 40 bytes. No control block usage, even on 64-bit, needs the full current 48 bytes. This brings sk_buff size down to 256 bytes on 64-bit platforms and fixes some performance regressions due to the addition of the input_dev member. Signed-off-by: David S. Miller [AH6]: Rearrange routing headers This patch rearranges the IPv6 routing header so that the destination addresses appear in the order as they would on the destination. This is specified in Appendix A2 of RFC 2402. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Move generic encap code into xfrm6_output. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [XFRM]: Declare xfrm6_output in net/xfrm.h [DMA]: Fix example code in DMA-mapping.txt Spotted by Jack Spaar Signed-off-by: David S. Miller [PATCH] ppc64: hash table races fixes This fixes some possible rare issues with the hash code beeing called with interrupts enabled from update_mmu_cache, and fixes some races in the iSeries low level htab code by adding an array of spinlocks This is actually an old patch already present in SLES kernel and that got "missed" somewhat in the main tree, adapted to recent changes. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: fix memcpy_to/from_io The ppc64 implementation of memcpy_to/from_io was bogus (used memcpy which uses cache hints and thus is broken on non cacheable IO space). This re-implements them with some simple/gross C code doing 32 bits accesses when aligned and bytes accesses when not. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] con_font_op split Preparations for cleanups: con_font_op() is turned into a switch calling con_font_{get,set,default,copy} depending on the operation required; method ->con_font_op() also split, with NULL resulting in -ENOSYS on operation in question. Code that used to be in con_font_op() got slightly cleaned up after move into new helpers (we are beginning to untangle the mess; there will be more cleanups in the next patches). Methods are currently using exact same arguments as old ->con_font_op(). That will change in subsequent patches, method by method (right now there's a hell of a scary field reuse between them, making impossible to do any static checks and practically begging for bugs). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] con_font_default sanitized ->con_font_default() sanitized. We copy font name (if any) from userland in the caller and pass it explicitly. We are also beginning to get rid of console_font_op in method arguments. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] con_font_copy sanitized ->con_font_copy() sanitized. We extract the number of console to copy the font from in the caller (it's taken from the field of console_font_op that is normally used for font height - messy even for an ioctl, but that animal used to be passed all the way down into console drivers). With decoding done in con_font_copy(), we simply pass source console number into the method. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] con_set_font sanitized con_font_set() sanitized. We are passing console_font and flags into the method in separate arguments and we are not messing with console_font_op->data anymore - it's a userland pointer (to be annotated several patches later in the series, due to another abuse of console_font_op that needs to be fixed first), while console_font->data is kernel one and they don't mix anymore. We also do a sanity check (font width > 0) in the caller instead of method instances, since we are already checking for width <= 32 and height <= 32 there; doesn't make sense leaving that one in method instances. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] fbcon_do_set_font() sanitized fbcon internal cleanup. Instead of passing console_font_op into fbcon_do_set_font() we pass width/height directly. Amusing (but harmless) bug fixed there: if (!w > 32) { bogus code that fortunately never got triggered } Fixed by removal of the junk in question (and yes, it's verifiable junk - it would not do anything even if we replaced the check with intended !(w > 32)). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] con_get_font sanitized ->con_font_get() sanitized. We pass console_font * to method instead of console_font_op * and do not mess with mixing ->data in these guys. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] console_font_op annotated ->vc_font switched to console_font (from console_font_op, of all things!) console_font_op annotated (->data is finally makred __user). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] fb_cursor() fixes Massive leaks fixed in fb_cursor(). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cmap annotations fb_set_cmap() and fb_copy_cmap() split into kernel and userland versions. fb_cmap, fb_image and fb_cursor split and annotated. fixed bug in sbuslib.c that used to call "userland" version of fb_set_cmap() when kernel one was need (RGB data was already copied into kernel space). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds sn_console.c: move sn_debug_printf to only compile for DEBUG early printk needs to handle missing carriage returns Signed-off-by: Pat Gefre Signed-off-by: Tony Luck [SPARC64]: Update defconfig. bte_error.c: bte.c: After working with the chip designer some more, we have determined one more hardware register we were supposed to write to ensure the SHUB chip was ready for future transfers. This patch fixes that. This also allowed us to eliminate a udelay which was working around the problem. During retesting, we uncovered a race condition where transfer status was changed by a different cpu after we were expecting one value which cascaded to additional problems. This patch uses a local variable to also eliminate that race. Signed-off-by: Robin Holt Signed-off-by: Tony Luck [NET]: Kill NET_FASTROUTE, does nothing and suffers from major bitrot. Based up suggestion/changes from Jeff Garzik. Signed-off-by: David S. Miller [CIFS] remove sparse pointer warning Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] inline fixes in net/* * in ipv6/route.c: made ipv6_advmss() inlined again (and moved it up) * in sunrpc/xprt.c: inlining fix: moved do_xprt_reserve() up Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] annotations in drivers/video Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: ftape ftape got annotations and NULL noise removals. Propagated the dependency on alpha/i386/amd64 to Kconfig (it's already enforced by #error) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: istallion istallion annotated, cleaned up, a bunch of useless verify_area() removed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: stallion stallion annotated, cleaned up, a bunch of useless verify_area() removed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: drivers/char/* the rest of BROKEN_ON_SMP drivers in drivers/char sparsified. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] NULL noise removal in skfp Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] #if abuses Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ARM initial annotations Usual set of initial annotations for a platform. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: more in isdn annotations and NULL noise removals in drivres/isdn (more BROKEN_ON_SMP stuff) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: more in drivers/net drivers/net BROKEN_ON_SMP annotations and NULL noise removals. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] size_t portability fixes more size_t fixes (%d -> %zd) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] signed char portability fix code using atm_cirange fields assumes that they are signed; make that explicit by s/char/signed char/. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparse: misc cleanups all sorts of minor stuff - basically, all chunks are independent here, but IMO that one is not worth splitting. Contains: * pmac_cpufreq.c: declaration in the middle of a block. * sys_ia32.c: couple of trivial annotations. * ipmi_si_intf.c: should be using asm/irq.h instead of linux/irq.h * synclink_cs.c: assignment-in-conditional with nobody ever looking at the variable we are assigning to afterwards; variable removed. * sbni.c: s/__volatile/__volatile__ * matroxfb_base.h: got rid of ((u32 *)p)++ * asm-ppc/checksum.h and asm-sparc64/floppy.h: NULL noise removal * amd64 compat.h: missing L in long constant. * mtd-abi.h: annotated ioctl structure * sysctl.c: corrected annotations in extern Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [Bluetooth] Send HCI_Reset for ISSC USB dongles For the USB dongles from ISSC the first command must be a HCI_Reset, because otherwise the inquiry procedures won't work. Signed-off-by: Marcel Holtmann [Bluetooth] Fix resetting to default filters The problem is that after a successful connection between the Windows Bluetooth stack and the Linux Bluez stack, no packets from the device ever reach the PC running Windows XP Service Pack 2. That is, a ping from the PC never receives a response, and a ping from BlueZ never reaches the PC. Linux packet statistics show that the PC packets are received, but all return traffic seems to be routed over the loopback interface. Immediately after creating the BNEP connection with BlueZ, the Windows Bluetooth stack sends a BNEP_FILTER_NET_TYPE_SET_MSG with an effective length of zero. BlueZ interprets this message to mean that no filter ranges should be allowed. The code zeros the first entry in the filter list, which is than interpreted as meaning that no ranges of acceptable packets are available. This interpretation is wrong and leads to all packets being rejected by BNEP. The Bluetooth BNEP specification clearly states the following: The length (in octets) of this message is 4+4*N, where N is the number of disjoint ranges of Networking protocol types that form the complete set. Note that N=0 (empty set) denotes a reset to default filters (if any) supported by the remote device. Signed-off-by: Marcel Holtmann [PATCH] ppc32: fix compilation with binutils-2.15 Currently, ppc32 will not always compile with binutils-2.15. The issue is that binutils has become even more strict about which opcodes can be used with which CPU flags. The problem is that we have a number of cases where we compile with altivec instructions (with runtime checks to make sure we can actually run them) in code that's not altivec specific. The fix for this is to always pass in -maltivec on CONFIG_6xx. To do this cleanly, we split our AFLAGS definition up into aflags-$(CONFIG_FOO). Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PATCH] slab memory shrinking balancing fix The logic in shrink_slab tries to balance the proportion of slab which it scans against the proportion of pagecache which the caller scanned. Problem is that with a large number of highmem LRU pages and a small number of lowmem LRU pages, the amount of pagecache scanning appears to be very small, so we don't push slab hard enough. The patch changes things so that for, say, a GFP_KERNEL allocation attempt we only consider ZONE_NORMAL and ZONE_DMA when calculating "what proportion of the LRU did the caller just scan". This will have the effect of shrinking slab harder in response to GFP_KERNEL allocations than for GFP_HIGHMEM allocations. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PATCH: Fix HPT366 crash and support HPT372N On a board containing the HPT372N IDE controller the 2.6.x series kernels will misbehave. If the HPT372N is set up with the newer PCI identifier it is ignored. If it is set up with the HPT372 identifier then the kernel crashes on boot. This patch is a forward port of my 2.4 driver fixes that have been in 2.4 for a year but somehow escaped 2.6. Ronny Buchmann caught a couple of merge details I missed and those are fixed in this diff too. As well as adding 372N support this also fixes the unknown revision case to avoid crashes should any future 37x variants with weird class_rev's appear Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds [CIFS] Update readme and todo lists for cifs vfs Signed-off-by: Steve French (sfrench@us.ibm.com) [CRYPTO]: Add i586 optimized AES Below is an updated version of patch from Fruhwirth which integrates the Gladman AES code into the crypto API. I've tried to ensure that this is done as simply as possible: the user gets the asm version by default if it's suitable. I've also now added the alternate GPL licensing provided by Brian Gladman, and licensed the code as GPL. Signed-off-by: James Morris Signed-off-by: David S. Miller [IPSEC]: Fix SPI generation by netlink_get_spi() The issue is that two successive calls to netlink_get_spi is returning the same SA. Since netlink_get_spi is meant to be a creation operation this is incorrect. The netlink_get_spi operation is modelled off the PFKEY SADB_GETSPI command which is specified in RFC 2367. The purpose of SADB_GETSPI is to create a new larval SA that can then be filled in by SADB_UPDATE. Its semantics does not allow two SADB_GETSPI calls to return the same SA, even if there is no SADB_UPDATE call in between. The reason the second netlink_get_spi is returning the same SA is because in find_acq(), the code is looking at all larval states as opposed to only larval states with an SPI of zero. Since the only other caller of find_acq() -- xfrm_state_add() intentionally ignores all return values with a non-zero SPI, it is safe to not look at SAs with non-zero SPIs at all in find_acq(). The following patch does exactly that. In fact, the find_acq() call in xfrm_state_add() is a remnant from the days when we had xfrm_state_replace() instead of xfrm_state_add() and xfrm_state_update(). It can now be safely removed. I'll post a separate patch for that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Remove redundant check in xfrm_state_add() This is the patch referred to in the netlink_get_spi thread. I was actually wrong about the reason for this patch though. Firstly it's the SPI check that is redundant and not the find_acq() call. And it's redundant because of the find_acq() patch, not because of the fact that this is in xfrm_state_add(). Now that find_acq() only returns SAs with SPIs, we don't need to check this in xfrm_state_add() anymore. We do still need the call though to clean up leftover larval states. Another side-effect of the change is that we can move the existence check above find_acq() since find_acq() will never return any SAs matching the SPI we're trying to add (It doesn't need to because if an SA with a matching SPI existed, it would've been returned by state_lookup() already). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: xfrm_alloc_spi always succeeds on non-trivial range xfrm_alloc_spi will always succeed if minspi < maxspi, even if minspi + 1 == maxspi. If the range is already occupied this will obviously lead to breakage. Of course this is very unlikely to occur in reality due to the size of the range. Although with IPCOMP it might actually happen on a very large server. The fix is obivous. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PF_KEY]: spirange should be in host byte order. I'm looking through the xfrm_alloc_spi stuff and noticed that the netlink alloc_spi function takes the range in host order while the PFKEY alloc_spi function takes them in network order. First I thought that I stuffed up since I was the one who changed the code in the netlink interface to take them in host order :) But reading RFC 2367 seems to indicate otherwise. It says that all fields are host order unless specified otherwise. And the spirange fields are not specified to be network order at all. Looking at the existing PFKEY users: User Space ---------- Openswan - Doesn't use PFKEY for this. Racoon - Puts zeros in there so it doesn't care. However its test-pfkey program stores things in host order. ISAKMPD - Stores things in host order. So the conclusion is that we can and should change our PFKEY implementation to use host order for these fields. This patch does exactly that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Fix UDP decap code. The missing break causes the packet to be tested against both encapsulation types, one will always fail. Signed-off-by: bert hubert Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] ethtool_get_regs copy right number of bytes to user If regs.len is smaller than reglen it's possible to copy more bytes out than the user asked for. Signed-off-by: Chris Wright [NET]: Update NET_SCH_NETEM Kconfig help text. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller [NETFILTER]: Fix compilation of ip_nat_snmp_basic.c Please sumbit before 2.6.8-final, this just moves some code in order to make gcc happy. Thanks! Signed-off-by: Adrian Bunk Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] ppc32: Workaround new MPC745x CPU erratas The latest versions of Motorola erratas for the MPC745x CPUs (and 744x) adds a couple of nasty ones for which we really want workarounds in the kernel. One is to disable the BTIC branch target cache on some revs (too bad for performances...) and the other one is to force cacheable memory pages to always be marked as SMP coherent even on UP systems (I didn't measure significant perfs impact with this one). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] sched: use for_each_cpu The per cpu schedule counters need to be summed up over all possible cpus. When testing hotplug cpu remove I saw the sum of the online cpu count for nr_uninterruptible go negative which made the load average go nuts. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix BSD accounting cross-platform compatibility BSD accounting cross-platform compatibility is a new feature of 2.6.8 and thus not crucial, but it'd be nice not to have kernels writing wrong file formats out in the wild. The endianness detection logic I wanted to suppose for userspace turned out to be bogus. So just do it the simple way and store endianness info together with the version number. Signed-off-by: Tim Schmielau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: __make_room() warning fix arch/ppc64/kernel/prom.c: In function `__make_room': arch/ppc64/kernel/prom.c:1415: warning: unused variable `offset' Signed-off-by: Dave Hansen Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix off-by-one in mem_init() lmb_end_of_DRAM() returns the address of the end of RAM, not the starting address of the last page. We've been accessing mem_map[] out of bounds for quite a while. But, it's just a read, so it's probably never caused a real problem. But, during my port of CONFIG_NONLINEAR to ppc64, I have a check to make sure that all __va() calls are given with valid physical addresses. This code tripped that check. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: struct pci_controller cleanup The patch below removes the unused member "pci_io_offset" from struct pci_controller. If there are no problems, please apply. Signed-off-by: John Rose Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: ISA device tree node refcount fix Moves a misplaced of_node_put(). In the existing code, the node in question is used just after its refcount is decremented. Signed-off-by: John Rose Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix RAS irq handlers Both arch/ppc64/kernel/ras.c and arch/ppc64/kernel/rtasd.c have a spinlock variable declared static called "log_lock". Since the code in these files interact quit a lot, having two different locks with identical names is manifestly confusing. This patch renames both locks to something a little clearer. In the case of ras.c it also renames the buffer protected by the lock to a more usefullly greppable name. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix hotplug irq migration code In migrate_irqs_away we werent converting a virtual irq to a real one. We ended up passing the wrong irq numbers to the hypervisor and migration of affinitised irqs on cpu hot unplug didnt work. Also clarify the rtas_stop_self printk. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix cpu_up race Patch below fixes a cpu_up race in PPC64. Signed-off-by: Srivatsa Vaddagiri Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: improve SLB reload Rewrite/cleanup of the SLB management code. This removes nearly all the SLB related code from arch/ppc64/kernel/stab.c and puts a rewritten version in arch/ppc64/mm, where it better belongs. The main SLB miss path is in assembler and the other routines have been cleaned up and streamlined. Notable changes: - Ugly bitfields no longer used for generating SLB entries. - slb_allocate() (the main SLB miss routine) is now in assembler, and all the data it uses is stored in the PACA. - The mm context is now copied into the PACA at context switch time, to avoid looking up the thread struct on SLB miss. - An SLB miss will now never (directly) result in a call to do_page_fault. If we get a miss on a totally bogus address the handler will now put in an SLB referencing VSID 0. This will never have any pages, so we'll get the (fatal) page fault shortly afterwards. This simplifies the SLB entry and exit paths. - The round-robin pointer in the PACA now references the last-used instead of next-to-use SLB slot, which simplifies the asm for updating it slightly. - Unify do_slb_bolted with the general SLB miss path. There is now one SLB miss handler, in assembler, and called with only the low-level exception prolog (EXCEPTION_PROLOG_[PI]SERIES rather than EXCEPTION_PROLOG_COMMON) and minimal extra save/restore logic. - Streamlines the exception entry/exit path of the SLB miss handler to shave a few cycles off. The most significant change is that the RI bit is left off throughout the whole handler, which avoids an extra mtmsrd to turn it back off on the exit path. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove #include processor.h from div64.S This patch removes a redundant #include of processor.h from arch/ppc64/boot/div64.S. I came across this because, at least with the binutils versions I have currently installed, the 32-bit assembler used for the bootstrap code objects to the // comments that recently went into processor.h. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Support for MPC8560 CPU and boards The following patch adds completes the CPU support for the MPC8560 PowerPC. Additionally, it adds support for the MPC8560 ADS reference board and fixes up some build issues with the SBC8560 board. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: support for MPC8555 CPU and board The following patch adds completes the CPU support for the MPC8555 PowerPC. Additionally, it adds support for the MPC8555 CDS reference board. This is another PowerPC in the Freescale MPC85xx family. * Add support for MPC8555 CPU and reference board Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oom-killer: call show_free_areas Change the oom-killer so that it spits a sysrq-m output into the logs, and shows the gfp_mask of the failing allocation attempt. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix menuconfig partial inability to show help texts. Fix menuconfig inability to show help texts when there is menu item with letter "H" highlighted on the screen. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] quieten down per-zone memory stats On a system with a lot of nodes, 4 lines of output per node is a lot to have to sit through as the system comes up, especially if you're on the other end of a slow serial link. The information is valuable though, so keep it around for the system logger. This patch makes the printks for the memory stats use KERN_DEBUG instead of the default loglevel. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MSI: stop using dev->bus->ops directly in msi.c First half of the MSI rewrite: pure cleanup. Use proper pci_read_config_xxx() and pci_write_config_xxx() functions instead of accessing raw dev->bus->ops. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MSI: MSI/MSI-X API updates Second half of MSI rewrite: fix the API and update documentation. Split enabling MSI and MSI-X to separate pci_enable_msi()/pci_disable_msi() and pci_enable_msix()/pci_disable_msix() functions. free_irq() no longer has the side effect of freeing interrupt vectors (so a device driver can do multiple request_irq()/free_irq() cycles on the same MSI/MSI_X vector). From: Tom L. Nguyen Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rename CONFIG_PCI_USE_VECTOR to CONFIG_PCI_MSI The "vector" terminology is architecture-dependent. The PCI MSI interface actually deals with Linux IRQ numbers (i.e., things you can pass to request_irq()), and we shouldn't confuse things by calling them "vectors" just because we're using MSI rather than an IOSAPIC. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] MAINTAINERS update Maciej has moved. Signed-off-by: Maciej W. Rozycki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fdomain_cs ISA fix Revert the recent fdomain_cs config dependency "fix" and fix the linkage error with ifdeffery instead. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] modular swim3 ACKed by the pmac folks a while ago. Also moves the Kconfig entry to where it belongs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix modular anscd Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PPC8xx Maintainer patch Tom is looking after PPC8xx and the PPC boot code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] DVB: "errno" undefined Actually, the problem has its origin in my removal of all in-kernel syscalls (except execve, which is non-trivial) earlier this year. This change was blindly reverted by the maintainer, while at the same time the local errno variable was removed. See also http://linux.bkbits.net:8080/linux-2.5/hist/drivers/media/dvb/frontends/tda= 1004x.c This patch is the one that was already merged earlier. I'm now also removing the definitions for the kernel syscalls on i386 to make it harder to reintroduce them again. This was already done for ppc64, the others should probably follow. Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Documentation fix for NMI watchdog Sync nmi_watchdog.txt with reality on x86-64. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] HPET copyrights, cleanup This patch - adds copyright and license info - changes sense of mmap config option (setting option enables mmap instead of disabling it, to avoid the double negative) - removes an #ifdef CONFIG_IA64 now that acpi_register_gsi() is generic. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove outdated reference to Documentation/arm/SA1100/PCMCIA This file does not exist in 2.6. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Canonically reference files in Documentation/ code comments part Below is a patch by Hans Ulrich Niedermann to change all references in comments to files in Documentation/ to start with Documentation/ Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove symbol_is() Remove the unused symbol_is() macro. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nsf4 oops fixes Here are some oops I found in error paths in the mounting pathes while debugging something else... I sent it out a while ago, but it didn't seem to get any traction.... The nfs_fill_super() fix is obvious and in nfs4_fill_super(), the server->client ptr needs to be set before the cl_idmap check, since rpc_shutdown_client() needs it when the check fails. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix cdrom cdda rip single frame dma fall back There's a stupid error in the fall back logic, it fails to increment the user pointer so the wave file is corrupt. We should also clear last_sense just to be sure. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] ISDN Eicon driver: use msleep() Author: Armin Schindler, Nishanth Aravamudan Use kernel provided msleep() instead of own sleep implementation. Signed-off-by: Linus Torvalds [PATCH] Off-by-one error for SIGXCPU / RLIMIT_CPU checking There is a lonstanding off-by-one error that results from an incorrect comparison when checking whether a process has consumed CPU time in excess of its RLIMIT_CPU limits. This means, for example, that if we use setrlimit() to set the soft CPU limit (rlim_cur) to 5 seconds and the hard limit (rlim_max) to 10 seconds, then the process only receives a SIGXCPU signal after consuming 6 seconds of CPU time, and, if it continues consuming CPU after handling that signal, only receives SIGKILL after consuming 11 seconds of CPU time. The fix is trivial. Signed-off-by: Linus Torvalds [BRIDGE]: Build fix for gcc-2.95.x gcc-2.95.c does not support anonymous unions. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPV6]: Trivial fix for ipv6_addr_hash() ipv6_addr_hash doesn't do what it's comment says. The comment was probably what was intended, not that it'll make much difference in practice. Signed-off-by: Ralph Loader Signed-off-by: Yoshifuji Hideaki Signed-off-by: David S. Miller [IPSEC]: Remove unnecessary inet_ecn.h inclusions This is a couple of clean-ups stemming from the xfrm_output change. I should've removed the inet_ecn.h inclusions in that change as the ECN code has been moved to xfrm[46]_output.c. This patch does exactly that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Move xfrm[46]_tunnel_check_size into xfrm[46]_output.c This patch moves xfrm[46]_tunnel_check_size() into xfrm[46]_output.c where it can be made static since it's only used there. While moving the icmp.h inclusions over I also discovered that the tunnel files are missing an inclusion of net/protocol.h. So I've added them as well. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [TCP]: BIC tcp congestion calculation timestamp Small change to bictcp based on the BIC 1.1 patches for web100. Keep track of last time congestion was computed, and recompute if cwnd changes or every 1/32 of a second. Also changes the initialization location for the parameters. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Add skb_iter functions. There's no convenient function to walk the data of an skbuff; provide one. Netfilter extensions in particular can use this to examine packet contents without needing an entire copy. I originally wrote an 'skb_walk(skb, fn, data)' function, but open iterators are easier to use for complex cases. Signed-off-by: Rusty Russell Signed-off-by: David S. Miller [PATCH] ppc32: fix e500 SPE saving of context Fix the fact that we were not the signal processing engine status and control register (SPEFSCR) on giveup_spe. Causes problems when the kernel tries to read or modify the SPEFSCR. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] bio_copy_user() cleanups and fixes blk_rq_map_user() is a bit of a hack currently, since it drops back to kmalloc() if bio_map_user() fails. This is unfortunate since it means we do no real segment or size checking (and the request segment counts contain crap, already found one bug in a scsi lld). It's also pretty nasty for > PAGE_SIZE requests, as we attempt to do higher order page allocations. Even worse still, ide-cd will drop back to PIO for non-sg/bio requests. All in all, very suboptimal. This patch adds bio_copy_user() which simply sets up a bio with kernel pages and copies data as needed for reads and writes. It also changes bio_map_user() to return an error pointer like bio_copy_user(), so we can return something sane to the user instead of always -ENOMEM. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix problem with spurrious edge interrupts on old On old powermacs, it's possible that we get a stale edge interrupt when doing request_irq(), that typically happens with the DBDMA controller interrupts when the device was used by the firmware for booting. I just tracked down a nasty memory corruption problem where that was causing the bmac driver to try to process packets before the driver internal data structures were properly initialized. While I agree that the driver should (and will) be made more robust to such things, Paulus and I decided that it makes little sense to keep track of an "old" edge interrupt that happens before a driver does request_irq. (On those powermacs, those are only the DBDMA interrupts anyway, and none of the DBDMA users will care). This patch implements a "startup" handler for the old Apple PIC that will "ack" pending edge interrupts before unmasking, thus preventing those stale interrupts to be delivered. It also "fixes" the ppc32 irq core to call the startup() callback when available instead of just calling enable(). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: Start the FCU in therm_pm72.c Some G5 recent powermacs start with the fan control unit (FCU) disabled, by the firmware, causing the thermal control driver to break. We have to enable it before starting the feedback loops that set the fan speeds. This patch adds the code to start the FCU. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds Linux 2.6.8-rc3 [PKT_SCHED]: netem limit not returned correctly Minor leftover from earlier code. Netem scheduler is not reporting correct limit (ie for 'tc qdisc ls') because it is returning devices limit not it's own. Should apply to 2.4 as well (with fuzz) Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller machvec.h: irq.c: Fix IRQ type in platform irq_to_vector functions. Should be "unsigned int", but some places were "u8". Signed-off-by: Bjorn Helgaas Signed-off-by: Tony Luck cyclone.h, cyclone.c, acpi.c, Kconfig: Make cyclone_setup() take no args, rather than an ignored "char *" and return void. Fix typos and whitespace. Signed-off-by: Bjorn Helgaas Signed-off-by: Tony Luck sba_iommu.c: REO/Grande defect AR2305 can cause TLB fetch timeouts if entries are purged while in use. Round up IOVA allocations to power-of-two boundaries to prevent this. This is originally due to Alex Williamson. Signed-off-by: Bjorn Helgaas Signed-off-by: Tony Luck sgi_io_init.c: Mark per_hub_init as __init and remove an unnecessary extern declaration of it in sgi_io_init.c. This has the effect of killing a warning in the compile of that file. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [PKT_SCHED]: Fix locking in __qdisc_destroy rcu-callback Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Refcount qdisc->dev for __qdisc_destroy rcu-callback Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: remove unneccessary checks for qdisc->dev Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Remove useless noop_qdisc assignments in destroy functions Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [BRIDGE]: rmmod device while bridge is down fails The changes to bridge notifier to handle link state changes introduced a bug. The case of device unregistering while bridge is down was no longer being handled. Add comment so maintainer doesn't forget. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Set up CMC/CPE polling *before* enabling CMCI/CPEI interrupts to avoid situation where a flood of errors prevents boot. Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck Provide comand line keyword "nomca" to turn off mca processing in kernel. Initial patch by Jesse Barnes, fixed by Ken Chen, rescued from obscurity by Sourav Sen. Signed-off-by: Tony Luck <[alex.williamson@hp.com> Using CONFIG_IA64_HP_ZX1 on an sx1000 system setup w/ multiple NUMA nodes (configured for cell local memory) currently crashes because MAX_NUMNODES defaults to 1. The patch below sets up things to make this work. Signed-off-by: Alex Williamson Signed-off-by: Tony Luck generic_defconfig update. I just ran 'make oldconfig' against the existing one and turned on a few new options (some of which Altix needs). Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [PKT_SCHED]: Use double-linked list for dev->qdisc_list Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Fix q_idx calculation in tc_dump_qdisc. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Cache align qdisc data. This patch has qdisc code use the same interface as the netdevice code to cache align the object private data. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Move sch_atm over to qdisc_priv(). Signed-off-by: David S. Miller Cset exclude: davem@nuts.davemloft.net|ChangeSet|20040804202342|60209 [PATCH] Drop asm i586 AES code. This patch reverts the i586 AES module. A new one should be ready soon. Signed-off-by: James Morris Signed-off-by: Linus Torvalds [PATCH] md multipathing fixes I tried to get multipathing failover running and failed. It seems to be that there are two bugs in multipath.c : - If a path/request fails mp_bh->path doesn't get updated to the new path. Thus multipath_end_request will access a NULL pointer if a redirected request returns. - After fixing this I experienced several other errors. First of all in bio->bi_flags the BIO_UPTODATE flag is not set when redirecting a request. Causing the md driver to think that every redirected request failed when it returns. Since that alone didn't fix the problems, I simply copied the master_bio again and it looks like everything seems to work. Cc: Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] multipath readahead fix For requests marked read-ahead, it can legitimately fail without it being a path problem. So don't fail a path just because this happens (can be the atomic request allocation going nuts, for instance), or all paths will quickly go away. Cc: Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [ARM PATCH] 1964/1: Wrong cache block operations checking Patch from Catalin Marinas The "err" is rotated in the blockops_check() function and all the error bits are cleared, the subsequent conditions being always true. [ARM PATCH] 1965/1: gas only generates the c and f field bits for the "msr [cs]psr, rN" instruction Patch from Catalin Marinas Gas translates the "msr [cs]psr, rN" instruction to "msr [cs]psr_cf, rN". This may cause problems on the ARMv6 architecture where the A and E bits can leak into the SVC mode from the USR mode via the exception handlers. The reverse can happen when returning to user mode. The patch adds _cxsf to all the msr instruction without the field specifier. [ARM PATCH] 1966/1: S3C2410 - Fix for serial driver compile error Patch from Ben Dooks Remove compile error with gcc-3.4 and empty part of case statememnt [ARM PATCH] 1968/1: S3C2410 - GPIO updates and access functions Patch from Ben Dooks Added more definitions for GPIO registers New functions for modifying pin configuration and bit-status (see include/asm-arm/arch-s3c2410/hardware.h) [ARM PATCH] 1971/1: BAST - default configuraiton update Patch from Ben Dooks Patch for default configuration [ARM PATCH] 1972/1: IPAQ H1940 - fix serial clock base Patch from Ben Dooks Fixed clock base for the H1940 thanks to Gerald Schneider for fixing this. [ARM PATCH] 1974/1: add INITTIME macro to collie machine structure Patch from John Lenz Add INITTIME macro to collie machine structure. [PATCH] simple_read_buffer() helper function A number of drivers or special virtual devices really just want their "read()" function to populate user space from some internal buffer. This adds such a helper function - "simple_read_from_buffer()" - and converts several ->read() instances to use it. Signed-off-by: Linus Torvalds [PATCH] fix /proc printing of TASK_DEAD state I just stumbled across this patch that's been sitting in my tree for ages. I thought I'd sent this in before. It's a trivial fix for the printing of task state in /proc and sysrq dumps and such, so that TASK_DEAD shows up correctly. This state is pretty much only ever there to be seen when there are exit/reaping bugs, but it's not like that hasn't come up. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds [PATCH] imm.c oops fix Fix bug #3125: This should fix the problem; however, we will need to repeat that for all PIO SCSI drivers (another immediate victim is ppa.c). We should start looking for sane solution; I _really_ don't like the kludge with using ->slave_alloc() for fixups after scsi_alloc_queue(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix 'mktree' on 64bit hosts The following patch changes some 'unsigned long's into 'uint32_t's in mktree (a program that runs on the host to frob the kernel image for some firmwares). Without it, the program is not correct when run on/compiled on a 64bit host. Signed-off-by: Dan Zink Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds Fix shrink_dcache_anon() LRU list accesses. It would potentially remove dentries from the LRU list without re-initializing the d_lru fields, causing later accesses to that dentry to do bad things to the LRU list. [PATCH] ppc64: Fix rtas file mess This does the seq_file conversion + annotation + cleanup + race fixes for arch/ppc64/kernel/rtas-proc.c. How the fuck did that file manage to get anywhere near the tree, anyway? Take a look at guy's "implementation" of sprintf(buf, "%04d", num), for example: /* construct the sensor number like 0003 */ /* fill with zeros */ n = sprintf(tmp, "%d", s.token); len = strlen(tmp); while (strlen(tmp) < 4) n += sprintf (tmp+n, "0"); /* invert the string */ while (tmp[i]) { if (i And it's full of that level of lusing ;-/ [PATCH] ppc: seq_file conversion for ppc_htab This converts the 32-bit ppc htab code to use the seq_file interfaces. Less code means fewer bugs.. [PATCH] Fix ppc htab seq_file conversion *grrrrrrrr* Wrong diff sent. Sorry - normally the tree I'm working in is cp -rl'ed from the -current, but right now it's a big mess. This is the incremental fix. Make the new simple_read_from_buffer() take a const src buffer without complaints. [ARM PATCH] 1986/1: bootpImage/ARM: add ability to run from non-zero address Patch from Kevin Hilman The following patch allows the bootpImage to be loaded and executed from a non-zero address. On OMAP platforms for example, the physical address for SDRAM is 0x10000000 and not zero. [ARM PATCH] 1988/1: S3C2410 - defconfig update to include all boards Patch from Ben Dooks Updated default configuration file to include all the boards possible with this architecture [ARM PATCH] 1989/1: S3C2410 - rename owner of VR1000 board and update help Patch from Ben Dooks Rename to Thorcom, and added extra lines to help [ARM PATCH] 1990/1: S3C2410 - fix mis-spelled time initialisation calls Patch from Ben Dooks Fixed mis-spelled time initialisation calls and a bad prototype in the time header Fixes for patch 1962/1 [SERIAL] replace schedule_timeout() with msleep() Patch from: Nishanth Aravamudan Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Russell King [PATCH] Re-implemented i586 asm AES This code is a rework of the original Gladman AES code, and does not include any supposed BSD licensed work by Jari Ruusu. Linus converted the Intel asm to Gas format, and made some minor alterations. Fruhwirth's glue module has also been retained, although I rebased the table generation and key scheduling back to Gladman's code. I've tested this code with some standard FIPS test vectors, and large FTP transfers over IPSec (both locally and over the wire to a system running the generic AES implementation). Signed-off-by: James Morris Signed-off-by: Linus Torvalds [FB] replace schedule_timeout() with msleep() Patch from: Nishanth Aravamudan Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Russell King [ARM] Remove unnecessary CONFIG_CPU_32 preprocessor conditional. We're only 32-bit ARMs, so testing this symbol in 32-bit only code is unnecessary. [PATCH] Remove ppc32 proc_rtas.c This patch removes proc_rtas.c and error_log.[ch] from arch/ppc/platforms. It turns out that the code in error_log.[ch] is completely unused, and the code in proc_rtas.c is buggy, almost impossible to understand, and rarely used. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix building of certain CPU types The following corrects how we pass CPU flags to gas. Previous, AFLAGS was incorrectly assumed to be pased directly to $(AS), which is not the case. Concept ack'd by Sam Ravnborg. Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [NET]: Move sndmsg_page destruction back into TCP for now. Signed-off-by: David S. Miller [SPARC64]: Eliminate costly sdivx from gettimeofday. Also use non-irq read seqlocking on xtime_lock. Signed-off-by: David S. Miller [SPARC64]: Implement tlb flush batching just like ppc64. Signed-off-by: David S. Miller Add infrastructure for the VFS layer to mark files seekable. We use a FMODE_LSEEK flag to match the existing read/write bits. This allows us to check for seekability on a VFS level for lseek/pread/pwrite, and cleans things up. Update some sites that used the numeric constants to use the symbolic values instead. [PATCH] kbuild: Remove LANG preset in top-level Makefile In the top-level Makefile a number of locale related environment variables were preset to give a small speed up when building the kernel. Unfortunately this had the bad sideeffect that the variable CFLAGS_vmlinux.lds.o lost the exported vaule in some setups (obviously not mine). This smells like a make issue - but the best solution is simply to drop presetting the locale related variables. Signed-off-by: Sam Ravnborg Signed-off-by: Linus Torvalds [PATCH] Restore PPP filtering Karsten Keil's patch entitled "[ISDN]: Fix kernel PPP/IPPP active/passiv filter code" that went in back in April was an attempt to solve a real problem - namely that the libpcap maintainers have removed useful functionality that pppd was using - but his fix broke existing pppd binaries and IMO didn't end up actually solving the problem. This patch reverts the change to ppp_generic.c so that existing pppd binaries work again. I am going to have to work out a proper fix, which may involve further changes to ppp_generic.c, but I will make sure existing pppd binaries still work. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jbd: journal_head unmapping race fix Fix a race identified by Chris Mason journal_unmap_buffer -> __dispose_buffers has the j_list_lock and the jbd_lock_bh_state held. journal_get_write_access calls journal_put_journal_head, which takes jbd_lock_bh_journal_head(bh) and doesn't seem to have any other locks held. Since journal_unmap_buffers trusts the buffer_jbd bit to see if we need to call __dispose_buffer, and nobody seems to test buffer_jbd after taking jbd_lock_bh_journal_head. The kernel dereferences a null jh pointer in __journal_remove_journal_head. The patch fixes this by using journal_grab_journal_head() in journal_unmap_buffer(). It ensures that we either grab and pin the journal_head if the bh has one, or we bale out if the bh doesn't have a journal_head. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: turbosparc flush warnings FLUSH_BEGIN() is a nop at the moment, so the mm variable for its argument trips a warning. Pass vma->vm_mm directly instead. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: sparc32 init_idle() An analysis of the code determined that AP initialization called init_idle() no less than three times, 2 out of the three with incorrect numbers of arguments. This patch removes the superfluous calls. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: sun4d cpu_present_map is a cpumask_t cpu_present_map is a cpumask_t. Sweep arch/sparc/kernel/sun4d_smp.c so that it is treated as such. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: smp_processor_id() BITFIXUP fixes The SMP initialization functions try to do btfixups on the wrong symbols for smp_processor_id(), which is now implemented in terms of current_thread_info()->cpu. hard_smp_processor_id() etc. are now in use where smp_processor_id() was once used. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: reinstate smp_reschedule_irq() smp_reschedule_irq() mysteriously vanished sometime after 2.4. This patch reinstates it so that the kernel will link properly and so cpus will set TIF_NEED_RESCHED when it's asked of them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: remove references to start_secondary() Remove leftover references to now-unused start_secondary() Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: define cache_decay_ticks cache_decay_ticks needs to be defined in order for the kernel to link. This placeholder is inaccurate, however, other, more grave SMP issues need to be addressed first. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: remove unused variable in dvma.c This variable is unused and causes noisy compiles. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: sun4 does not support SMP The sun4 port does not support SMP. Disable it via Kconfig. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: make CONFIG_SMP depend on CONFIG_BROKEN SMP support is in need of a great deal of work to port it from 2.2 and 2.4. Add a dependency on BROKEN in the Kconfig to warn the unwary. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: gcc-3.3 macro parenthesization fix for memcpy.S From: Art Haas The 1.3->1.4 changes to the arch/sparc/lib/copy_user.S file added parenthesis to a number of macros within that file. The BK changlog associated with this change indicate the change was to make the file work with gcc-3.3. When looking at the changes made, I see that similar macros exist in memcpy.S as well, so would a patch adding parens to that file be worthwhile? Also, just what was the problem with gcc-3.3 that was resolved by adding the parenthesis? Macro mis-expansion I'm guessing. Signed-off-by: Art Haas Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes. From: Martin Schwidefsky s390 core changes: - Add 32 bit compat code for ptrace requests PTRACE_GETEVENTMSG, PTRACE_GETSIGINFO and PTRACE_SETSIGINFO. - Make non-smp kernel compile. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer changes. common i/o layer changes: - Set state of a disconnected device to offline before calling ccw_device_online, otherwise the device doesn't come up again. - Check for channel end when trying to find out if basic sense was successful. - Fix error handling in new_channel_path. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: msleep vs. schedule_timeout. Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: ctc driver changes. Prefix debug feature variables with ctc to avoid name space problems. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: zfcp host adapater. From: Heiko Carstens From: Andreas Herrmann zfcp host adapater change: - Fix call to close_physical_port to prevent devices going offline after error recovery. - Fix return value of sysfs port_remove attribute store function. - Replace reboot notifier with device driver shutdown function. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth performance. qeth network driver performance improvements. The ping time on the HiperSockets interface drops from 250 usecs to 50 usecs and the 1 bytes request/response test improves from 70000 to 110000 transactions. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix free_irq() Fix ppc64 free_irq. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: pci_dn cleanups This patch just cleans up arch/ppc64/kernel/pci_dn.c a bit, including: - remove it from the iSeries build completely - small changes to Makefile - remove the "post" parameter from traverse_pci_devices as noone used it - make traverse_all_pci_devices static - remove CONFIG_PPC_PSERIES tests as we no longer build for iSeries - some reformatting (closer to "standard") - remove some of pointer casts This has been built (with default config) on pSeries and pmac and built and run on iSeries. Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: 32-bit ptrace geteventmsg fix Here's a fix for the 32-bit PTRACE_GETEVENTMSG ptrace call that handles the passing of a 32-bit user address. Please apply, thanks. Signed-off-by: John Engel Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: various XICS fixes - Remove unused includes. - Be consistent about printing irq numbers, avoid a mix of decimal and hexadecimal. - Remove prototypes from xics.c, they should be in xics.h. - Remove infinite loop on failure, and instead use panic. Panic has a chance to log the error message on the LED panel and reboot the box, a while(1) loop does not. - xics isnt compiled for iseries any more, so no need for the CONFIG_PPC_PSERIES hack. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix PCI allocation warning Print the correct domain when a PCI resource allocation fails. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: avoid speculative execution after rfid Due to speculative execution, a CPU may execute some instructions after the rfid. This makes profiles confusing, since profiling ticks could end up in those instructions following the rfid that are never executed. Add a branch to self after each rfid to avoid this. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set SMT thread priority to medium for all exceptions We need to set the thread priority to medium when entering all exceptions. We may have been executing in low priority (eg the idle loop), but definitely do not want to remain in that priority for the duration of the exception (eg a device interrupt). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix chrp_progress mismerge Due to a mismerge, some code in chrp_progress appears twice. While here, clean up some formatting issues. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: suppress 'store_purr' unused warning Some new sysfs macros declare a store_purr() function that never gets used, which makes a compiler warning happen. Suppress the warning with the used attribute. Signed-off-by: Dave Hansen Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: move SPINLINE out of global menu This somehow ended up out in the global Kconfig menu. Move it back inside debugging where it belongs. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: suppress unused var warning in get_irq_server() When normal IRQ balancing is used, the following warnings appear: arch/ppc64/kernel/xics.c: In function `get_irq_server': arch/ppc64/kernel/xics.c:242: warning: unused variable `cpumask' arch/ppc64/kernel/xics.c:243: warning: unused variable `tmp' Simply move the variables inside the #ifdef Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: clean up PPC44x mmu_mapin_ram() Remove some old cruft in the kernel lowmem mapping code and save some memory in the process. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix ebony uart clock This patch corrects the Ebony board's uart clock value to the rate of the external Epson SG-615P clock source. Now good to 115Kbps. Signed-off-by: Geoff Levand for CELF Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: remove pci-dma.c Remove pci-dma.c. It is cruft left over from the DMA API changes. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add PPC4xx DMA engine library Adds a cleaned up version of the PPC4xx DMA engine library. Converted to new DCR access method and DMA API. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Add pread/pwrite support bits to match the lseek bit. This also removes the ESPIPE logic from pipes and seq_files, since the VFS layer now supports it. [SPARC64]: Need flush_tlb_pending() in switch_to(). Signed-off-by: David S. Miller [SPARC64]: Kill TLB rtrap debug code. [SPARC64]: Update defconfig. Add "nonseekable_open()" helper functions for nonseekable file descriptors. Teach sendfile() to honour non-seekable source files. Remove the test from the socket code, now that it's no longer necessary. Mark tty's as being non-seekable, and remove the now unnecessary tests at read/write time. Character device tape drivers are non-lseekable. You can seek the tape, but you do it with the magic tape control ioctl's, not with lseek/pread/pwrite. Mark the sunrpc cache control file nonseekable, and remove the run-time tests for it. The seq_file code already disabled pread/pwrite access, no need for the mtrr code to check any more. Fix up a couple of drivers - notable sg - for nonseekability. [PATCH] Teach sscanf about 'hh' and 'll' Adds support for 'hh' (store number in char *) and 'll' (proper C99 for long long) modifiers to sscanf(). [PATCH] mpoa patch done right - conversion to seq_file, overflow fixes - qos_parse sanitized (3 sscanf calls instead of insane manual parsing) leaks plugged code cleaned up We still have serious races, but they are general problem in atm code - it has no locking whatsoever for any of the lists (mpcs, qos_head, per-client lists). Make sysctl pass the pos pointer around properly. Nobody ever fixed the big FIXME in sysctl - but we really need to pass around the proper "loff_t *" to all the sysctl functions if we want them to be well-behaved wrt the file pointer position. This is all preparation for making direct f_pos accesses go away. [ARM] Fix sparse warnings in nwfpe. This fixes sparse warnings in fpa11_cpdt (coprocessor data transfer) instruction emulation. Note that pointers need to be cast to unsigned long not unsigned int, so convert user registers to be unsigned long type. [ARM] Eliminate io.c sparse warnings/ gcc 3.4 errors. arch/arm/kernel/io.c:15:5: warning: generating address of non-lvalue arch/arm/kernel/io.c:15:5: warning: loading unknown expression arch/arm/kernel/io.c:29:5: warning: generating address of non-lvalue arch/arm/kernel/io.c:29:5: warning: loading unknown expression [ARM] Fix sparse warnings in ds1620.c drivers/char/ds1620.c:230:19: warning: incorrect type in argument 1 (different address spaces) drivers/char/ds1620.c:230:19: expected void [noderef] *to drivers/char/ds1620.c:230:19: got char *buf drivers/char/ds1620.c:230:19: warning: incorrect type in initializer (different address spaces) drivers/char/ds1620.c:230:19: expected void [noderef] *to drivers/char/ds1620.c:230:19: got char *buf ... drivers/char/ds1620.c:383:52: warning: Using plain integer as NULL pointer [ARM] Fix nwbutton sparse warnings drivers/char/nwbutton.c:177:24: warning: incorrect type in argument 1 (different address spaces)/home/rmk/bk/linux-2.6-rmk/drivers/char/nwbutton.c:177:24: expected void [noderef] *to drivers/char/nwbutton.c:177:24: got char *buffer drivers/char/nwbutton.c:177:24: warning: incorrect type in initializer (different address spaces) drivers/char/nwbutton.c:177:24: expected void [noderef] *to drivers/char/nwbutton.c:177:24: got char *buffer drivers/char/nwbutton.c:189:11: warning: incorrect type in initializer (incompatible argument 2 (different address spaces)) drivers/char/nwbutton.c:189:11: expected int [usertype] ( *read )( ... ) drivers/char/nwbutton.c:189:11: got int ( static [addressable] [toplevel] * )( ... ) [ARM] Fix nwflash sparse warnings [ARM] Fix wdt977 sparse warnings drivers/char/watchdog/wdt977.c:291:9: warning: incorrect type in initializer (different address spaces) drivers/char/watchdog/wdt977.c:291:9: expected char const [noderef] *register __p drivers/char/watchdog/wdt977.c:291:9: got char const *buf ... Remove ESPIPE logic from drivers, letting the VFS layer handle it instead. This cleans up and simplifies drivers, and also allows us future simplification in the VFS layer, since it removes knowledge about internal VFS layer handling of "f_pos". ppc64: add user annotations to rtc driver [SPARC64]: Always record actual PC when kernel profiling. We used to play games reporting the callers PC in certain functions such as the rwlock and atomic_t routines. If anything, somethin like this should be optional, not by default. Signed-off-by: David S. Miller [SPARC64]: Make clear_user_page more leight weight. - Do not save/restore existing TLB entries, that is expensive, complicated, and does not really help performance much at all. - Only one block store per loop iteration, doing more does not make things run any faster. Signed-off-by: David S. Miller init.c, pgalloc.h: Disable pre-emption around access to pgtable_cache_size, pgd_quicklist, and pmd_quicklist. Signed-off-by: Zhang Yanmin Signed-off-by: Zou Nanhai Signed-off-by: Tony Luck [ARM] Fix two makefile problems - bootp.lds is a source file not a target - vmlinux.lds doesn't need to depend on the top level Makefile [PATCH] adjust SG reserved size automatically The block layer SG should have the identical behaviour as SCSI sg when it comes to SG_SET_RESERVED_SIZE - allow caller to specify a large amount, truncate to largest we support, and return that with SG_GET_RESERVED_SIZE. Currently we fail with -EINVAL if the value is too large, I think the SCSI sg behaviour is more sane to use. This one-liner fixes it up, please apply for 2.6.8. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] Export blk_queue_resize_tags Exports blk_queue_resize_tags since it is an exported interface. Signed-off-by: Brian King Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] allow broken apps to include kernel header Include compiler.h from sg.h as it uses the __user notation, and change the types in scsi.h to use user exportable types. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] HPT IDE update This part got missed in the earlier merge, not sure where it escaped. [SPARC64]: Fix up copy_page just like clear_page. - Do not save/restore existing TLB entries, that is expensive, complicated, and does not really help performance much at all. - Only one unrolled loop for cheetah copy code. - For spitfire, use %asi register for block commit handling so we do not need two copies of the code. Signed-off-by: David S. Miller [PATCH] [ppc64] Fix SLB castout issue The SLB rewrite removed a fix for a hard to hit bug, but the SFS guys managed to hit it straight away. We need to check both r1 and PACAKSAVE or else we could cast our kernel segment out when on the irq or softirq stack. Signed-off-by: Linus Torvalds [SPARC64]: Remove memcpy Ultra3 PCACHE patching trick. It could never be enabled safely, so just toss the code. Signed-off-by: David S. Miller [SPARC64]: Use saner local label names in Ultra3 copies. This makes the kernel profiles look much more meaningful. Signed-off-by: David S. Miller Fix up sound driver proc-reading interfaces. The old ones were not only hard to use, they were in fact impossible or a low-level sound driver to get right, since the core sound code didn't even export all the necessary information. Add the file offset to the /proc read interfaces, and make them simpler to use. The core now does a offset updates, and sanity-checks the values so that the low-level drivers don't need to worry. [SPARC64]: More entropy in add_timer_randomness. Based upon a patch from Richard Mortimer. Signed-off-by: David S. Miller [VLAN]: Propagate ethtool/mii ioctls to the real device. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [VLAN]: Mirror real devices carrier and hotplug state. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [VLAN]: Use RCU for group operations. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [VLAN]: Fix device refcount bug. If you rmmod a network device that is in a vlan, the system hangs waiting for the refcount to go to zero, because it is -1. The problem is that the vlan notifier does an extra dev_put in NETDEV_UNREGISTER case of notifier. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] knfsd: fix some signed ints that should be unsigned Signed-off-by: Neil Brown Signed-off-by: Linus Torvalds [IPSEC]: Add missing flow_cache_genid update to xfrm_policy_delete() Signed-off-by: Eugene Surovegin Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [BRIDGE]: Fix problems with filtering and defragmentation. Dave, this patch from Bart De Schuymer fixes problems when using filtering and defragmentation. The bridge needs to enforce the MTU restriction after going through the filtering chain not before, because the incoming filter may have reassembled an IP packet, that then needs to be fragmented on the output chain. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Kill stray NET_FASTROUTE references. Signed-off-by: Pawel Sikora Signed-off-by: David S. Miller [CRYPTO]: Add Khazad algorithm. Signed-off-by: Aaron Grothe Signed-off-by: James Morris Signed-off-by: David S. Miller [PKT_SCHED]: Fix borrowing fairness in htb. [PATCH] boolean typo in DVB This looks like what was intended here.. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dvb: missing includes Although the current DVB stuff compiles fine, for correctness the following patch adds the necessary include for __user annotations. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PKT_SCHED]: Disable local bh's when grabbing qdisc_tree_lock in tc_dump_tfilter. I missed this one when fixing locking in __qdisc_destroy. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller Revert FAT NLS changes. It's causing massive user confusion, and breaks installers by mounting the filesystem read-only. Cset exclude: hirofumi@mail.parknet.co.jp[torvalds]|ChangeSet|20040802210150|02337 mips: fix up some straggling sysctl functions Fix up drivers that access file->f_pos directly. Use the proper "pointer to pos" that is passed down instead. read/write: pass down a copy of f_pos, not f_pos itself. This allows the VFS layer to the update rather than the low-level drivers. Linux 2.6.8-rc4 [SPARC64]: Fix spitfire bugs in tlb flush and copy_page changes. - VISEntry clobbers %g3, so have to do %asi stuff after we invoke it. - Need to or in 0x10 to TLB flush addresses when flushing in secondary context - Context register restore using wrong address register - Spitfire not so tolerant of membar in delay slot. Signed-off-by: David S. Miller Fix use-after-free bug in MTD partitioning code. Define callback wrapper function mtd_erase_callback() to handle partition offsets during the callback, rather than attempting to fix them up in the freed erase_info structure after the callback has already happened. Cosmetic MTD changes -- update email address and idents. M-Systems DiskOnChip driver update. - Add Millennium Plus support. - Add advanced probe configuration options - Fix abuse of buffer space in scan for Media Header. Restore physmap configure-time settings according to user requests. Patch from Jun Sun. Signed-Off-By: David Woodhouse RedBoot flash partitioning: use vmalloc for buffer. [PATCH] export kblockd_schedule_work() This is used by some IBM vscsi driver. It was using schedule_work(), but should be using the block layer queue. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] via-rhine: Really call rhine_power_init() Without this patch, mainline via-rhine cannot wake the chip if some other driver puts it to D3. The problem has hit quite a few people already. This is a fix for the heisenbug with via-rhine refusing to work sometimes. Patch "[9/9] Restructure reset code" contained a change made necessary by patch [8/9]. Mainline merged [8/9] for 2.6.8 and is still missing the fix, while -mm got it with [9/9]. Jesper Juhl provided crucial test data when no one else was able to reproduce the symptoms. Signed-off-by: Roger Luethi Signed-off-by: Linus Torvalds Export new mtd_erase_callback() function. [PATCH] 4kstacks: fix compile with gcc 2.95 Investigation of why the build is failing due to bogus detection of undefined symbols: We're getting this warning: arch/i386/kernel/irq.c {standard input}: Assembler messages: {standard input}:3565: Warning: setting incorrect section type for .bss.page_aligned Which comes from this code in the 4k stacks code: static char softirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE), __section__(".bss.page_aligned"))); static char hardirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE), __section__(".bss.page_aligned"))); Removing the __section__() fixes it, as does moving to gcc 3.2 or 3.3, but gcc 2.95 and 3.0 still exhibit the problem. It seems the 4k stack developers like newer compilers than I do :) The gcc 2.95 section declaration looks like this: .section .bss.page_aligned,"aw",@progbits while the 3.1 section looks like this: .section .bss.page_aligned,"aw",@nobits It's definitely a bug that's been fixed: http://sources.redhat.com/ml/binutils/2002-10/msg00507.html I've been told that I can fix it with a carefully crafted assembly file and maybe a change to the linker script, but all that it buys us is a little space in the uncompressed kernel image. Plus, the warning will still be there at compile-time. I say, put them back in plain old BSS. Signed-off-by: Andrew Morton Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [libata sata_nv] support for hardware, bug fixes [libata] unmap MMIO region _after_ last possible usage [PATCH] prism54 Clarification to Viro's patch * It seems that Viro patched prism54 with the following patch set : http://www.kernel.org/pub/linux/kernel/v2.6/testing/cset/ cset-viro@www.linux.org.uk[torvalds]|ChangeSet|20040727040034|54764.txt * I do not see any indication in any mailing list of this. It would be nice if we could be informed of such changes :-) * (Changes committed to our CVS) [PATCH] prism54 URGENT - Fix IRQ handling * We are handing back HANDLED even though the IRQ is not for us. We also change device state. This is plainly wrong. AFAICT we also need to take the spin lock early. Tested/running on UP/SMP for about a week now. (Discovered on one of my lappies that had the X driver on the same IRQ) (Proposed on Prism54 Devel with no objections) [PATCH] prism54 Fix memory leaks * Change the "version" OID to what it should be. * Fix memory leaks - mgt_get_request always returns * allocated memory for non-int OIDS (with an exception - * keep reading). If the caller checks the return and itself * returns, then it must free memory. * However, it is possible to return from mgt_get_request * early (!priv->mib). In this case, weird things can happen * in isl_ioctl. Quick fix, at least to force an oops, is * to set the union value to NULL. The real fix is to * recode all mgt_get_request calls in isl_ioctl. [PATCH] prism54 Fix supported rates reporting * We are not correctly reporting supported bit rates. * Fix it. [PATCH] Atmel wireless bigendian fix. The following patch adds a couple of missing byteswaps and allows the Atmel wireless driver to work in WEP mode on big-endian CPUs. (tested on powerPC). [PATCH] bk-netdev-axnet_cs-fix Signed-off-by: Andrew Morton [PATCH] wrong mac address with netgear FA311 ethernet card From: Mathieu LESNIAK This patch corrects a problem with Netgear FA311 ethernet card (a cheap one). Without it, the MAC address is byte swapped ie : HWaddr 02:00:07:E3:E9:F5 instead of : HWaddr 00:02:E3:07:F5:E9 (the correct MAC address vendor code for Netgear/LiteOn is 00:02:E3) Signed-off-by: Andrew Morton [PATCH] bk-netdev-hp-plus-fix Signed-off-by: Andrew Morton Fix MTD partitioning modular build. [SPARC64]: Kill swapper_space test in arch/sparc64/mm/tlb.c It is bogus, plus it breaks the build with CONFIG_SWAP disabled. Based upon a patch from Ben Collins (bcollins@debian.org) Signed-off-by: David S. Miller [SPARC64]: Change TIF_BLKCOMMIT into a fault code. Eliminates costly atomic bitops in do_sparc64_fault. Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [PATCH] Fix unsigned underflow in xdr decoding. With 'len' being unsigned now, we must make sure it never tries to go negative... Thanks: griffon26@kfk4ever.com (Maurice van der Pot) Signed-off-by: Neil Brown Signed-off-by: Linus Torvalds [PATCH] Remove CONFIG_SERIAL_8250_MANY_PORTS from Ebony / Ocotea CONFIG_SERIAL_8250_MANY_PORTS should not be set for these boards, as they only have 2 serial ports. Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PCMCIA] pd6729: add MODULE_DESCRIPTION and MODULE_AUTHOR, fix comment style [ARM PATCH] 2012/1: Use -malignment-traps instead of -mshort-load-bytes if gcc supports it Patch from Catalin Marinas This patch replaces the -mshort-load-bytes option with $(call check_gcc,-malignment-traps,-mshort-load-bytes) in the CFLAGS setting in arch/arm/Makefile. [PATCH] setup queue before elevator_init() We must setup the queue before calling elevator_init(), otherwise the elevator cannot use the queue members. This really hurts cfq since it checks ->nr_requests, which is zero at that time. Signed-off-by: Linus Torvalds Be a bit more anal about allowing SCSI commands to be sent. Normal users shouldn't have access to the raw device anyway unless they are in the trusted "disk" group, but let's require RAWIO capabilities. That's what the original SCSI interfaces did anyhoo. We probably _should_ just require write access, but that will need more of a code change to pass down the file descriptor. [SPARC64]: Fix non-SMP build. Signed-off-by: David S. Miller [ARM PATCH] 2001/1: lh7a40x IDE cleanup Patch from Marc Singer This patch aligns the lh7a40x port with the updated structure of IDE drivers. It also removes an unused FIQ handler. This patch is made in order to get the lh7a40x port to build. [ARM PATCH] 2002/1: lh7a40x Timer fixup Patch from Marc Singer The work already done to rectify the timer code initialization missed a necessary change. This patch adds a timer initialization function to the LPD7A400 machine type. It also makes a small correction to the kernel configuration that is out of step with the machine specific Kconfig. Pass done file pointer to block device ioctl's They'll need it for permission checking. Allow non-root users certain raw commands if they are deemed safe. We allow more commands if the disk was opened read-write. [PATCH] ppc32: Fix warning on CONFIG_PPC32 && CONFIG_6xx In the *ppos cleanups, proc_dol2crvec was updated, but the prototype found at the top of kernel/sysctl.h was not, generating warning. This corrects the prototype to match the code. (I'm gonna take a stab at moving these into arch/ppc shortly) Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PATCH] Remove fcntl f_op The newly introduced ->fcntl file_operation is badly thought out, not to mention undocumented. This patch replaces it with two better defined operations -- check_flags and dir_notify. Any other fcntl()s that filesystems are interested in can have their own properly typed f_op method when they need it. Signed-off-by: Linus Torvalds [PATCH] PA-RISC update - __PAGE_OFFSET is 0x10000000 (Randolph Chung) - PA8800 support (Grant Grundler) - debuglocks (Thibaut Varene) - PDC chassis disabling (Thibaut Varene) - Distinguish between Dinos in request_irq (Thibaut Varene) - Document interrupt registers (Randolph Chung) - Revamp CONFIG_DISCONTIGMEM support (Randolph Chung) - Remove STI console warning and special casing (Randolph Chung) - n4000 defconfig (Randolph Chung) - iosapic fixes (Bjorn Helgaas) - Fix a bug in entry.S where pa_dbit_lock was being trashed (Randolph Chung) - SMP support (Randolph Chung, Grant Grundler, James Bottomley) - Clear the pte in the fault handler (Joel Soete) - Change _exit prototype (Carlos O'Donell) - Better unwinding support (Randolph Chung) - GCC 3.4 fixes (Carlos O'Donell, Randolph Chung) [PATCH] cdrom: MO-drive open write fix This trivial fix allows mounting MO-drives readwrite. Acked by Jens. Signed-off-by: Linus Torvalds [PATCH] lasi_82596 update Update lasi 82596 driver: - Fix boot messages (Helge Deller) - Whitespace and __FILE__ usage (Joel Soete) - 64-bit compile warning fixes (James Bottomley) Linux 2.6.8