Errata

Linux Device Drivers

Errata for Linux Device Drivers

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 14
1st paragram root#insmod hello.o

under kernel 2.2.15 and 2.4.1 it doesn't return message
"Hello,world". rmmod hello doesn't return "Goodbye cruel world".
I haven't tried it on other kernels yet.

Anonymous   
Printed Page 27
3rd paragraph (list)

This looks like your pasteup:

MOD_DEC_USE_COUNT .XET N .XE1 "MOD_DEC_USE_COUNT module"
./XET

Anonymous   
Printed Page 321
at the bottom

it says in the errata from 6/00 that the driver has to set the skb->free=1
in its tx-handling method. When we do that in our project, we get serious
problems with tcp. I have also "grep:ed" through the source code for
ethernet drivers in the 2.0.38 kernel and only de620.c sets skb->free=1, no
other driver does this. Also, your snull driver does not use skb->free=1
either.

question:
Is the errata (6/00) correct in this, i.e. should skb->free=1 in the tx
method and if so, why do we get problems with tcp.

Anonymous   
Printed Page 326
Description of field skb->len (midpoint of the page)

It presently reads:

unsigned long len;
The length of the data itself (skb->tail - skb->head).

It SHOULD read:

unsigned long len;
The length of the data itself (skb->tail - skb->data).

Anonymous   
Printed Page 350
First code sample

Third code sample line reads:
unsigned char *revision;
Should be:
unsigned char revision;

Anonymous   
Printed Page 353
2nd line of 2nd paragraph

Text currently reads as "is set if this is a memory region," and it should
read as either "is set if this is a I/O region," or "is clear if this is
a memory region,".

Anonymous   
Printed Page 409
3rd paragraph

Where it says:
"void pci_sync_single(struct pci_dev *pdev, dma_handle_t bus_addr,
size_t size, int direction);"

it should say:
"void pci_dma_sync_single(struct pci_dev *pdev, dma_handle_t bus_addr, size_t size,
int direction);"

Anonymous