Commit Graph

38864 Commits

Author SHA1 Message Date
Jake Burkholder
a11d7214fd Match "serial" as well as "se". 2003-03-31 18:21:52 +00:00
Nate Lawson
54f1f1d1e6 Clean up locking and resource management for pci/if_*
- Remove locking of the softc in the attach method, instead depending on
  bus_setup_intr being at the end of attach (delaying interrupt enable until
  after ether_ifattach is called)
- Call *_detach directly in the error case of attach, depending on checking
  in detach to only free resources that were allocated.  This puts all
  resource freeing in one place, avoiding thinkos that lead to memory leaks.
- Add bus_child_present check to calls to *_stop in the detach method to
  be sure hw is present before touching its registers.
- Remove bzero softc calls since device_t should do this for us.
- dc: move interrupt allocation back where it was before.  It was unnecessary
  to move it.  This reverts part of 1.88
- rl: move irq allocation before ether_ifattach.  Problems might have been
  caused by allocating the irq after enabling interrupts on the card.
- rl: call rl_stop before ether_ifdetach
- sf: call sf_stop before ether_ifdetach
- sis: add missed free of sis_tag
- sis: check errors from tag creation
- sis: move dmamem_alloc and dmamap_load to happen at same time as tag creation
- sk: remove duplicate initialization of sk_dev
- ste: add missed bus_generic_detach
- ti: call ti_stop before ether_ifdetach
- ti: add missed error setting in ti_rdata alloc failure
- vr: add missed error setting in I/O, memory mapping cases
- xl: add missed error setting in I/O, memory mapping cases
- xl: remove multi-level goto on attach failure
- xl: move dmamem_alloc and dmamap_load to happen at same time as tag creation
- Calls to free(9) are unconditional because it is valid to call free with a
  null pointer.

Reviewed by:	imp, mdodd
2003-03-31 17:29:43 +00:00
Alan Cox
7be80f55ba Recent changes to uipc_cow.c have eliminated the need for some sf_buf-
related variables to be global.  Make them either local to sf_buf_init() or
static.
2003-03-31 06:25:42 +00:00
Jeff Roberson
4c8a7679d0 - In npxsetregs don't set the floating point if td == fpcurthread not if
curthread == fpcurthread.  This is important when we're saving the fp
   state for a thread other than curthread as in from set_mcontext.
2003-03-31 00:32:43 +00:00
Scott Long
b85f5808f8 Add the ability to send 64-bit scatter/gather elements to aac cards. This
is enabled when both the size of bus_addr_t > 4 and the card claims support.

Don't wake up the kthread to allocate more commands if we know that we've
already allocated the max number of commands.
2003-03-30 21:47:16 +00:00
Poul-Henning Kamp
d2a0822e9d retire the "busy" field in bioqueues, it's served it's purpose. 2003-03-30 10:16:31 +00:00
Søren Schmidt
0c4b980607 Fix ATA_DEBUG case breakage. 2003-03-30 09:27:59 +00:00
Poul-Henning Kamp
d086f85ac4 Preparation commit before I start on the bioqueue lockdown:
Collect all the bits of bioqueue handing in subr_disk.c, vfs_bio.c is big
enough as it is and disksort already lives in subr_disk.c.
2003-03-30 08:51:23 +00:00
Matthew N. Dodd
d938c3689d Revert 1.21; this was local code that should not have been
committed.
2003-03-30 08:13:47 +00:00
Jake Burkholder
a271c2ed7f - Temporary fix so this compiles with 64 bit bus_addr_t.
Sponsored by:	DARPA, Network Associates Laboratories
Approved by:	scottl
2003-03-30 05:26:01 +00:00
Jake Burkholder
7ab9b220d9 - Add support for PAE and more than 4 gigs of ram on x86, dependent on the
kernel opition 'options PAE'.  This will only work with device drivers which
  either use busdma, or are able to handle 64 bit physical addresses.

Thanks to Lanny Baron from FreeBSD Systems for the loan of a test machine
with 6 gigs of ram.

Sponsored by:	DARPA, Network Associates Laboratories, FreeBSD Systems
2003-03-30 05:24:52 +00:00
Matthew N. Dodd
7caef8d92c Catch up with recent changes. 2003-03-30 05:06:15 +00:00
Mike Silbersack
709b85c372 Switch rl_encap over to using m_defrag.
No functional change, the previous rl_encap was correct wrt long
mbuf chains; this just reduces code duplication.

MFC after:	2 weeks
2003-03-30 03:45:28 +00:00
Jeff Roberson
abb0e6da6b - We are not guaranteed that read ahead blocks are not in memory already.
Check for B_DELWRI as well as B_CACHED before issuing io on a buffer.  This
   is especially important since we are changing the b_iocmd.
2003-03-30 02:57:32 +00:00
Jake Burkholder
de54353fb8 - Remove invalid casts.
Sponsored by:	DARPA, Network Associates Laboratories
2003-03-30 01:44:16 +00:00
Jake Burkholder
aea57872f0 - Convert all uses of pmap_pte and get_ptbase to pmap_pte_quick. When
accessing an alternate address space this causes 1 page table page at
  a time to be mapped in, rather than using the recursive mapping technique
  to map in an entire alternate address space.  The recursive mapping
  technique changes large portions of the address space and requires global
  tlb flushes, which seem to cause problems when PAE is enabled.  This will
  also allow IPIs to be avoided when mapping in new page table pages using
  the same technique as is used for pmap_copy_page and pmap_zero_page.

Sponsored by:	DARPA, Network Associates Laboratories
2003-03-30 01:16:19 +00:00
Maxime Henrion
6900a17c75 The object type can't be OBJT_PHYS in vm_mmap().
Reviewed by:	peter
2003-03-30 00:56:20 +00:00
Poul-Henning Kamp
376ceb799f Fix a bug in the ENOMEM pacing code which probably made it panic systems
after a lot of ENOMEM errors.
2003-03-29 22:34:37 +00:00
Matthew N. Dodd
672fc9ebf6 - Free interrupt handler in ep_free().
- Move ep_pccard_detach() to if_ep.c and rename to ep_detach()
- Specify detach methods for all bus frontends.
2003-03-29 22:27:41 +00:00
Poul-Henning Kamp
29c331bfaa Add create_geom and destroy_geom methods. 2003-03-29 22:14:21 +00:00
Poul-Henning Kamp
67ffbc63f3 remove a blank line. 2003-03-29 22:13:32 +00:00
Matthew N. Dodd
18e03d5e08 Checksum the configuration EEPROM. 2003-03-29 21:57:32 +00:00
Matthew N. Dodd
bb25efadc4 - Return error status instead of value in get_e().
- Modify ep_get_macaddr() to return an error status.
- Reverse the return value logic of eeprom_rdy().
2003-03-29 21:44:46 +00:00
Mike Silbersack
63b9b38eb8 Switch vr_encap over to using m_defrag instead of its own version
of the function.

No functional change, this driver already handled long mbuf chains
correctly.

MFC after:	2 weeks
2003-03-29 21:39:49 +00:00
Mike Silbersack
cda97c506e Update if_dc to use m_defrag, removing the semi-duplicate dc_coal
function.

Also, use m_defrag where appropriate to defrag long mbuf chains
in the same fashion as was done in if_sis.c.  Before this change,
if_dc would blow up and take down the interface if fed a really long
mbuf chain.

MFC after:	2 weeks
2003-03-29 21:27:07 +00:00
Andrew Gallatin
62f456b315 Fix the osf1 abi module on SMP systems by making the size of
a struct pmap be the same on both SMP and UP kernels.

It turns out that the size of a struct pmap is much larger on alpha
SMP systems due to the number of pm_asn's being dependant on MAX_CPU.
Since modules are supposed to be SMP agnostic, this has the affect of
moving around the "interesting bits" of the vmspace (daddr, dsize)
that the osf1 module wants to frob.  So the module ends up scribbling in a
pmap struct, and the user either sees a panic, or an application failure.

While here, I've also shrunk MAXCPU to 8 now that it affects the size
of pmap structs on UP systesm.  This should be plenty, as I'm
unware of any hardware we currently run in which supports more than 8
CPUs.
2003-03-29 18:22:29 +00:00
Mike Silbersack
58b2ce3bee Have sis_encap use m_defrag if:
1.  The chain passed in is > 31 fragments long
or
2.  The chain will not fit in the remaining descriptors without
    defragmentation.

This is slightly less clear than other network drivers because the sis
chips share one descriptor list for all packets, it seems.

Before this change, a > 127 fragment chain would get stuck in the IFQUEUE
permanently, bringing all network traffic to a halt.

MFC after:	2 weeks
2003-03-29 17:50:37 +00:00
Matthew N. Dodd
e3a2085326 opt_geom.h is no longer required for this module. 2003-03-29 16:13:11 +00:00
Matthew N. Dodd
991aa7bf9a Add 'idt' driver to module build. 2003-03-29 15:56:13 +00:00
Matthew N. Dodd
370f7f7c05 - Deal with netisr changes.
- Wrap idt_atm_harpconn() in conditional define T_ATM_BUFQUEUE
2003-03-29 15:55:04 +00:00
Matthew N. Dodd
56376071e3 Add module infrastructure for 'dpt' driver. 2003-03-29 15:47:13 +00:00
Matthew N. Dodd
79ac92f83c Add module infrastructure for 'if_ex'. 2003-03-29 15:41:44 +00:00
Matthew N. Dodd
20fae1ba5b - Declare ex_devclass in if_ex.c
- Rename module datastructures in if_ex_isa.c to be more standard.
2003-03-29 15:38:53 +00:00
Matthew N. Dodd
c0a71ab74a - Move ex_pccard_detach() to if_ex.c and rename it to ex_detach().
- Add detach method to ISA front end.
2003-03-29 15:34:26 +00:00
Matthew N. Dodd
ece0c30b62 Reformat for readability. 2003-03-29 15:33:04 +00:00
Matthew N. Dodd
81d9009a65 Add module infrastructure for 'vpd' and 'smbios' and move 'smbios'
to new home.
2003-03-29 15:20:45 +00:00
Matthew N. Dodd
dfcf25920b Remove useless code. 2003-03-29 14:51:50 +00:00
Matthew N. Dodd
21e2098cc9 Don't compile the identify method yet. 2003-03-29 14:50:14 +00:00
Matthew N. Dodd
b26809608c Register dependency on the elink module. 2003-03-29 13:45:17 +00:00
Matthew N. Dodd
187e120cbe Add module infrastructure for elink. 2003-03-29 13:42:20 +00:00
Matthew N. Dodd
dd4cb1b8b8 Add module infrastructure for if_ie. 2003-03-29 13:40:41 +00:00
Søren Schmidt
566cf07a7c Second round of updates to the ATA driver.
Clean up the DMA interface too much unneeded stuff crept in with
the busdma code back when.

Modify the ATA_IN* / ATA_OUT* macros so that resource and offset
are gotten from a table. That allows for new chipsets that doesn't
nessesarily have things ordered the good old way. This also removes
the need for the wierd PC98 resource functions.

Tested on: i386, PC98, Alpha, Sparc64
2003-03-29 13:37:09 +00:00
Matthew N. Dodd
50e960d918 - Move driver to newbus.
- Provide identify methods for EtherExpress and 3c507 cards; this
  means these cards no longer need wired configs.
- Provide a detach method.
2003-03-29 13:36:41 +00:00
Matthew N. Dodd
3330d5fb09 - Change ELINK_ID_PORT; the 3c507 likes 0x100 better.
- Add module metadata.
2003-03-29 13:18:20 +00:00
Matthew N. Dodd
d0859c8567 Clear the IFF_OACTIVE flag at the end of ieinit(). This prevents
the adapter from becoming wedged when when the interface is
is brought up by ether_ioctl() (when you set an IP address for example.)

Confirmed this "fix" from NetBSD's i82586 backend.  It seems hackish
to me but whatever.
2003-03-29 12:42:01 +00:00
Matthew N. Dodd
be8e35bebd 'speaker' not 'atspeaker' 2003-03-29 10:01:03 +00:00
Matthew N. Dodd
a71a307383 Retire 'atspeaker' and 'pcspeaker'. We'll use 'speaker' which
is the same as the config device directive.

Reminded by:	 Takahashi Yoshihiro <nyan@jp.FreeBSD.org>
2003-03-29 09:59:49 +00:00
Matthew N. Dodd
14b2046d29 Adjust shared memory allocation to work on cards with only 8 KB of RAM. 2003-03-29 09:49:22 +00:00
Matthew N. Dodd
563d4d8656 Clean up argument comments for bus_dma_tag_create() calls. 2003-03-29 09:46:10 +00:00
SUZUKI Shinsuke
db06e8a0dd fixed a mbuf leak when an IP packet from ESP tunnel is redirected
obtained from:	KAME
2003-03-29 08:31:28 +00:00