The PCCard daemon can hang indefinately while reading its
configuration file. If the last line of the file is a comment line
that does not end in a newline, the program goes into an infinite
loop searching for the non-existent newline.
This fix, provided by the PR, will allow files ending without a newline
to be read without hanging.
Submitted by: Crist J. Clark <cjclark@alum.mit.edu>
PR: bin/25791
block sizes.
This orginally worked in PAO-3 and worked on their r330 branch but got
broken in PAO-3 around December 1998!
Approved by: imp
Obtained from: PAO-3
IRQs from kernel.''..
With IBM ThinkPad600. ``sio1'' was disabled in BIOS
and irq 3 was free (also not listed in dmesg), I think.
But I could not use irq 3 for PC-Card with new(PIOCSRESOURCE
ioctl enabled) pccardd.
- If resource which was allocated for pcic was
requested via this ioctl, bus_alloc_resource
would be succeeded and that resource was
returned as free resource. So check whether
requested resource was used for pcic or not
before bus_alloc_resource test.
- merge SYS_RES_IRQ routine into other SYS_RES_*
routine and clean up.
problem reported by: Yohei Terada <terada@jiro.c.u-tokyo.ac.jp>
log insert/remove events using the logstr, if specified for that card,
or the manufacturer + version strings from the cis if not. This
eliminates the need to have logger in the pccard.conf file which makes
it easier to move pcardd to /sbin later if we need to. This also
reduces the pccard.conf file size from 53k to 28k, which will help the
install disk a little.
Also, minor cleanup of free usage (if (x != NULL) free(x); is
identical to free(x); for all versions of C that we care about).
Reviewed by: iwasaki (who proposed the logstr keyword).
Documentation and fixes to pccard.conf to follow.
- This feature will be enabled only if the string is
enclosed by '/' something like;
card "SunDisk" "/.*/"
- Also added matching additional information strings
followed by version string. This is for the card which is
difficult to idendentify by only the manufacturer and
card version strings matching.
card "MACNICA" "MIRACLE SCSI" "mPS100" "D.0"
Reviewed by: imp
Obtained from: PAO
This should solve tentatively the pccardd core dump problem when
there's no CIS (likely CardBus cards).
Later, this function will have regex CIS string comparison capability
too.
Obtained from: PAO
- Fixed bogus CIS tuple dumping (Network node ID, IRQ modes and etc.)
- Include telling drivers ethernet address if Network node ID
tuple is available. This is usefull for some bogus ehter cards which
can't get correct ethernet address from CIS tupple.
Obtained from: PAO3
(resource and card configuration being used) is to be maintained for
consistency. Part of resource pool re-initialization would be rewrite
later using on Warner-san's hints driver API :-)
Reviewed by: nate, imp and -nomads ML in Japan.
Obtained from: http://www.freebsd.org/~iwasaki/pccard/pccardd-signal.diff
Commited at: BSD HANAMI Party 2000 in Japan
/etc/defaults/pccard.conf in pccardd. But system default pccardd
config file is still /etc/pccard.conf.sample specified in /etc/rc.conf
for the testing this changes.
- improved `include' keyword function for error handling.
- now that resource pool (io, irq, mem) can be overridden.
- pccard config entries is searched following the first match rule if
there are more than two entries which have the same card identifier.
Note that the /etc/defaults/pccard.conf related files is not committed
at this time, will come a week later. I'll prepare the test version
of /etc/defaults/pccard.conf, /etc/pccard.conf and other files soon.
Reviewed by: imp and nomads in Japan.
member variable to find the configuration on new driver allocation.
Correct condition is that card_config and driver are not in use. Both
of them are cleared in card_removed() (conf->driver->card never be
cleared).
This fix problems `No free configuration for card' on insertion, and
pccardd core dump on removal in condition of the same driver but
different card.
Also this might be emergency measures, complete solution would be made
after Hosokawa-san come back.
Consulted with: imp
Waiting for: hosokawa
For example, when /etc/pccard.conf had ed0 in config line, but kernel
refused this name and said
devclass_alloc_unit: ed0 already exists, using next availale unit
number
Kernel used ed1 as device name and it did not match with config and
insert/remove lines. Fortunately, dhclient was called without args,
and it works, but if we wanted to use static IP address for PC-card,
it did not work.
This modification makes pccardd to execute insert/remove lines with
the true device name that returns from kernel. (Last change to
etc/pccard.conf.sample eliminated all hardwired device name from
insert/remove lines in /etc/pccard.conf)