diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-30 12:38:19 -0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-30 12:38:19 -0400 | 
| commit | 0cd43f83d381c4246a08cd775834833d6fd64805 (patch) | |
| tree | e69ddf876edfb4ff7d5d5d0c6e7c2ff0be885492 /drivers/ieee1394/hosts.c | |
| parent | db1a19b38f3a85f475b4ad716c71be133d8ca48e (diff) | |
| parent | 3253b669eed7194ae490acb4aadab7262bbfeb8d (diff) | |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (48 commits)
  ieee1394: raw1394: arm functions slept in atomic context
  ieee1394: sbp2: enable auto spin-up for all SBP-2 devices
  MAINTAINERS: updates to IEEE 1394 subsystem maintainership
  ieee1394: ohci1394: check for errors in suspend or resume
  set power state of firewire host during suspend
  ieee1394: ohci1394: more obvious endianess handling
  ieee1394: ohci1394: fix endianess bug in debug message
  ieee1394: sbp2: don't prefer MODE SENSE 10
  ieee1394: nodemgr: grab class.subsys.rwsem in nodemgr_resume_ne
  ieee1394: nodemgr: fix rwsem recursion
  ieee1394: sbp2: more help in Kconfig
  ieee1394: sbp2: prevent rare deadlock in shutdown
  ieee1394: sbp2: update includes
  ieee1394: sbp2: better handling of transport errors
  ieee1394: sbp2: recheck node generation in sbp2_update
  ieee1394: sbp2: safer agent reset in error handlers
  ieee1394: sbp2: handle "sbp2util_node_write_no_wait failed"
  CONFIG_PM=n slim: drivers/ieee1394/ohci1394.c
  ieee1394: safer definition of empty macros
  video1394: add poll file operation support
  ...
Diffstat (limited to 'drivers/ieee1394/hosts.c')
| -rw-r--r-- | drivers/ieee1394/hosts.c | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/ieee1394/hosts.c b/drivers/ieee1394/hosts.c index 4feead4a35c5..d90a3a1898c0 100644 --- a/drivers/ieee1394/hosts.c +++ b/drivers/ieee1394/hosts.c  | |||
| @@ -90,6 +90,16 @@ static int alloc_hostnum_cb(struct hpsb_host *host, void *__data) | |||
| 90 | return 0; | 90 | return 0; | 
| 91 | } | 91 | } | 
| 92 | 92 | ||
| 93 | /* | ||
| 94 | * The pending_packet_queue is special in that it's processed | ||
| 95 | * from hardirq context too (such as hpsb_bus_reset()). Hence | ||
| 96 | * split the lock class from the usual networking skb-head | ||
| 97 | * lock class by using a separate key for it: | ||
| 98 | */ | ||
| 99 | static struct lock_class_key pending_packet_queue_key; | ||
| 100 | |||
| 101 | static DEFINE_MUTEX(host_num_alloc); | ||
| 102 | |||
| 93 | /** | 103 | /** | 
| 94 | * hpsb_alloc_host - allocate a new host controller. | 104 | * hpsb_alloc_host - allocate a new host controller. | 
| 95 | * @drv: the driver that will manage the host controller | 105 | * @drv: the driver that will manage the host controller | 
| @@ -105,16 +115,6 @@ static int alloc_hostnum_cb(struct hpsb_host *host, void *__data) | |||
| 105 | * Return Value: a pointer to the &hpsb_host if successful, %NULL if | 115 | * Return Value: a pointer to the &hpsb_host if successful, %NULL if | 
| 106 | * no memory was available. | 116 | * no memory was available. | 
| 107 | */ | 117 | */ | 
| 108 | static DEFINE_MUTEX(host_num_alloc); | ||
| 109 | |||
| 110 | /* | ||
| 111 | * The pending_packet_queue is special in that it's processed | ||
| 112 | * from hardirq context too (such as hpsb_bus_reset()). Hence | ||
| 113 | * split the lock class from the usual networking skb-head | ||
| 114 | * lock class by using a separate key for it: | ||
| 115 | */ | ||
| 116 | static struct lock_class_key pending_packet_queue_key; | ||
| 117 | |||
| 118 | struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, | 118 | struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, | 
| 119 | struct device *dev) | 119 | struct device *dev) | 
| 120 | { | 120 | { | 
| @@ -143,9 +143,6 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, | |||
| 143 | for (i = 2; i < 16; i++) | 143 | for (i = 2; i < 16; i++) | 
| 144 | h->csr.gen_timestamp[i] = jiffies - 60 * HZ; | 144 | h->csr.gen_timestamp[i] = jiffies - 60 * HZ; | 
| 145 | 145 | ||
| 146 | for (i = 0; i < ARRAY_SIZE(h->tpool); i++) | ||
| 147 | HPSB_TPOOL_INIT(&h->tpool[i]); | ||
| 148 | |||
| 149 | atomic_set(&h->generation, 0); | 146 | atomic_set(&h->generation, 0); | 
| 150 | 147 | ||
| 151 | INIT_WORK(&h->delayed_reset, delayed_reset_bus, h); | 148 | INIT_WORK(&h->delayed_reset, delayed_reset_bus, h); | 
