- 09 Oct, 2002 40 commits
-
-
Matt Domsch authored
into dell.com:/home/mdomsch/bk/linux-2.5-edd-tolinus
-
bk://are.twiddle.net/axp-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Matt Domsch authored
into dell.com:/home/mdomsch/bk/linux-2.5-edd-tolinus
-
Richard Henderson authored
-
Matt Domsch authored
The major changes implemented in this patch: arch/i386/boot/setup.S - int13 real mode calls store results in empty_zero_page arch/i386/kernel/setup.c - copy results from empty_zero_page to local storage arch/i386/kernel/edd.c - module exports results via driverfs x86 systems suffer from a disconnect between what BIOS believes is the boot disk, and what Linux thinks BIOS thinks is the boot disk. This manifests itself in multi-disk systems - it's quite possible to install a distribution, only to fail on reboot - the disk installed to is not the disk BIOS is booting from. Dell restricts our possible standard factory installed Linux offerings to "disks on no more than one controller" to avoid this problem, but mechanisms now exist to solve it and allow such configurations. BIOS Enhanced Disk Device Services (EDD) 3.0 provides the ability for disk adapter BIOSs to tell the OS what it believes is the boot disk. While this isn't widely implemented in BIOSs yet, it's time that Linux received support to be ready as BIOSs with this feature do become available. At a minimum, LSI MegaRAID cards support this today. EDD works by providing the bus (PCI, PCI-X, ISA, InfiniBand, PCI Express, or HyperTransport) location (e.g. PCI 02:01.0) and interface (ATAPI, ATA, SCSI, USB, 1394, FibreChannel, I2O, RAID, SATA) location (e.g. SCSI ID 5 LUN 0) information for each BIOS int13 device. The patch below creates CONFIG_EDD, that when defined, makes the BIOS int13 calls to retrieve and store this information. The data is copied to a safe place in setup.c, and exported via driverfs. Here's a sample driverfs tree with two BIOS int13 devices - dev 80 has incorrect PCI bus information, thus no symlinks are made, but as much info as possible is presented. Dev 81 has correct PCI and SCSI information, thus symlinks are made to the actual disc device. /driverfs |-- bios | |-- int13_dev80 | | |-- extensions | | |-- host_bus | | |-- info_flags | | |-- interface | | |-- raw_data | | |-- sectors | | `-- version | `-- int13_dev81 | |-- extensions | |-- host_bus | |-- info_flags | |-- interface | |-- pci_dev -> ../../root/pci2/02:0c.0/03:00.0/04:00.0 | |-- raw_data | |-- disc -> ../../root/pci2/02:0c.0/03:00.0/04:00.0/scsi4/4:0:0:0 | |-- sectors | `-- version |-- bus | |-- scsi | | |-- devices | | | |-- 4:0:0:0 -> ../../../root/pci2/02:0c.0/03:00.0/04:00.0/scsi4/4:0:0:0 | | `-- drivers | | `-- sd `-- root |-- pci2 | |-- 02:0c.0 | | |-- 03:00.0 | | | |-- 04:00.0 | | | | |-- irq | | | | |-- name | | | | |-- power | | | | |-- resource | | | | `-- scsi4 | | | | |-- 4:0:0:0 | | | | | |-- 4:0:0:0::p1 | | | | | | |-- kdev | | | | | | |-- name | | | | | | |-- power | | | | | | `-- type | | | | | |-- 4:0:0:0:disc | | | | | | |-- kdev | | | | | | |-- name | | | | | | |-- power | | | | | | `-- type | | | | | |-- name | | | | | |-- power | | | | | `-- type (Yes, the 'bios' top-level directory isn't the right place, and Patrick has promised to make something there in the future, at which point this can be moved.) The 'raw_data' file contains the full set of information returned by BIOS with extra error reporting. This exists for vendor BIOS debugging purposes. The 'host-bus' file contains the PCI (or ISA, HyperTransport, ...) identifying information, as BIOS knows it. The 'interface' file contains the SCSI (or IDE, USB, ...) identifying information, as BIOS knows it. The 'extensions' file lists the BIOS EDD extensions per spec. The 'info_flags' file lists the BIOS EDD device information flags per spec. The 'sectors' file reports the number of sectors BIOS believes this device has. The 'version' file lists the EDD version. To have device path information, this must be 0x30 or above. Earlier EDD versions exist without the device path - as much information as is available is presented. At most 6 BIOS devices are reported, as that fills the space that's left in the empty_zero_page. In general you only care about device 80h, though for software RAID1 knowing what 81h is might be useful also. Known issues: - module unload leaves a directory around. Seems related to creating symlinks in that directory. Seen on kernel 2.5.41. - refcounting of struct device objects could be improved. TODO: - Add IDE and USB disk device support - when driverfs model of discs and partitions changes, update symlink accordingly. - Get symlink creator helper functions exported from drivers/base instead of duplicating them here. - move edd.[ch] to better locations if/when one is decided I'd also like to acknowledge the help and comments received from Greg KH and Patrick Mochel. This isn't something driverfs was originally conceived to handle, their assistance has been invaluable. Please pull from: BK: http://mdomsch.bkbits.net/linux-2.5-edd-tolinus Patch (against 2.5.41+BK-current): http://domsch.com/linux/edd30/edd-driverfs-6.patch http://domsch.com/linux/edd30/edd-driverfs-6.patch.sign Thanks, Matt -- Matt Domsch Sr. Software Engineer, Lead Engineer, Architect Dell Linux Solutions www.dell.com/linux Linux on Dell mailing lists @ http://lists.us.dell.com
-
ssh://are.twiddle.net/BK/axp-2.5Richard Henderson authored
into dot.sfbay.redhat.com:/dot/bang/rth/linux/axp-2.5
-
David Jeffery authored
2 bug fixes for scsi pass through When talking directly to scsi devices, the driver would sometimes get two things wrong. We could set too short of a timeout. Or, we could confuse the adapter by having non-zero values in certain fields which we shouldn't have been using. This patch corrects these problems.
-
David Jeffery authored
2 minor bug fixes. The first section makes sure we limit the size of the sense_buffer copy to the target buffer's size so that we don't overflow the sence_buffer. The other sections remove some pointer arithmatic that is wrong on 64bit machines do to padding. Instead, just call the pci_map functions on the buffer.
-
David Jeffery authored
This is by far the biggest patch. It is a rewrite of the driver's horrid locking. In addition to the host_lock, the driver used to have 4 other locks per adapter! It had a redundant ha_lock and a lock for each of 3 queues. In a few places it also played with atomic bit setting. And almost all of it was useless as the host_lock was already held. This patch cleans up this locking nightmare. The driver now uses the host_lock exclusively. Only a few places needed to add calls to lock the host_lock. Most of this patch is deletion of useless extra locking.
-
David Jeffery authored
This patch adds an Adaptec copyright, makes a few minor comment changes, and removes a few unneeded macros.
-
David Jeffery authored
This patch is some simple code consolidation. A new function ips_abort_init() is created and consolidates some repeated code that is used if there is an error during initialization of the adapter.
-
David Jeffery authored
This removes several unused header includes and allows the driver to compile by no longer trying to include <linux/tqueue.h> . You may have already gotten a patch to remove tqueue.h from someone else. This patch also corrects the spelling of my last name in the MAINTAINERS file. You'd think I'd be used to seeing it spelled wrong by now.
-
Richard Henderson authored
into are.twiddle.net:/home/rth/BK/axp-2.5
-
Linus Torvalds authored
indent -kr -i8 -bri0 -l255 wd7000.{c,h}
-
Doug Ledford authored
-
Robert Love authored
Comment above getpid() is wrong. This patch fixes it, and expands the comment to explain why on earth we have getpid() returning ->tgid and not ->pid.
-
Robert Love authored
Now that brlocks loop over NR_CPUS, on SMP every br_lock/br_unlock results in the acquire/release of 32 locks. This incs/decs the preempt_count by 32. Since we only have 7 bits now for actually storing the lock depth, we cannot nest but 3 locks deep. I doubt we ever acquire three brlocks concurrently, but it is still a concern. Attached patch disables/enables preemption explicitly once and only once for each lock/unlock. This is also an optimization as it removes 31 incs, decs, and conditionals. :) Problem reported by Andrew Morton.
-
Alan Cox authored
Not much here, just some tidying/checking. This driver can't alas use NAPI in 2.5. Note however it has no panics or BUG()s so appears to meet the carrier grade guidelines ;) - Clarified authors so I get the mail not Donald - Added missing MODULE_ bits - Moved junk into 3c501.h
-
Alan Cox authored
- new locking - new_eh - use ->page/->offset
-
bk://ldm.bkbits.net/linux-2.5-ideLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Patrick Mochel authored
This was accidentally dropped before, but re-added now to completely mimic behavior of the reboot notifier IDE used to have.
-
Patrick Mochel authored
The remove() method is generic for all drives, and set in ide_driver_t::gen_driver. The call simply forwards the call to ide_driver_t::standby(). This obviates the need for IDE reboot notifier. The core iterates over all present devices in device_shutdown() and unregisters each one.
-
Patrick Mochel authored
This adds struct device_driver gen_driver; to ide_driver_t, which is filled in with necessary fields when an ide driver calls ide_register_driver(). That then registers the driver with the driver model core. As a result, this gives us the following output in driverfs: # tree -d /sys/bus/ide/drivers/ /sys/bus/ide/drivers/ |-- ide-cdrom `-- ide-disk The suspend/resume callbacks in ide-disk.c have been temporarily disabled until the ide core implements generic methods which forward the calls to the drive drivers.
-
ssh://are.twiddle.net/BK/linus-2.5Richard Henderson authored
into dot.sfbay.redhat.com:/dot/bang/rth/linux/axp-2.5
-
Richard Henderson authored
into are.twiddle.net:/home/rth/BK/axp-2.5
-
Thomas Molina authored
the netfilter ipt owner module still needs the following to compile
-
Thomas Molina authored
A second instance of lock had been inadvertently added to v_midi.h
-
Patrick Mochel authored
... instead of the one in struct gendisk.
-
Martin Schwidefsky authored
Fix 3270 console reboot loop. Recognize 3270 control unit type 3174. Fix tubfs kmallocs. Dynamically get 3270 input buffer. Get bootup colors right on 3270 console
-
Martin Schwidefsky authored
Pass the system call number in grp2 to strace instead of -ENOSYS.
-
Martin Schwidefsky authored
Remove a duplicate memset. That is already done in alloc_disk.
-
Martin Schwidefsky authored
Correct typo in the vmlinux.lds.S files.
-
Martin Schwidefsky authored
Switch from work queues to tasklets in the 3215 and 3270 drivers.
-
Martin Schwidefsky authored
Remove all tq_structs from s390 driver code.
-
Martin Schwidefsky authored
Switch to @$(generate-asm-offsets.h) method to create the asm-offsets.h file, fix signal dequeueing in the 31 bit emulation code and fix includes.
-
bk://linux-input.bkbits.net/linux-inputLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Vojtech Pavlik authored
-
Vojtech Pavlik authored
several notebook keyboards. Until we find a better solution how to detect who are we talking to, we rely on the kernel command line. Use atkbd_set=4 to gain access to the extra keys.
-
Vojtech Pavlik authored
-
Vojtech Pavlik authored
-