@@ -132,38 +132,32 @@ int usb_wwan_tiocmset(struct tty_struct *tty,
132
132
}
133
133
EXPORT_SYMBOL (usb_wwan_tiocmset );
134
134
135
- static int get_serial_info (struct usb_serial_port * port ,
136
- struct serial_struct __user * retinfo )
135
+ int usb_wwan_get_serial_info (struct tty_struct * tty ,
136
+ struct serial_struct * ss )
137
137
{
138
- struct serial_struct tmp ;
139
-
140
- memset (& tmp , 0 , sizeof (tmp ));
141
- tmp .line = port -> minor ;
142
- tmp .port = port -> port_number ;
143
- tmp .baud_base = tty_get_baud_rate (port -> port .tty );
144
- tmp .close_delay = port -> port .close_delay / 10 ;
145
- tmp .closing_wait = port -> port .closing_wait == ASYNC_CLOSING_WAIT_NONE ?
138
+ struct usb_serial_port * port = tty -> driver_data ;
139
+
140
+ ss -> line = port -> minor ;
141
+ ss -> port = port -> port_number ;
142
+ ss -> baud_base = tty_get_baud_rate (port -> port .tty );
143
+ ss -> close_delay = port -> port .close_delay / 10 ;
144
+ ss -> closing_wait = port -> port .closing_wait == ASYNC_CLOSING_WAIT_NONE ?
146
145
ASYNC_CLOSING_WAIT_NONE :
147
146
port -> port .closing_wait / 10 ;
148
-
149
- if (copy_to_user (retinfo , & tmp , sizeof (* retinfo )))
150
- return - EFAULT ;
151
147
return 0 ;
152
148
}
149
+ EXPORT_SYMBOL (usb_wwan_get_serial_info );
153
150
154
- static int set_serial_info (struct usb_serial_port * port ,
155
- struct serial_struct __user * newinfo )
151
+ int usb_wwan_set_serial_info (struct tty_struct * tty ,
152
+ struct serial_struct * ss )
156
153
{
157
- struct serial_struct new_serial ;
154
+ struct usb_serial_port * port = tty -> driver_data ;
158
155
unsigned int closing_wait , close_delay ;
159
156
int retval = 0 ;
160
157
161
- if (copy_from_user (& new_serial , newinfo , sizeof (new_serial )))
162
- return - EFAULT ;
163
-
164
- close_delay = new_serial .close_delay * 10 ;
165
- closing_wait = new_serial .closing_wait == ASYNC_CLOSING_WAIT_NONE ?
166
- ASYNC_CLOSING_WAIT_NONE : new_serial .closing_wait * 10 ;
158
+ close_delay = ss -> close_delay * 10 ;
159
+ closing_wait = ss -> closing_wait == ASYNC_CLOSING_WAIT_NONE ?
160
+ ASYNC_CLOSING_WAIT_NONE : ss -> closing_wait * 10 ;
167
161
168
162
mutex_lock (& port -> port .mutex );
169
163
@@ -181,30 +175,7 @@ static int set_serial_info(struct usb_serial_port *port,
181
175
mutex_unlock (& port -> port .mutex );
182
176
return retval ;
183
177
}
184
-
185
- int usb_wwan_ioctl (struct tty_struct * tty ,
186
- unsigned int cmd , unsigned long arg )
187
- {
188
- struct usb_serial_port * port = tty -> driver_data ;
189
-
190
- dev_dbg (& port -> dev , "%s cmd 0x%04x\n" , __func__ , cmd );
191
-
192
- switch (cmd ) {
193
- case TIOCGSERIAL :
194
- return get_serial_info (port ,
195
- (struct serial_struct __user * ) arg );
196
- case TIOCSSERIAL :
197
- return set_serial_info (port ,
198
- (struct serial_struct __user * ) arg );
199
- default :
200
- break ;
201
- }
202
-
203
- dev_dbg (& port -> dev , "%s arg not supported\n" , __func__ );
204
-
205
- return - ENOIOCTLCMD ;
206
- }
207
- EXPORT_SYMBOL (usb_wwan_ioctl );
178
+ EXPORT_SYMBOL (usb_wwan_set_serial_info );
208
179
209
180
int usb_wwan_write (struct tty_struct * tty , struct usb_serial_port * port ,
210
181
const unsigned char * buf , int count )
0 commit comments