# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.629 -> 1.630
# drivers/usb/storage/usb.c 1.29 -> 1.30
# drivers/usb/storage/transport.c 1.24 -> 1.25
# drivers/usb/storage/scsiglue.c 1.24 -> 1.25
# drivers/usb/storage/usb.h 1.14 -> 1.15
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/07/07 [EMAIL PROTECTED] 1.630
# [PATCH] PATCH: usb-storage: consolidate, cleanup, etc.
#
# This patch fixes some spelling errors and adds some BUG_ON() calls so we
# can make sure that all this new code is working properly.
# --------------------------------------------
#
diff -Nru a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
--- a/drivers/usb/storage/scsiglue.c Sun Jul 7 12:35:42 2002
+++ b/drivers/usb/storage/scsiglue.c Sun Jul 7 12:35:42 2002
@@ -114,9 +114,10 @@
/* Kill the control threads
*
* Enqueue the command, wake up the thread, and wait for
- * notification that it's exited.
+ * notification that it has exited.
*/
US_DEBUGP("-- sending exit command to thread\n");
+ BUG_ON(atomic_read(&us->sm_state) != US_STATE_IDLE);
us->srb = NULL;
up(&(us->sema));
wait_for_completion(&(us->notify));
@@ -136,7 +137,7 @@
return DID_BAD_TARGET << 16;
}
-/* run command */
+/* queue a command */
/* This is always called with scsi_lock(srb->host) held */
static int queuecommand( Scsi_Cmnd *srb , void (*done)(Scsi_Cmnd *))
{
@@ -146,6 +147,7 @@
srb->host_scribble = (unsigned char *)us;
/* enqueue the command */
+ BUG_ON(atomic_read(&us->sm_state) != US_STATE_IDLE || us->srb != NULL);
srb->scsi_done = done;
us->srb = srb;
@@ -186,6 +188,7 @@
int result;
US_DEBUGP("device_reset() called\n" );
+ BUG_ON(atomic_read(&us->sm_state) != US_STATE_IDLE);
/* set the state and release the lock */
atomic_set(&us->sm_state, US_STATE_RESETTING);
diff -Nru a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
--- a/drivers/usb/storage/transport.c Sun Jul 7 12:35:42 2002
+++ b/drivers/usb/storage/transport.c Sun Jul 7 12:35:42 2002
@@ -849,6 +849,7 @@
/* Normally the current state is RUNNING. If the control thread
* hasn't even started processing this command, the state will be
* IDLE. Anything else is a bug. */
+ BUG_ON((state != US_STATE_RUNNING && state != US_STATE_IDLE));
/* set state to abort and release the lock */
atomic_set(&us->sm_state, US_STATE_ABORTING);
diff -Nru a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
--- a/drivers/usb/storage/usb.c Sun Jul 7 12:35:42 2002
+++ b/drivers/usb/storage/usb.c Sun Jul 7 12:35:42 2002
@@ -473,7 +473,7 @@
}
/* Set up the URB, the usb_ctrlrequest, and the IRQ pipe and handler.
- * ss->dev_semaphore should already be locked.
+ * ss->dev_semaphore must already be locked.
* Note that this function assumes that all the data in the us_data
* strucuture is current. This includes the ep_int field, which gives us
* the endpoint for the interrupt.
diff -Nru a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
--- a/drivers/usb/storage/usb.h Sun Jul 7 12:35:42 2002
+++ b/drivers/usb/storage/usb.h Sun Jul 7 12:35:42 2002
@@ -131,7 +131,6 @@
*/
struct semaphore dev_semaphore; /* protect pusb_dev */
struct usb_device *pusb_dev; /* this usb_device */
-
unsigned long flags; /* from filter initially */
/* information about the device -- always good */
@@ -164,8 +163,8 @@
Scsi_Cmnd *srb; /* current srb */
/* thread information */
- int pid; /* control thread */
- atomic_t sm_state;
+ int pid; /* control thread */
+ atomic_t sm_state; /* what we are doing */
/* interrupt info for CBI devices -- only good if attached */
struct semaphore ip_waitq; /* for CBI interrupts */
@@ -177,7 +176,7 @@
unsigned char irqdata[2]; /* data from USB IRQ */
/* control and bulk communications data */
- struct semaphore current_urb_sem; /* to protect irq_urb */
+ struct semaphore current_urb_sem; /* protect current_urb */
struct urb *current_urb; /* non-int USB requests */
struct usb_ctrlrequest *dr; /* control requests */
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
We have stuff for geeks like you.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel