Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98339cbd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (80 commits)
  ide-floppy: fix unfortunate function naming
  ide-tape: unify idetape_create_read/write_cmd
  ide: add ide_pc_intr() helper
  ide-{floppy,scsi}: read Status Register before stopping DMA engine
  ide-scsi: add more debugging to idescsi_pc_intr()
  ide-scsi: use pc->callback
  ide-floppy: add more debugging to idefloppy_pc_intr()
  ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled
  ide-tape: add ide_tape_io_buffers() helper
  ide-tape: factor out DSC handling from idetape_pc_intr()
  ide-{floppy,tape}: move checking of ->failed_pc to ->callback
  ide: add ide_issue_pc() helper
  ide: add PC_FLAG_DRQ_INTERRUPT pc flag
  ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc()
  ide: add ide_transfer_pc() helper
  ide-scsi: set drive->scsi flag for devices handled by the driver
  ide-{cd,floppy,tape}: remove checking for drive->scsi
  ide: add PC_FLAG_ZIP_DRIVE pc flag
  ide-tape: factor out waiting for good ireason from idetape_transfer_pc()
  ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc()
  ...
parents e4e0fadc cbbc4e81
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -758,9 +758,6 @@ and is between 256 and 4096 characters. It is defined in the file
	hd=		[EIDE] (E)IDE hard drive subsystem geometry
			Format: <cyl>,<head>,<sect>

	hd?=		[HW] (E)IDE subsystem
	hd?lun=		See Documentation/ide/ide.txt.

	highmem=nn[KMG]	[KNL,BOOT] forces the highmem zone to have an exact
			size of <nn>. This works even on boxes that have no
			highmem otherwise. This also works to reduce highmem
+3 −9
Original line number Diff line number Diff line
@@ -1042,16 +1042,10 @@ void blk_put_request(struct request *req)
	unsigned long flags;
	struct request_queue *q = req->q;

	/*
	 * Gee, IDE calls in w/ NULL q.  Fix IDE and remove the
	 * following if (q) test.
	 */
	if (q) {
	spin_lock_irqsave(q->queue_lock, flags);
	__blk_put_request(q, req);
	spin_unlock_irqrestore(q->queue_lock, flags);
}
}
EXPORT_SYMBOL(blk_put_request);

void init_request_from_bio(struct request *req, struct bio *bio)
+4 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
 * @rq: request to complete
 * @error: end io status of the request
 */
void blk_end_sync_rq(struct request *rq, int error)
static void blk_end_sync_rq(struct request *rq, int error)
{
	struct completion *waiting = rq->end_io_data;

@@ -31,7 +31,6 @@ void blk_end_sync_rq(struct request *rq, int error)
	 */
	complete(waiting);
}
EXPORT_SYMBOL(blk_end_sync_rq);

/**
 * blk_execute_rq_nowait - insert a request into queue for execution
@@ -58,6 +57,9 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
	spin_lock_irq(q->queue_lock);
	__elv_add_request(q, rq, where, 1);
	__generic_unplug_device(q);
	/* the queue is stopped so it won't be plugged+unplugged */
	if (blk_pm_resume_request(rq))
		q->request_fn(q);
	spin_unlock_irq(q->queue_lock);
}
EXPORT_SYMBOL_GPL(blk_execute_rq_nowait);
+9 −11
Original line number Diff line number Diff line
@@ -712,19 +712,17 @@ static void do_pd_request(struct request_queue * q)
static int pd_special_command(struct pd_unit *disk,
		      enum action (*func)(struct pd_unit *disk))
{
	DECLARE_COMPLETION_ONSTACK(wait);
	struct request rq;
	struct request *rq;
	int err = 0;

	blk_rq_init(NULL, &rq);
	rq.rq_disk = disk->gd;
	rq.end_io_data = &wait;
	rq.end_io = blk_end_sync_rq;
	blk_insert_request(disk->gd->queue, &rq, 0, func);
	wait_for_completion(&wait);
	if (rq.errors)
		err = -EIO;
	blk_put_request(&rq);
	rq = blk_get_request(disk->gd->queue, READ, __GFP_WAIT);

	rq->cmd_type = REQ_TYPE_SPECIAL;
	rq->special = func;

	err = blk_execute_rq(disk->gd->queue, disk->gd, rq, 0);

	blk_put_request(rq);
	return err;
}

+6 −0
Original line number Diff line number Diff line
@@ -98,6 +98,9 @@ if BLK_DEV_IDE

comment "Please see Documentation/ide/ide.txt for help/info on IDE drives"

config IDE_ATAPI
	bool

config BLK_DEV_IDE_SATA
	bool "Support for SATA (deprecated; conflicts with libata SATA driver)"
	default n
@@ -201,6 +204,7 @@ config BLK_DEV_IDECD_VERBOSE_ERRORS

config BLK_DEV_IDETAPE
	tristate "Include IDE/ATAPI TAPE support"
	select IDE_ATAPI
	help
	  If you have an IDE tape drive using the ATAPI protocol, say Y.
	  ATAPI is a newer protocol used by IDE tape and CD-ROM drives,
@@ -223,6 +227,7 @@ config BLK_DEV_IDETAPE

config BLK_DEV_IDEFLOPPY
	tristate "Include IDE/ATAPI FLOPPY support"
	select IDE_ATAPI
	---help---
	  If you have an IDE floppy drive which uses the ATAPI protocol,
	  answer Y.  ATAPI is a newer protocol used by IDE CD-ROM/tape/floppy
@@ -246,6 +251,7 @@ config BLK_DEV_IDEFLOPPY
config BLK_DEV_IDESCSI
	tristate "SCSI emulation support"
	depends on SCSI
	select IDE_ATAPI
	---help---
	  WARNING: ide-scsi is no longer needed for cd writing applications!
	  The 2.6 kernel supports direct writing to ide-cd, which eliminates
Loading