netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oliver Neukum <oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
To: Paulius Zaleckas
	<paulius.zaleckas-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC] Patch to option HSO driver to the kernel
Date: Wed, 16 Apr 2008 15:43:21 +0200	[thread overview]
Message-ID: <200804161543.23584.oliver@neukum.org> (raw)
In-Reply-To: <4805ED16.3080104-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>

Am Mittwoch, 16. April 2008 14:12:06 schrieb Paulius Zaleckas:
> I always get crash when closing serial terminal application. I will
> post dump in couple minutes.

Does this fix it?

	Regards
		Oliver

Signed-off-by: Oliver Neukum <oneukum-l3A5Bk7waGM@public.gmane.org>

---

--- linux-2.6.25-hso/drivers/net/usb/hso.c.alt3	2008-04-16 14:01:22.000000000 +0200
+++ linux-2.6.25-hso/drivers/net/usb/hso.c	2008-04-16 15:39:24.000000000 +0200
@@ -156,7 +156,7 @@ struct hso_shared_int {
 	struct usb_device *usb;
 	int use_count;
 	int ref_count;
-	spinlock_t shared_int_lock;
+	struct mutex shared_int_lock;
 };
 
 struct hso_net {
@@ -2040,14 +2040,14 @@ static int hso_start_serial_device(struc
 			}
 		}
 	} else {
-		spin_lock_bh(&serial->shared_int->shared_int_lock);
+		mutex_lock(&serial->shared_int->shared_int_lock);
 		if (!serial->shared_int->use_count) {
 			result =
 			    hso_mux_submit_intr_urb(serial->shared_int,
-						    hso_dev->usb, GFP_ATOMIC);
+						    hso_dev->usb, flags);
 		}
 		serial->shared_int->use_count++;
-		spin_unlock_bh(&serial->shared_int->shared_int_lock);
+		mutex_unlock(&serial->shared_int->shared_int_lock);
 	}
 
 	return result;
@@ -2070,7 +2070,7 @@ static int hso_stop_serial_device(struct
 		usb_kill_urb(serial->rx_urb[i]);
 
 	if (serial->shared_int) {
-		spin_lock_bh(&serial->shared_int->shared_int_lock);
+		mutex_lock(&serial->shared_int->shared_int_lock);
 		if (serial->shared_int->use_count &&
 		    (--serial->shared_int->use_count == 0)) {
 			struct urb *urb;
@@ -2079,7 +2079,7 @@ static int hso_stop_serial_device(struct
 			if (urb)
 				usb_kill_urb(urb);
 		}
-		spin_unlock_bh(&serial->shared_int->shared_int_lock);
+		mutex_unlock(&serial->shared_int->shared_int_lock);
 	}
 
 	return 0;
@@ -2352,10 +2352,10 @@ static void hso_free_serial_device(struc
 	hso_serial_common_free(serial);
 
 	if (serial->shared_int) {
-		spin_lock_bh(&serial->shared_int->shared_int_lock);
+		mutex_lock(&serial->shared_int->shared_int_lock);
 		if (--serial->shared_int->ref_count == 0)
 			hso_free_shared_int(serial->shared_int);
-		spin_unlock_bh(&serial->shared_int->shared_int_lock);
+		mutex_unlock(&serial->shared_int->shared_int_lock);
 	}
 	kfree(serial);
 	hso_free_device(hso_dev);
@@ -2468,9 +2468,9 @@ struct hso_device *hso_create_mux_serial
 	serial->write_data = hso_mux_serial_write_data;
 
 	serial->shared_int = mux;
-	spin_lock_bh(&serial->shared_int->shared_int_lock);
+	mutex_lock(&serial->shared_int->shared_int_lock);
 	serial->shared_int->ref_count++;
-	spin_unlock_bh(&serial->shared_int->shared_int_lock);
+	mutex_unlock(&serial->shared_int->shared_int_lock);
 
 	/* and record this serial */
 	set_serial_by_index(serial->minor, serial);
@@ -2535,7 +2535,7 @@ struct hso_shared_int *hso_create_shared
 		goto exit;
 	}
 
-	spin_lock_init(&mux->shared_int_lock);
+	mutex_init(&mux->shared_int_lock);
 
 	return mux;
 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2008-04-16 13:43 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-14 21:32 [RFC] Patch to option HSO driver to the kernel Greg KH
2008-04-15  4:30 ` Oliver Hartkopp
     [not found]   ` <48042F7F.8030608-fJ+pQTUTwRTk1uMJSBkQmQ@public.gmane.org>
2008-04-15 16:11     ` Greg KH
     [not found]       ` <20080415161158.GE9704-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-04-15 17:53         ` Oliver Hartkopp
2008-04-15 13:55 ` Oliver Neukum
2008-04-15 16:10   ` Greg KH
     [not found] ` <20080414213238.GB28833-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-04-14 21:59   ` Matthew Dharm
2008-04-14 22:42     ` Andrew Bird (Sphere Systems)
2008-04-14 23:03       ` Greg KH
     [not found]         ` <20080414230309.GA1672-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-04-15  8:01           ` Filip Aben
2008-04-15 15:40             ` Greg KH
2008-04-14 23:20   ` Paulius Zaleckas
2008-04-15  8:10     ` Oliver Neukum
     [not found]       ` <200804151010.33688.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-15  8:58         ` Paulius Zaleckas
     [not found]           ` <48046E4A.3060901-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-15 15:39             ` Greg KH
2008-04-15 11:44   ` Oliver Neukum
     [not found]     ` <200804151344.42085.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-15 16:06       ` Greg KH
2008-04-15 13:06   ` Oliver Neukum
     [not found]     ` <200804151506.21856.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-15 16:08       ` Greg KH
2008-04-15 16:08     ` Greg KH
2008-04-15 13:25   ` Oliver Neukum
2008-04-15 14:12     ` Filip Aben
2008-04-15 14:14       ` Oliver Neukum
2008-04-15 15:03         ` Filip Aben
2008-04-15 15:34           ` Greg KH
     [not found]             ` <20080415153408.GB7996-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-04-15 16:24               ` Filip Aben
2008-04-15 17:58                 ` Oliver Neukum
2008-04-15 18:46             ` Oliver Neukum
     [not found]               ` <200804152046.44018.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-15 19:00                 ` Greg KH
2008-04-15 19:14                   ` Stephen Hemminger
2008-04-15 19:27                     ` Greg KH
2008-04-15 20:17                   ` Oliver Neukum
     [not found]                     ` <200804152217.25451.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-15 22:18                       ` Greg KH
2008-04-17 12:15                   ` Oliver Neukum
2008-04-17 21:35                     ` Greg KH
2008-04-15 22:49   ` Paulius Zaleckas
     [not found]     ` <480530E6.8020700-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-16  9:18       ` Paulius Zaleckas
     [not found]         ` <4805C469.7050408-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-16 11:54           ` Paulius Zaleckas
     [not found]             ` <4805E8E1.3090200-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-16 12:03               ` Oliver Neukum
     [not found]                 ` <200804161403.20955.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-16 12:12                   ` Paulius Zaleckas
     [not found]                     ` <4805ED16.3080104-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-16 13:43                       ` Oliver Neukum [this message]
     [not found]                         ` <200804161543.23584.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-16 13:55                           ` Paulius Zaleckas
2008-04-17 14:32                             ` Oliver Neukum
     [not found]                               ` <200804171632.12972.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-17 21:47                                 ` Paulius Zaleckas
     [not found]                                   ` <4807C56F.5060804-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-17 22:31                                     ` Chetty, Jay
2008-04-18  6:51                                     ` Oliver Neukum
2008-04-18 15:18                                 ` Paulius Zaleckas
2008-04-21 11:45                                   ` Oliver Neukum
2008-04-21 12:38                                     ` Paulius Zaleckas
     [not found]                                       ` <480C8AD8.9050609-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org>
2008-04-21 12:50                                         ` Oliver Neukum
     [not found]                                           ` <200804211450.27093.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-04-21 13:00                                             ` Paulius Zaleckas
2008-04-17 21:33                         ` Greg KH
2008-04-16 15:15               ` Paulius Zaleckas
2008-04-16 13:11   ` Paulius Zaleckas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200804161543.23584.oliver@neukum.org \
    --to=oliver-gvhc2dphhpqdnm+yrofe0a@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=paulius.zaleckas-Ft0m5Q12RQ9xBelEqimL3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).