Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
31893c62
Commit
31893c62
authored
Mar 05, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6
into nuts.davemloft.net:/disk1/BK/sparc-2.6
parents
a53bc753
0242b389
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
225 additions
and
139 deletions
+225
-139
arch/ppc/kernel/head.S
arch/ppc/kernel/head.S
+16
-16
drivers/bluetooth/hci_usb.c
drivers/bluetooth/hci_usb.c
+26
-9
drivers/bluetooth/hci_usb.h
drivers/bluetooth/hci_usb.h
+2
-1
drivers/pci/pci.ids
drivers/pci/pci.ids
+2
-0
drivers/serial/8250.c
drivers/serial/8250.c
+3
-7
drivers/serial/8250_pci.c
drivers/serial/8250_pci.c
+7
-2
drivers/serial/Kconfig
drivers/serial/Kconfig
+0
-6
drivers/serial/clps711x.c
drivers/serial/clps711x.c
+0
-9
drivers/serial/serial_core.c
drivers/serial/serial_core.c
+0
-5
fs/nfsd/export.c
fs/nfsd/export.c
+4
-9
fs/nfsd/nfsfh.c
fs/nfsd/nfsfh.c
+47
-33
include/linux/nfsd/nfsfh.h
include/linux/nfsd/nfsfh.h
+20
-1
include/linux/pci_ids.h
include/linux/pci_ids.h
+1
-0
include/linux/syscalls.h
include/linux/syscalls.h
+13
-13
include/linux/sysctl.h
include/linux/sysctl.h
+1
-0
include/net/bluetooth/hci.h
include/net/bluetooth/hci.h
+28
-18
include/net/bluetooth/hci_core.h
include/net/bluetooth/hci_core.h
+3
-0
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+6
-0
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+4
-0
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+6
-0
net/bluetooth/rfcomm/core.c
net/bluetooth/rfcomm/core.c
+1
-1
net/bluetooth/rfcomm/tty.c
net/bluetooth/rfcomm/tty.c
+10
-5
net/ipv4/igmp.c
net/ipv4/igmp.c
+7
-1
net/ipv4/ip_sockglue.c
net/ipv4/ip_sockglue.c
+9
-3
net/ipv4/sysctl_net_ipv4.c
net/ipv4/sysctl_net_ipv4.c
+9
-0
No files found.
arch/ppc/kernel/head.S
View file @
31893c62
...
...
@@ -1492,22 +1492,22 @@ BEGIN_FTR_SECTION
*
seems
that
doesn
't affect our ability to actually
*
write
to
these
SPRs
.
*/
mtspr
SPRN_DBAT4U
,
r
2
0
mtspr
SPRN_DBAT4L
,
r
2
0
mtspr
SPRN_DBAT5U
,
r
2
0
mtspr
SPRN_DBAT5L
,
r
2
0
mtspr
SPRN_DBAT6U
,
r
2
0
mtspr
SPRN_DBAT6L
,
r
2
0
mtspr
SPRN_DBAT7U
,
r
2
0
mtspr
SPRN_DBAT7L
,
r
2
0
mtspr
SPRN_IBAT4U
,
r
2
0
mtspr
SPRN_IBAT4L
,
r
2
0
mtspr
SPRN_IBAT5U
,
r
2
0
mtspr
SPRN_IBAT5L
,
r
2
0
mtspr
SPRN_IBAT6U
,
r
2
0
mtspr
SPRN_IBAT6L
,
r
2
0
mtspr
SPRN_IBAT7U
,
r
2
0
mtspr
SPRN_IBAT7L
,
r
2
0
mtspr
SPRN_DBAT4U
,
r
1
0
mtspr
SPRN_DBAT4L
,
r
1
0
mtspr
SPRN_DBAT5U
,
r
1
0
mtspr
SPRN_DBAT5L
,
r
1
0
mtspr
SPRN_DBAT6U
,
r
1
0
mtspr
SPRN_DBAT6L
,
r
1
0
mtspr
SPRN_DBAT7U
,
r
1
0
mtspr
SPRN_DBAT7L
,
r
1
0
mtspr
SPRN_IBAT4U
,
r
1
0
mtspr
SPRN_IBAT4L
,
r
1
0
mtspr
SPRN_IBAT5U
,
r
1
0
mtspr
SPRN_IBAT5L
,
r
1
0
mtspr
SPRN_IBAT6U
,
r
1
0
mtspr
SPRN_IBAT6L
,
r
1
0
mtspr
SPRN_IBAT7U
,
r
1
0
mtspr
SPRN_IBAT7L
,
r
1
0
END_FTR_SECTION_IFSET
(
CPU_FTR_HAS_HIGH_BATS
)
blr
...
...
drivers/bluetooth/hci_usb.c
View file @
31893c62
...
...
@@ -31,7 +31,7 @@
*
* $Id: hci_usb.c,v 1.8 2002/07/18 17:23:09 maxk Exp $
*/
#define VERSION "2.
4
"
#define VERSION "2.
5
"
#include <linux/config.h>
#include <linux/module.h>
...
...
@@ -70,12 +70,6 @@
static
struct
usb_driver
hci_usb_driver
;
static
struct
usb_device_id
bluetooth_ids
[]
=
{
/* Broadcom BCM2033 without firmware */
{
USB_DEVICE
(
0x0a5c
,
0x2033
),
.
driver_info
=
HCI_IGNORE
},
/* Digianswer device */
{
USB_DEVICE
(
0x08fd
,
0x0001
),
.
driver_info
=
HCI_DIGIANSWER
},
/* Generic Bluetooth USB device */
{
USB_DEVICE_INFO
(
HCI_DEV_CLASS
,
HCI_DEV_SUBCLASS
,
HCI_DEV_PROTOCOL
)
},
...
...
@@ -93,6 +87,19 @@ static struct usb_device_id bluetooth_ids[] = {
MODULE_DEVICE_TABLE
(
usb
,
bluetooth_ids
);
static
struct
usb_device_id
blacklist_ids
[]
=
{
/* Broadcom BCM2033 without firmware */
{
USB_DEVICE
(
0x0a5c
,
0x2033
),
.
driver_info
=
HCI_IGNORE
},
/* Broadcom BCM2035 */
{
USB_DEVICE
(
0x0a5c
,
0x200a
),
.
driver_info
=
HCI_RESET
},
/* Digianswer device */
{
USB_DEVICE
(
0x08fd
,
0x0001
),
.
driver_info
=
HCI_DIGIANSWER
},
{
}
/* Terminating entry */
};
struct
_urb
*
_urb_alloc
(
int
isoc
,
int
gfp
)
{
struct
_urb
*
_urb
=
kmalloc
(
sizeof
(
struct
_urb
)
+
...
...
@@ -644,7 +651,7 @@ static inline int __recv_frame(struct hci_usb *husb, int type, void *data, int c
#endif
}
BT_DBG
(
"new packet len %d"
,
len
);
skb
=
bt_skb_alloc
(
len
,
GFP_ATOMIC
);
if
(
!
skb
)
{
BT_ERR
(
"%s no memory for the packet"
,
husb
->
hdev
->
name
);
...
...
@@ -790,6 +797,13 @@ int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
BT_DBG
(
"udev %p ifnum %d"
,
udev
,
ifnum
);
if
(
!
id
->
driver_info
)
{
const
struct
usb_device_id
*
match
;
match
=
usb_match_id
(
intf
,
blacklist_ids
);
if
(
match
)
id
=
match
;
}
iface
=
udev
->
actconfig
->
interface
[
0
];
if
(
id
->
driver_info
&
HCI_IGNORE
)
...
...
@@ -928,6 +942,9 @@ int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
hdev
->
owner
=
THIS_MODULE
;
if
(
id
->
driver_info
&
HCI_RESET
)
set_bit
(
HCI_QUIRK_RESET_ON_INIT
,
&
hdev
->
quirks
);
if
(
hci_register_dev
(
hdev
)
<
0
)
{
BT_ERR
(
"Can't register HCI device"
);
hci_free_dev
(
hdev
);
...
...
@@ -994,6 +1011,6 @@ void hci_usb_cleanup(void)
module_init
(
hci_usb_init
);
module_exit
(
hci_usb_cleanup
);
MODULE_AUTHOR
(
"Maxim Krasnyansky <maxk@qualcomm.com>"
);
MODULE_AUTHOR
(
"Maxim Krasnyansky <maxk@qualcomm.com>
, Marcel Holtmann <marcel@holtmann.org>
"
);
MODULE_DESCRIPTION
(
"Bluetooth HCI USB driver ver "
VERSION
);
MODULE_LICENSE
(
"GPL"
);
drivers/bluetooth/hci_usb.h
View file @
31893c62
...
...
@@ -38,7 +38,8 @@
#define HCI_DIGI_REQ 0x40
#define HCI_IGNORE 0x01
#define HCI_DIGIANSWER 0x02
#define HCI_RESET 0x02
#define HCI_DIGIANSWER 0x04
#define HCI_MAX_IFACE_NUM 3
...
...
drivers/pci/pci.ids
View file @
31893c62
...
...
@@ -5601,6 +5601,8 @@
14da National Aerospace Laboratories
14db AFAVLAB Technology Inc
2120 TK9902
2180 P028
2182 P030
14dc Amplicon Liveline Ltd
0000 PCI230
0001 PCI242
...
...
drivers/serial/8250.c
View file @
31893c62
...
...
@@ -16,12 +16,8 @@
*
* A note about mapbase / membase
*
* mapbase is the physical address of the IO port. Currently, we don't
* support this very well, and it may well be dropped from this driver
* in future. As such, mapbase should be NULL.
*
* membase is an 'ioremapped' cookie. This is compatible with the old
* serial.c driver, and is currently the preferred form.
* mapbase is the physical address of the IO port.
* membase is an 'ioremapped' cookie.
*/
#include <linux/config.h>
#include <linux/module.h>
...
...
@@ -1976,7 +1972,7 @@ static int __init serial8250_console_setup(struct console *co, char *options)
if
(
co
->
index
>=
UART_NR
)
co
->
index
=
0
;
port
=
&
serial8250_ports
[
co
->
index
].
port
;
if
(
port
->
type
==
PORT_UNKNOWN
)
if
(
!
port
->
ops
)
return
-
ENODEV
;
/*
...
...
drivers/serial/8250_pci.c
View file @
31893c62
...
...
@@ -145,8 +145,10 @@ afavlab_setup(struct pci_dev *dev, struct pci_board *board,
bar
=
FL_GET_BASE
(
board
->
flags
);
if
(
idx
<
4
)
bar
+=
idx
;
else
else
{
bar
=
4
;
offset
+=
(
idx
-
4
)
*
board
->
uart_offset
;
}
return
setup_port
(
dev
,
req
,
bar
,
offset
,
board
->
reg_shift
);
}
...
...
@@ -1772,7 +1774,7 @@ static struct pci_device_id serial_pci_tbl[] = {
pbn_b0_4_115200
},
{
PCI_VENDOR_ID_OXSEMI
,
PCI_DEVICE_ID_OXSEMI_16PCI952
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b0_
2_1152
00
},
pbn_b0_
bt_2_9216
00
},
/*
* Digitan DS560-558, from jimd@esoft.com
...
...
@@ -1891,6 +1893,9 @@ static struct pci_device_id serial_pci_tbl[] = {
{
PCI_VENDOR_ID_AFAVLAB
,
PCI_DEVICE_ID_AFAVLAB_P028
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b0_bt_8_115200
},
{
PCI_VENDOR_ID_AFAVLAB
,
PCI_DEVICE_ID_AFAVLAB_P030
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b0_bt_8_115200
},
{
PCI_VENDOR_ID_LAVA
,
PCI_DEVICE_ID_LAVA_DSERIAL
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
...
...
drivers/serial/Kconfig
View file @
31893c62
...
...
@@ -250,12 +250,6 @@ config SERIAL_CLPS711X_CONSOLE
your boot loader (lilo or loadlin) about how to pass options to the
kernel at boot time.)
config SERIAL_CLPS711X_OLD_NAME
bool "Use the old 2.4 names for CLPS711X serial port"
depends on SERIAL_CLPS711X=y
help
::: To be written :::
config SERIAL_DZ
bool "DECstation DZ serial driver"
depends on DECSTATION
...
...
drivers/serial/clps711x.c
View file @
31893c62
...
...
@@ -49,19 +49,10 @@
#define UART_NR 2
#ifndef CONFIG_SERIAL_CLPS711X_OLD_NAME
#define SERIAL_CLPS711X_MAJOR 204
#define SERIAL_CLPS711X_MINOR 40
#define SERIAL_CLPS711X_NR UART_NR
#else
#warning The old names/device number for this driver if compatabity is needed
#define SERIAL_CLPS711X_MAJOR 204
#define SERIAL_CLPS711X_MINOR 16
#define SERIAL_CLPS711X_NR UART_NR
#endif
/*
* We use the relevant SYSCON register as a base address for these ports.
*/
...
...
drivers/serial/serial_core.c
View file @
31893c62
...
...
@@ -175,8 +175,6 @@ static int uart_startup(struct uart_state *state, int init_hw)
uart_circ_clear
(
&
info
->
xmit
);
}
port
->
mctrl
=
0
;
retval
=
port
->
ops
->
startup
(
port
);
if
(
retval
==
0
)
{
if
(
init_hw
)
{
...
...
@@ -1874,9 +1872,6 @@ uart_set_options(struct uart_port *port, struct console *co,
if
(
flow
==
'r'
)
termios
.
c_cflag
|=
CRTSCTS
;
if
(
!
port
->
ops
)
return
0
;
/* "console=" on ia64 */
port
->
ops
->
set_termios
(
port
,
&
termios
,
NULL
);
co
->
cflag
=
termios
.
c_cflag
;
...
...
fs/nfsd/export.c
View file @
31893c62
...
...
@@ -56,11 +56,6 @@ static int exp_verify_string(char *cp, int max);
#define EXPKEY_HASHMASK (EXPKEY_HASHMAX -1)
static
struct
cache_head
*
expkey_table
[
EXPKEY_HASHMAX
];
static
inline
int
key_len
(
int
type
)
{
return
type
==
0
?
8
:
type
==
1
?
4
:
12
;
}
static
inline
int
svc_expkey_hash
(
struct
svc_expkey
*
item
)
{
int
hash
=
item
->
ek_fsidtype
;
...
...
@@ -547,8 +542,8 @@ exp_get_key(svc_client *clp, dev_t dev, ino_t ino)
mk_fsid_v0
(
fsidv
,
dev
,
ino
);
return
exp_find_key
(
clp
,
0
,
fsidv
,
NULL
);
}
mk_fsid_v
2
(
fsidv
,
dev
,
ino
);
return
exp_find_key
(
clp
,
2
,
fsidv
,
NULL
);
mk_fsid_v
3
(
fsidv
,
dev
,
ino
);
return
exp_find_key
(
clp
,
3
,
fsidv
,
NULL
);
}
/*
...
...
@@ -684,8 +679,8 @@ static int exp_hash(struct auth_domain *clp, struct svc_export *exp)
mk_fsid_v0
(
fsid
,
dev
,
inode
->
i_ino
);
return
exp_set_key
(
clp
,
0
,
fsid
,
exp
);
}
mk_fsid_v
2
(
fsid
,
dev
,
inode
->
i_ino
);
return
exp_set_key
(
clp
,
2
,
fsid
,
exp
);
mk_fsid_v
3
(
fsid
,
dev
,
inode
->
i_ino
);
return
exp_set_key
(
clp
,
3
,
fsid
,
exp
);
}
static
void
exp_unhash
(
struct
svc_export
*
exp
)
...
...
fs/nfsd/nfsfh.c
View file @
31893c62
...
...
@@ -117,19 +117,14 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
case
0
:
break
;
default:
goto
out
;
}
switch
(
fh
->
fh_fsid_type
)
{
case
0
:
len
=
2
;
break
;
case
1
:
len
=
1
;
break
;
case
2
:
len
=
key_len
(
fh
->
fh_fsid_type
)
/
4
;
if
(
len
==
0
)
goto
out
;
if
(
fh
->
fh_fsid_type
==
2
)
{
/* deprecated, convert to type 3 */
len
=
3
;
break
;
default:
goto
out
;
fh
->
fh_fsid_type
=
3
;
fh
->
fh_fsid
[
0
]
=
new_encode_dev
(
MKDEV
(
ntohl
(
fh
->
fh_fsid
[
0
]),
ntohl
(
fh
->
fh_fsid
[
1
])));
fh
->
fh_fsid
[
1
]
=
fh
->
fh_fsid
[
2
]
;
}
if
((
data_left
-=
len
)
<
0
)
goto
out
;
exp
=
exp_find
(
rqstp
->
rq_client
,
fh
->
fh_fsid_type
,
datap
,
&
rqstp
->
rq_chandle
);
...
...
@@ -336,19 +331,31 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, st
parent
->
d_name
.
name
,
dentry
->
d_name
.
name
,
(
inode
?
inode
->
i_ino
:
0
));
/* for large devnums rules are simple */
if
(
!
old_valid_dev
(
ex_dev
))
{
ref_fh_version
=
1
;
if
(
exp
->
ex_flags
&
NFSEXP_FSID
)
ref_fh_fsid_type
=
1
;
else
ref_fh_fsid_type
=
2
;
}
else
if
(
ref_fh
)
{
if
(
ref_fh
)
{
ref_fh_version
=
ref_fh
->
fh_handle
.
fh_version
;
ref_fh_fsid_type
=
ref_fh
->
fh_handle
.
fh_fsid_type
;
if
(
!
(
exp
->
ex_flags
&
NFSEXP_FSID
)
||
ref_fh_fsid_type
==
2
)
if
(
ref_fh_version
==
0xca
)
ref_fh_fsid_type
=
0
;
else
ref_fh_fsid_type
=
ref_fh
->
fh_handle
.
fh_fsid_type
;
if
(
ref_fh_fsid_type
>
3
)
ref_fh_fsid_type
=
0
;
}
/* make sure ref_fh type works for given export */
if
(
ref_fh_fsid_type
==
1
&&
!
(
exp
->
ex_flags
&
NFSEXP_FSID
))
{
/* if we don't have an fsid, we cannot provide one... */
ref_fh_fsid_type
=
0
;
}
if
(
!
old_valid_dev
(
ex_dev
)
&&
ref_fh_fsid_type
==
0
)
{
/* for newer device numbers, we must use a newer fsid format */
ref_fh_version
=
1
;
ref_fh_fsid_type
=
3
;
}
if
(
old_valid_dev
(
ex_dev
)
&&
(
ref_fh_fsid_type
==
2
||
ref_fh_fsid_type
==
3
))
/* must use type1 for smaller device numbers */
ref_fh_fsid_type
=
0
;
if
(
ref_fh
==
fhp
)
fh_put
(
ref_fh
);
...
...
@@ -376,16 +383,22 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, st
if
(
inode
)
_fh_update_old
(
dentry
,
exp
,
&
fhp
->
fh_handle
);
}
else
{
int
len
;
fhp
->
fh_handle
.
fh_version
=
1
;
fhp
->
fh_handle
.
fh_auth_type
=
0
;
datap
=
fhp
->
fh_handle
.
fh_auth
+
0
;
fhp
->
fh_handle
.
fh_fsid_type
=
ref_fh_fsid_type
;
switch
(
ref_fh_fsid_type
)
{
case
0
:
/*
* fsid_type 0:
* 2byte major, 2byte minor, 4byte inode
*/
mk_fsid_v0
(
datap
,
ex_dev
,
exp
->
ex_dentry
->
d_inode
->
i_ino
);
case
1
:
/* fsid_type 1 == 4 bytes filesystem id */
mk_fsid_v1
(
datap
,
exp
->
ex_fsid
);
datap
+=
1
;
fhp
->
fh_handle
.
fh_size
=
2
*
4
;
break
;
case
2
:
/*
...
...
@@ -394,21 +407,22 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, st
*/
mk_fsid_v2
(
datap
,
ex_dev
,
exp
->
ex_dentry
->
d_inode
->
i_ino
);
datap
+=
3
;
fhp
->
fh_handle
.
fh_size
=
4
*
4
;
break
;
default
:
case
3
:
/*
* fsid_type
0
:
*
2byte major, 2byte mino
r, 4byte inode
* fsid_type
3
:
*
4byte devicenumbe
r, 4byte inode
*/
mk_fsid_v
0
(
datap
,
ex_dev
,
mk_fsid_v
3
(
datap
,
ex_dev
,
exp
->
ex_dentry
->
d_inode
->
i_ino
);
datap
+=
2
;
fhp
->
fh_handle
.
fh_size
=
3
*
4
;
break
;
}
len
=
key_len
(
ref_fh_fsid_type
);
datap
+=
len
/
4
;
fhp
->
fh_handle
.
fh_size
=
4
+
len
;
if
(
inode
)
{
int
size
=
fhp
->
fh_maxsize
/
4
-
3
;
int
size
=
(
fhp
->
fh_maxsize
-
len
-
4
)
/
4
;
fhp
->
fh_handle
.
fh_fileid_type
=
_fh_update
(
dentry
,
exp
,
datap
,
&
size
);
fhp
->
fh_handle
.
fh_size
+=
size
*
4
;
...
...
include/linux/nfsd/nfsfh.h
View file @
31893c62
...
...
@@ -66,8 +66,9 @@ struct nfs_fhbase_old {
* 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number
* NOTE: we cannot use the kdev_t device id value, because kdev_t.h
* says we mustn't. We must break it up and reassemble.
* Possible future encodings:
* 1 - 4 byte user specified identifier
* 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED
* 3 - 4 byte device id, encoded for user-space, 4 byte inode number
*
* The fileid_type identified how the file within the filesystem is encoded.
* This is (will be) passed to, and set by, the underlying filesystem if it supports
...
...
@@ -114,6 +115,7 @@ struct knfsd_fh {
#define fh_auth_type fh_base.fh_new.fb_auth_type
#define fh_fileid_type fh_base.fh_new.fb_fileid_type
#define fh_auth fh_base.fh_new.fb_auth
#define fh_fsid fh_base.fh_new.fb_auth
#ifdef __KERNEL__
...
...
@@ -183,6 +185,23 @@ static inline void mk_fsid_v2(u32 *fsidv, dev_t dev, ino_t ino)
fsidv
[
2
]
=
ino_t_to_u32
(
ino
);
}
static
inline
void
mk_fsid_v3
(
u32
*
fsidv
,
dev_t
dev
,
ino_t
ino
)
{
fsidv
[
0
]
=
new_encode_dev
(
dev
);
fsidv
[
1
]
=
ino_t_to_u32
(
ino
);
}
static
inline
int
key_len
(
int
type
)
{
switch
(
type
)
{
case
0
:
return
8
;
case
1
:
return
4
;
case
2
:
return
12
;
case
3
:
return
8
;
default:
return
0
;
}
}
/*
* Shorthand for dprintk()'s
*/
...
...
include/linux/pci_ids.h
View file @
31893c62
...
...
@@ -1808,6 +1808,7 @@
#define PCI_VENDOR_ID_AFAVLAB 0x14db
#define PCI_DEVICE_ID_AFAVLAB_P028 0x2180
#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182
#define PCI_VENDOR_ID_BROADCOM 0x14e4
#define PCI_DEVICE_ID_TIGON3_5700 0x1644
...
...
include/linux/syscalls.h
View file @
31893c62
...
...
@@ -386,24 +386,24 @@ asmlinkage long sys_getdents64(unsigned int fd,
unsigned
int
count
);
asmlinkage
long
sys_setsockopt
(
int
fd
,
int
level
,
int
optname
,
char
*
optval
,
int
optlen
);
char
__user
*
optval
,
int
optlen
);
asmlinkage
long
sys_getsockopt
(
int
fd
,
int
level
,
int
optname
,
char
__user
*
optval
,
int
__user
*
optlen
);
asmlinkage
long
sys_bind
(
int
,
struct
sockaddr
*
,
int
);
asmlinkage
long
sys_connect
(
int
,
struct
sockaddr
*
,
int
);
asmlinkage
long
sys_accept
(
int
,
struct
sockaddr
*
,
int
*
);
asmlinkage
long
sys_getsockname
(
int
,
struct
sockaddr
*
,
int
*
);
asmlinkage
long
sys_getpeername
(
int
,
struct
sockaddr
*
,
int
*
);
asmlinkage
long
sys_send
(
int
,
void
*
,
size_t
,
unsigned
);
asmlinkage
long
sys_sendto
(
int
,
void
*
,
size_t
,
unsigned
,
struct
sockaddr
*
,
int
);
asmlinkage
long
sys_bind
(
int
,
struct
sockaddr
__user
*
,
int
);
asmlinkage
long
sys_connect
(
int
,
struct
sockaddr
__user
*
,
int
);
asmlinkage
long
sys_accept
(
int
,
struct
sockaddr
__user
*
,
int
__user
*
);
asmlinkage
long
sys_getsockname
(
int
,
struct
sockaddr
__user
*
,
int
__user
*
);
asmlinkage
long
sys_getpeername
(
int
,
struct
sockaddr
__user
*
,
int
__user
*
);
asmlinkage
long
sys_send
(
int
,
void
__user
*
,
size_t
,
unsigned
);
asmlinkage
long
sys_sendto
(
int
,
void
__user
*
,
size_t
,
unsigned
,
struct
sockaddr
__user
*
,
int
);
asmlinkage
long
sys_sendmsg
(
int
fd
,
struct
msghdr
__user
*
msg
,
unsigned
flags
);
asmlinkage
long
sys_recv
(
int
,
void
*
,
size_t
,
unsigned
);
asmlinkage
long
sys_recvfrom
(
int
,
void
*
,
size_t
,
unsigned
,
struct
sockaddr
*
,
int
*
);
asmlinkage
long
sys_recv
(
int
,
void
__user
*
,
size_t
,
unsigned
);
asmlinkage
long
sys_recvfrom
(
int
,
void
__user
*
,
size_t
,
unsigned
,
struct
sockaddr
__user
*
,
int
__user
*
);
asmlinkage
long
sys_recvmsg
(
int
fd
,
struct
msghdr
__user
*
msg
,
unsigned
flags
);
asmlinkage
long
sys_socket
(
int
,
int
,
int
);
asmlinkage
long
sys_socketpair
(
int
,
int
,
int
,
int
[
2
]
);
asmlinkage
long
sys_socketpair
(
int
,
int
,
int
,
int
__user
*
);
asmlinkage
long
sys_socketcall
(
int
call
,
unsigned
long
__user
*
args
);
asmlinkage
long
sys_listen
(
int
,
int
);
asmlinkage
long
sys_poll
(
struct
pollfd
__user
*
ufds
,
unsigned
int
nfds
,
...
...
include/linux/sysctl.h
View file @
31893c62
...
...
@@ -321,6 +321,7 @@ enum
NET_TCP_LOW_LATENCY
=
93
,
NET_IPV4_IPFRAG_SECRET_INTERVAL
=
94
,
NET_TCP_WESTWOOD
=
95
,
NET_IPV4_IGMP_MAX_MSF
=
96
,
};
enum
{
...
...
include/net/bluetooth/hci.h
View file @
31893c62
...
...
@@ -35,21 +35,31 @@
#define HCI_MAX_FRAME_SIZE (HCI_MAX_ACL_SIZE + 4)
/* HCI dev events */
#define HCI_DEV_REG 1
#define HCI_DEV_UNREG 2
#define HCI_DEV_UP 3
#define HCI_DEV_DOWN 4
#define HCI_DEV_SUSPEND 5
#define HCI_DEV_RESUME 6
#define HCI_DEV_REG 1
#define HCI_DEV_UNREG 2
#define HCI_DEV_UP 3
#define HCI_DEV_DOWN 4
#define HCI_DEV_SUSPEND 5
#define HCI_DEV_RESUME 6
/* HCI notify events */
#define HCI_NOTIFY_CONN_ADD 1
#define HCI_NOTIFY_CONN_DEL 2
#define HCI_NOTIFY_VOICE_SETTING 3
/* HCI device types */
#define HCI_VHCI 0
#define HCI_USB 1
#define HCI_PCCARD 2
#define HCI_UART
3
#define HCI_RS232
4
#define HCI_UART 3
#define HCI_RS232 4
#define HCI_PCI 5
/* HCI device quirks */
enum
{
HCI_QUIRK_RESET_ON_INIT
};
/* HCI device flags */
enum
{
HCI_UP
,
...
...
@@ -90,24 +100,24 @@ enum {
#define HCIINQUIRY _IOR('H', 240, int)
/* HCI timeouts */
#define HCI_CONN_TIMEOUT
(HZ * 40)
#define HCI_DISCONN_TIMEOUT
(HZ * 2)
#define HCI_CONN_TIMEOUT (HZ * 40)
#define HCI_DISCONN_TIMEOUT (HZ * 2)
#define HCI_CONN_IDLE_TIMEOUT (HZ * 60)
/* HCI Packet types */
#define HCI_COMMAND_PKT 0x01
#define HCI_ACLDATA_PKT
0x02
#define HCI_SCODATA_PKT
0x03
#define HCI_ACLDATA_PKT
0x02
#define HCI_SCODATA_PKT
0x03
#define HCI_EVENT_PKT 0x04
#define HCI_UNKNOWN_PKT 0xff
/* HCI Packet types */
#define HCI_DM1
0x0008
#define HCI_DM3
0x0400
#define HCI_DM5
0x4000
#define HCI_DH1
0x0010
#define HCI_DH3
0x0800
#define HCI_DH5
0x8000
#define HCI_DM1
0x0008
#define HCI_DM3
0x0400
#define HCI_DM5
0x4000
#define HCI_DH1
0x0010
#define HCI_DH3
0x0800
#define HCI_DH5
0x8000
#define HCI_HV1 0x0020
#define HCI_HV2 0x0040
...
...
include/net/bluetooth/hci_core.h
View file @
31893c62
...
...
@@ -77,6 +77,8 @@ struct hci_dev {
__u16
link_policy
;
__u16
link_mode
;
unsigned
long
quirks
;
atomic_t
cmd_cnt
;
unsigned
int
acl_cnt
;
unsigned
int
sco_cnt
;
...
...
@@ -128,6 +130,7 @@ struct hci_dev {
int
(
*
flush
)(
struct
hci_dev
*
hdev
);
int
(
*
send
)(
struct
sk_buff
*
skb
);
void
(
*
destruct
)(
struct
hci_dev
*
hdev
);
void
(
*
notify
)(
struct
hci_dev
*
hdev
,
unsigned
int
evt
);
int
(
*
ioctl
)(
struct
hci_dev
*
hdev
,
unsigned
int
cmd
,
unsigned
long
arg
);
};
...
...
net/bluetooth/hci_conn.c
View file @
31893c62
...
...
@@ -170,6 +170,9 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
hci_conn_hash_add
(
hdev
,
conn
);
tasklet_enable
(
&
hdev
->
tx_task
);
if
(
hdev
->
notify
)
hdev
->
notify
(
hdev
,
HCI_NOTIFY_CONN_ADD
);
return
conn
;
}
...
...
@@ -196,6 +199,9 @@ int hci_conn_del(struct hci_conn *conn)
hdev
->
acl_cnt
+=
conn
->
sent
;
}
if
(
hdev
->
notify
)
hdev
->
notify
(
hdev
,
HCI_NOTIFY_CONN_DEL
);
tasklet_disable
(
&
hdev
->
tx_task
);
hci_conn_hash_del
(
hdev
,
conn
);
tasklet_enable
(
&
hdev
->
tx_task
);
...
...
net/bluetooth/hci_core.c
View file @
31893c62
...
...
@@ -189,6 +189,10 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
/* Mandatory initialization */
/* Reset */
if
(
test_bit
(
HCI_QUIRK_RESET_ON_INIT
,
&
hdev
->
quirks
))
hci_send_cmd
(
hdev
,
OGF_HOST_CTL
,
OCF_RESET
,
0
,
NULL
);
/* Read Local Supported Features */
hci_send_cmd
(
hdev
,
OGF_INFO_PARAM
,
OCF_READ_LOCAL_FEATURES
,
0
,
NULL
);
...
...
net/bluetooth/hci_event.c
View file @
31893c62
...
...
@@ -232,6 +232,9 @@ static void hci_cc_host_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb
hdev
->
voice_setting
=
setting
;
BT_DBG
(
"%s: voice setting 0x%04x"
,
hdev
->
name
,
setting
);
if
(
hdev
->
notify
)
hdev
->
notify
(
hdev
,
HCI_NOTIFY_VOICE_SETTING
);
}
break
;
...
...
@@ -247,6 +250,9 @@ static void hci_cc_host_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb
hdev
->
voice_setting
=
setting
;
BT_DBG
(
"%s: voice setting 0x%04x"
,
hdev
->
name
,
setting
);
if
(
hdev
->
notify
)
hdev
->
notify
(
hdev
,
HCI_NOTIFY_VOICE_SETTING
);
}
hci_req_complete
(
hdev
,
status
);
break
;
...
...
net/bluetooth/rfcomm/core.c
View file @
31893c62
...
...
@@ -50,7 +50,7 @@
#include <net/bluetooth/l2cap.h>
#include <net/bluetooth/rfcomm.h>
#define VERSION "1.
1
"
#define VERSION "1.
2
"
#ifndef CONFIG_BT_RFCOMM_DEBUG
#undef BT_DBG
...
...
net/bluetooth/rfcomm/tty.c
View file @
31893c62
...
...
@@ -50,6 +50,8 @@
#define RFCOMM_TTY_MAJOR 216
/* device node major id of the usb/bluetooth.c driver */
#define RFCOMM_TTY_MINOR 0
static
struct
tty_driver
*
rfcomm_tty_driver
;
struct
rfcomm_dev
{
struct
list_head
list
;
atomic_t
refcnt
;
...
...
@@ -98,6 +100,8 @@ static void rfcomm_dev_destruct(struct rfcomm_dev *dev)
rfcomm_dlc_put
(
dlc
);
tty_unregister_device
(
rfcomm_tty_driver
,
dev
->
id
);
/* Refcount should only hit zero when called from rfcomm_dev_del()
which will have taken us off the list. Everything else are
refcounting bugs. */
...
...
@@ -239,8 +243,11 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)
if
(
err
)
{
kfree
(
dev
);
return
err
;
}
else
return
dev
->
id
;
}
tty_register_device
(
rfcomm_tty_driver
,
dev
->
id
,
NULL
);
return
dev
->
id
;
}
static
void
rfcomm_dev_del
(
struct
rfcomm_dev
*
dev
)
...
...
@@ -871,8 +878,6 @@ static int rfcomm_tty_tiocmset(struct tty_struct *tty, struct file *filp, unsign
/* ---- TTY structure ---- */
static
struct
tty_driver
*
rfcomm_tty_driver
;
static
struct
tty_operations
rfcomm_ops
=
{
.
open
=
rfcomm_tty_open
,
.
close
=
rfcomm_tty_close
,
...
...
@@ -906,7 +911,7 @@ int rfcomm_init_ttys(void)
rfcomm_tty_driver
->
minor_start
=
RFCOMM_TTY_MINOR
;
rfcomm_tty_driver
->
type
=
TTY_DRIVER_TYPE_SERIAL
;
rfcomm_tty_driver
->
subtype
=
SERIAL_TYPE_NORMAL
;
rfcomm_tty_driver
->
flags
=
TTY_DRIVER_REAL_RAW
;
rfcomm_tty_driver
->
flags
=
TTY_DRIVER_REAL_RAW
|
TTY_DRIVER_NO_DEVFS
;
rfcomm_tty_driver
->
init_termios
=
tty_std_termios
;
rfcomm_tty_driver
->
init_termios
.
c_cflag
=
B9600
|
CS8
|
CREAD
|
HUPCL
|
CLOCAL
;
tty_set_operations
(
rfcomm_tty_driver
,
&
rfcomm_ops
);
...
...
net/ipv4/igmp.c
View file @
31893c62
...
...
@@ -105,7 +105,8 @@
#include <linux/seq_file.h>
#endif
#define IP_MAX_MEMBERSHIPS 20
#define IP_MAX_MEMBERSHIPS 20
#define IP_MAX_MSF 10
#ifdef CONFIG_IP_MULTICAST
/* Parameter names and values are taken from igmp-v2-06 draft */
...
...
@@ -1325,6 +1326,7 @@ static struct in_device * ip_mc_find_dev(struct ip_mreqn *imr)
* Join a socket to a group
*/
int
sysctl_igmp_max_memberships
=
IP_MAX_MEMBERSHIPS
;
int
sysctl_igmp_max_msf
=
IP_MAX_MSF
;
static
int
ip_mc_del1_src
(
struct
ip_mc_list
*
pmc
,
int
sfmode
,
...
...
@@ -1790,6 +1792,10 @@ int ip_mc_source(int add, int omode, struct sock *sk, struct
}
/* else, add a new source to the filter */
if
(
psl
&&
psl
->
sl_count
>=
sysctl_igmp_max_msf
)
{
err
=
-
ENOBUFS
;
goto
done
;
}
if
(
!
psl
||
psl
->
sl_count
==
psl
->
sl_max
)
{
struct
ip_sf_socklist
*
newpsl
;
int
count
=
IP_SFBLOCK
;
...
...
net/ipv4/ip_sockglue.c
View file @
31893c62
...
...
@@ -618,6 +618,7 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
case
IP_MSFILTER
:
{
extern
int
sysctl_optmem_max
;
extern
int
sysctl_igmp_max_msf
;
struct
ip_msfilter
*
msf
;
if
(
optlen
<
IP_MSFILTER_SIZE
(
0
))
...
...
@@ -636,9 +637,14 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
kfree
(
msf
);
break
;
}
if
(
IP_MSFILTER_SIZE
(
msf
->
imsf_numsrc
)
<
IP_MSFILTER_SIZE
(
0
)
||
IP_MSFILTER_SIZE
(
msf
->
imsf_numsrc
)
>
optlen
)
{
/* numsrc >= (1G-4) overflow in 32 bits */
if
(
msf
->
imsf_numsrc
>=
0x3ffffffcU
||
msf
->
imsf_numsrc
>
sysctl_igmp_max_msf
)
{
kfree
(
msf
);
err
=
-
ENOBUFS
;
break
;
}
if
(
IP_MSFILTER_SIZE
(
msf
->
imsf_numsrc
)
>
optlen
)
{
kfree
(
msf
);
err
=
-
EINVAL
;
break
;
...
...
net/ipv4/sysctl_net_ipv4.c
View file @
31893c62
...
...
@@ -39,6 +39,7 @@ extern int sysctl_icmp_ratemask;
/* From igmp.c */
extern
int
sysctl_igmp_max_memberships
;
extern
int
sysctl_igmp_max_msf
;
/* From inetpeer.c */
extern
int
inet_peer_threshold
;
...
...
@@ -411,6 +412,14 @@ ctl_table ipv4_table[] = {
},
#endif
{
.
ctl_name
=
NET_IPV4_IGMP_MAX_MSF
,
.
procname
=
"igmp_max_msf"
,
.
data
=
&
sysctl_igmp_max_msf
,
.
maxlen
=
sizeof
(
int
),
.
mode
=
0644
,
.
proc_handler
=
&
proc_dointvec
},
{
.
ctl_name
=
NET_IPV4_INET_PEER_THRESHOLD
,
.
procname
=
"inet_peer_threshold"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment