- 28 Oct, 2002 23 commits
-
-
http://lia64.bkbits.net/to-linus-2.5Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Jens Axboe authored
I missed one update of elv_add_request() in blk_insert_request(), probably because of one too many hand edits...
-
Jens Axboe authored
Updates to ide-cd to be able to dma to any address (almost). The new work-horse is cdrom_newpc_intr(). IMHO, it's much cleaner than the old interrupt handlers, we can basically kill all three of them in the future and just use this one. You had a lot of bugs in there :-) If you want in-depth let me know, but I'm pretty beat right now and too lazy to do the write up. Lots of cleanups, lots of fixes. pre-transform is a prep function now.
-
Jens Axboe authored
Lots of stuff here... Basically we are using all that flashy infrastructure I sent you to allow DMA for ATAPI at a 4-byte granularity. So we can burns audio cds with zero-copy dma, and all that cool stuff. o Use bio_map_user(), fallback to kmalloc approach if it fails o Use per-queue timeouts o Check for right sg version, we can add old type support too later. o Support SCSI_IOCTL_SEND_COMMAND old crap o Check for size of command o Make cdrom eject work Etc...
-
Jens Axboe authored
o Add sense_len to request, so scsi_ioctl knows how much sense data was transferred. o Add sg_timeout and sg_reserved to queue, we can't have these global... o And finally kill QUEUE_NR_REQUESTS, it hasn't been used in a while.
-
Jens Axboe authored
Various small bits that make SCSI work well with REQ_BLOCK_PC. o Use ->errors as the scsi status byte for REQ_BLOCK_PC o Always call end_io completion, even if 0 sectors, as long as the status is good. Otherwise we risk hanging this device if a REQ_BLOCK_PC user command didn't specify a transfer size for a command that did. o Remove bouncing checks in scsi_merge for REQ_BLOCK_PC, bio_map_user() correctly bounces pages now. o Decrement req->data_len, it's our residual data count. o sr/sd: set right transfer and underflow size.
-
Jens Axboe authored
This adds bio_map_user and bio_unmap_user to aid drivers in mapping user space memory into a bio suitable for block io.
-
http://gkernel.bkbits.net/net-drivers-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
http://gkernel.bkbits.net/misc-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Jens Axboe authored
Sometimes we don't even need a bio->bi_end_io, so make it optional. This also encourages users to _use_ bio_endio()! I like that, since it means they don't have to remember to decrement bi_size themselves. Also clear bi_private in bio_init(), and switch to subsys_initcall().
-
Jens Axboe authored
Make merge_bvec_fn() return number of bytes we can accept at a given offset, instead of a bool.
-
Jens Axboe authored
o Remove some ide compile warnings, old suspend stuff is not used at all, for instance. o If elv_next_request() returns NULL, remember to clear hwgroup->busy if we don't have pending commands. This is important. If a queue prep function kills a request, we would before quit with hwgroup busy. This essentially froze the hwgroup. o Don't do own list manipulation in ide_do_drive_cmd(). Use the new and great elv_add_request() functions o Fix race on inspection of request after io completion by bumping the request reference count prior to ioscheduler insertion. o Make ide-floppy understand a REQ_BLOCK_PC eject. More may follow, it's ATAPI after all. o Clear hw before passing to ide_init_hwif_ports(). Fixes oops on non-pci controllers.
-
Jens Axboe authored
This adds an end_that_request_chunk() helper, that puts the core functionality in __end_that_request_first(). This one deals in bytes. end_that_request_first() does the 512 multiply, and then end_that_request_chunk() can just use it directly. This enables ide-cd to do proper dma in sizes that are not sector aligned. Some of the most important CD functions (ripping audio dma, burning audio cds, burning raw cds) _require_ this or we will be in pio. That stinks. We simply cannot use pio for these, not on writers much that are fast!
-
Jens Axboe authored
o Always use list_del_init() on request queuelist, this allows us to sanity check the integrity of the request on insertion and removal. So we can complain loudly instead of silently corrupting memory. o Add references to requests. This is cheap, since we dont have to use an atomic variable for it (all puts are inside queue lock). We've had a bug in IDE for years where we want to inspect request state after io completion, but this is not possible to do race free right now. REQ_BLOCK_PC and sgio will need this too, for checking io residual etc. This is not just a theoretical race, I've seen it happen.
-
Jens Axboe authored
Cleanup the last_merge logic. There are two reasons for clearing last_merge when we are dealing with integrity, and these are: o Clear when handing the request to the driver, so we don't merge on a started request. o Clear when a request is taken off the list. This cannot be done from the driver (above case would already have been hit), but it can happen when we merge two requests. This makes it a lot nicer, it was always peculiar how we cleared in put_request.
-
Jens Axboe authored
Make it possible for a device to specify the dma alignment restrictions it has. This will be used by future infrastructure when mapping in user pages, and allows us to dma to on ATAPI even though user address and length is not sector size aligned.
-
Jens Axboe authored
Extend q->prep_rq_fn() to return one of three values: o BLKPREP_OK: request is good, return it o BLKPREP_KILL: request is bad, end it completely o BLKPREP_DEFER: request is good, but we can't take it now We maintain compatability with old prep functions (if any, outside of ide-cd). This change is needed or SCSI to use prep function for command init, if sg table allocation fails we can just defer the request.
-
Jens Axboe authored
Add some missing bits, and make it generally a bit more useful outside of REQ_PC requests.
-
Jens Axboe authored
Request insertion in the current tree is a mess. We have all sorts of variants of *elv_add_request*, and it's not at all clear who does what and with what locks (or not). This patch cleans it up to be: o __elv_add_request(queue, request, at_end, plug) Core function, requires queue lock to be held o elv_add_request(queue, request, at_end, plug) Like __elv_add_request(), but grabs queue lock o __elv_add_request_pos(queue, request, position) Insert request at a given location, lock must be held
-
Jens Axboe authored
We must return -EIO if the command fails (the 5/20/00 sense check is just helping return more sane info), not -EINVAL. Getting -EINVAL return on an ioctl if a command fails is less than helpful for applications...
-
Jens Axboe authored
o Split blk_queue_bounce() into a slow and fast path. The fast path is inlined, only if we actually need to check the bio for possible bounces (and bounce) do we enter __blk_queue_bounce() slow path. o Fix a nasty bug that could cause corruption for file systems not using PAGE_CACHE_SIZE blok size! We were not correctly setting the 'to' bv_offset correctly. o Add BIO_BOUNCE flag. Later patches will use this for debug checking.
-
Jens Axboe authored
Make deadline_merge() prefetch the next entry on the list.
-
Manfred Spraul authored
wake_up_interruptible() and _sync() calls are reversed in pipe_read(). The attached patches only calls _sync if a schedule() call follows.
-
- 27 Oct, 2002 7 commits
-
-
David Mosberger authored
-
David Mosberger authored
-
David Mosberger authored
-
Adam J. Richter authored
in struct pci_dev.
-
David Mosberger authored
-
Kimio Suganuma authored
I found that functions in timer.c and rcupdate.c are calling > tasklet_init() for all CPUs before APs start running. For this to work, the per-CPU pages must be allocated at BSP-initialization time. The patch below does that.
-
Tony Luck authored
/proc/kcore is what you need, but it is broken on ia64 (and has been since the dawn of time for access to region 5) because it assumes that all kernel virtual addresses are above PAGE+AF8-OFFSET. This isn't true on ia64, VMALLOC+AF8-START is smaller than PAGE+AF8-OFFSET. Attached is a patch (applies to 2.4.19 and to 2.5.39) that fixes the assumption. After applying you'll be able to use: +ACM- gdb vmlinux /proc/kcore and happily ask gdb to examine addresses in region 5.
-
- 26 Oct, 2002 3 commits
-
-
Jun Komuro authored
-
Jeff Garzik authored
-
Jeff Garzik authored
(suggested by Peter Chubb)
-
- 25 Oct, 2002 2 commits
-
-
Matthew Wilcox authored
-
Jeff Garzik authored
-
- 24 Oct, 2002 2 commits
-
-
David Mosberger authored
-
David Mosberger authored
-
- 23 Oct, 2002 3 commits
-
-
http://suncobalt.bkbits.net/net-drivers-2.5Jeff Garzik authored
into redhat.com:/home/jgarzik/repo/net-drivers-2.5
-
Tim Hockin authored
-
Tim Hockin authored
-