Bug 75761 - Serial driver misidentifies software modem pci card as 16x50 compatible serial pci card.
Serial driver misidentifies software modem pci card as 16x50 compatible seria...
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Brian Brock
Depends On:
  Show dependency treegraph
Reported: 2002-10-11 18:01 EDT by Luis Gutierrez
Modified: 2007-04-18 12:47 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2002-10-14 15:42:07 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Luis Gutierrez 2002-10-11 18:01:37 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.79 [en] (X11; U; Linux 2.4.18-3 i686; Nav)

Description of problem:
Broadcom makes a pci software modem solution which runs under Linux.  Our pci
card has sub-class == 0x3, prog. i/f == 0(generic modem), declares an i/o port
range and a memory range. This device's i/o port registers are in no way
compatible with a 16x50 uart but the serial driver incorrectly think so. The
serial driver then tries to configure our device as if it was a 16x50 uart
therefore accessing invalid registers in our modem. The pci spec lists
programing i/f values 1-4 to denote devices compatible w/ 16X50 uarts so the
serial driver should check that the pci devices' programing i/f corresponds to
one of these values before using the device. If the previous sugestion is not
acceptable, the serial driver should at least have code to prevent it from using
our modem. Checking for vendor id == 0x14e4(Broadcom) and subclass == 0x03 is
enough to identify our modem cards.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1 insert Broadcom pci modem
2 boot the system

Actual Results:  you get thie following message(RH 7.2, very similar messages in
7.3,8.0,AS 2.1):
Pci: found irq7 for device 00:0e.0 Redundant entry in serial
pci_table. Please send output of lspci-vv, this message (5348,16914,4136,1)
and the manufacturer and name of serial board or modem board to

Expected Results:  shouldnt see message described in "Actual Results".

Additional info:

This problem is present in RH versions 7.2,7.3,8.0 and Advanced Server 2.1.
Comment 1 Arjan van de Ven 2002-10-12 04:41:51 EDT
can you send me the driver for this card under a GPL license ?
Comment 2 Luis Gutierrez 2002-10-14 15:42:00 EDT
The modem driver has proprietary code and is not released under a GPL license.
We release the driver in binary form to PC OEM's. I dont think you'd need the
driver to reproduce this problem because the problem happens early in the boot
process way before the modem module is loaded. The problem is that the function
 serial_pci_guess_board() in drivers/char/serial.c incorrectly assumes that
devices w/ programing i/f == 0 are 16x50 compatible so it returns true when it
looks at our board. The serial driver then tries to access invalid registers in
our device
which cause pci bus errors.
Comment 3 Arjan van de Ven 2002-10-14 15:45:32 EDT
You release code that links into a GPL program without making it GPL?
You have guts legal wise...

Anyway this makes this bug a "you use binary only kernel modules" bug 
Comment 4 David Miller 2002-10-14 15:56:58 EDT
Also, PCI2.2 in Appendix D states that Interface class code "0" is
"XT-compatible serial controller", which means 8250 code can drive
it properly.

I've actually seen such controllers.
Your suggested change would break such systems.

"0" was a bad selection for interface code.

Comment 5 Luis Gutierrez 2002-10-14 16:17:23 EDT
To arjanv@redhat.com:
You have misunderstood the problem. The system crashes when *standard* linux
kernel boots with this PCI card inserted. It is irrelevant of the driver code.
Lets not assert any legal statements for the time being and concentrate on
solving the problem for our common customers.
To davem@redhat.com:
You have looked at the wrong entry in the PCI 2.2 Appendix D table:
"XT-compatible serial controller" is class=7, sub-class=0, i/f=0
while the PCI card in question has class=7, sub-class=3, i/f=0. This defines
"Generic Modem" with no definition of the interface type.
Please let us know what your next steps are going to be.

Comment 6 Arjan van de Ven 2002-10-14 16:21:01 EDT
my next steps are to ignore this bug from now on.
"common customers" would imply that Red Hat could sell support to customers who
use your hardware, and Red Hat Linux can't and won't support your hardware.
Comment 7 David Miller 2002-10-14 16:24:36 EDT
I note that the 07/02/00 entry also lists "multi-port serial controller"

Note You need to log in before you can comment on or make changes to this bug.