diff options
Diffstat (limited to 'include/linux')
29 files changed, 76 insertions, 118 deletions
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 2046b5b8af48..f1da7e4549a0 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h @@ -101,6 +101,7 @@ extern int prepare_binprm(struct linux_binprm *); extern int __must_check remove_arg_zero(struct linux_binprm *); extern int search_binary_handler(struct linux_binprm *,struct pt_regs *); extern int flush_old_exec(struct linux_binprm * bprm); +extern void setup_new_exec(struct linux_binprm * bprm); extern int suid_dumpable; #define SUID_DUMP_DISABLE 0 /* No setuid dumping */ diff --git a/include/linux/connector.h b/include/linux/connector.h index b68d27850d51..ecb61c40b344 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h @@ -24,9 +24,6 @@ #include <linux/types.h> -#define CN_IDX_CONNECTOR 0xffffffff -#define CN_VAL_CONNECTOR 0xffffffff - /* * Process Events connector unique ids -- used for message routing */ @@ -73,30 +70,6 @@ struct cn_msg { __u8 data[0]; }; -/* - * Notify structure - requests notification about - * registering/unregistering idx/val in range [first, first+range]. - */ -struct cn_notify_req { - __u32 first; - __u32 range; -}; - -/* - * Main notification control message - * *_notify_num - number of appropriate cn_notify_req structures after - * this struct. - * group - notification receiver's idx. - * len - total length of the attached data. - */ -struct cn_ctl_msg { - __u32 idx_notify_num; - __u32 val_notify_num; - __u32 group; - __u32 len; - __u8 data[0]; -}; - #ifdef __KERNEL__ #include <asm/atomic.h> @@ -132,11 +105,8 @@ struct cn_callback_id { }; struct cn_callback_data { - void (*destruct_data) (void *); - void *ddata; - - void *callback_priv; - void (*callback) (void *); + struct sk_buff *skb; + void (*callback) (struct cn_msg *, struct netlink_skb_parms *); void *free; }; @@ -152,11 +122,6 @@ struct cn_callback_entry { u32 seq, group; }; -struct cn_ctl_entry { - struct list_head notify_entry; - struct cn_ctl_msg *msg; -}; - struct cn_dev { struct cb_id id; @@ -167,11 +132,11 @@ struct cn_dev { struct cn_queue_dev *cbdev; }; -int cn_add_callback(struct cb_id *, char *, void (*callback) (void *)); +int cn_add_callback(struct cb_id *, char *, void (*callback) (struct cn_msg *, struct netlink_skb_parms *)); void cn_del_callback(struct cb_id *); int cn_netlink_send(struct cn_msg *, u32, gfp_t); -int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, void (*callback)(void *)); +int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, void (*callback)(struct cn_msg *, struct netlink_skb_parms *)); void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id); int queue_cn_work(struct cn_callback_entry *cbq, struct work_struct *work); diff --git a/include/linux/enclosure.h b/include/linux/enclosure.h index 4332442b1b57..cceb406d194c 100644 --- a/include/linux/enclosure.h +++ b/include/linux/enclosure.h @@ -42,6 +42,8 @@ enum enclosure_status { ENCLOSURE_STATUS_NOT_INSTALLED, ENCLOSURE_STATUS_UNKNOWN, ENCLOSURE_STATUS_UNAVAILABLE, + /* last element for counting purposes */ + ENCLOSURE_STATUS_MAX }; /* SFF-8485 activity light settings */ diff --git a/include/linux/fec.h b/include/linux/fec.h index 39ba482298e1..5ebd1f4742de 100644 --- a/include/linux/fec.h +++ b/include/linux/fec.h @@ -13,13 +13,10 @@ #ifndef __LINUX_FEC_H__ #define __LINUX_FEC_H__ -#include <linux/etherdevice.h> #include <linux/phy.h> struct fec_platform_data { phy_interface_t phy; - unsigned int phy_mask; - unsigned char mac[ETH_ALEN]; int (*init)(void); int (*uninit)(void); struct regulator *vddio_reg; diff --git a/include/linux/fs.h b/include/linux/fs.h index 73e9b643e455..e2eeaa5cfe94 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2296,6 +2296,7 @@ extern const struct inode_operations page_symlink_inode_operations; extern int generic_readlink(struct dentry *, char __user *, int); extern void generic_fillattr(struct inode *, struct kstat *); extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); +void __inode_add_bytes(struct inode *inode, loff_t bytes); void inode_add_bytes(struct inode *inode, loff_t bytes); void inode_sub_bytes(struct inode *inode, loff_t bytes); loff_t inode_get_bytes(struct inode *inode); diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 8ee3006f4678..e018b0d0dfc6 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h @@ -93,7 +93,6 @@ struct fsl_usb2_platform_data { void (*platform_suspend)(struct fsl_usb2_platform_data *); void (*platform_resume)(struct fsl_usb2_platform_data *); void (*wake_up_enable)(struct fsl_usb2_platform_data *pdata, bool on); - void (*phy_lowpower_suspend)(bool); void (*platform_driver_vbus)(bool on); /* platform special function for vbus shutdown/open */ unsigned big_endian_mmio : 1; unsigned big_endian_desc : 1; diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index dc3b1328aaeb..708085aeb692 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -241,7 +241,7 @@ extern void ftrace_enable_daemon(void); # define ftrace_set_filter(buf, len, reset) do { } while (0) # define ftrace_disable_daemon() do { } while (0) # define ftrace_enable_daemon() do { } while (0) -static inline void ftrace_release(void *start, unsigned long size) { } +static inline void ftrace_release_mod(struct module *mod) {} static inline int register_ftrace_command(struct ftrace_func_command *cmd) { return -EINVAL; diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 4759917adc71..5c66f2e64088 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -448,7 +448,7 @@ extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf, static inline void timer_stats_account_hrtimer(struct hrtimer *timer) { - if (likely(!timer->start_site)) + if (likely(!timer_stats_active)) return; timer_stats_update_stats(timer, timer->start_pid, timer->start_site, timer->function, timer->start_comm, 0); @@ -459,8 +459,6 @@ extern void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer, static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer) { - if (likely(!timer_stats_active)) - return; __timer_stats_hrtimer_set_start_info(timer, __builtin_return_address(0)); } diff --git a/include/linux/ipu.h b/include/linux/ipu.h index 54a889b57f73..424f0212c69e 100644 --- a/include/linux/ipu.h +++ b/include/linux/ipu.h @@ -956,8 +956,6 @@ int32_t ipu_init_sync_panel(int disp, int32_t ipu_disp_set_window_pos(ipu_channel_t channel, int16_t x_pos, int16_t y_pos); -int32_t ipu_disp_get_window_pos(ipu_channel_t channel, int16_t *x_pos, - int16_t *y_pos); int32_t ipu_disp_set_global_alpha(ipu_channel_t channel, bool enable, uint8_t alpha); int32_t ipu_disp_set_color_key(ipu_channel_t channel, bool enable, diff --git a/include/linux/isdn_ppp.h b/include/linux/isdn_ppp.h index 4c218ee7587a..8687a7dc0632 100644 --- a/include/linux/isdn_ppp.h +++ b/include/linux/isdn_ppp.h @@ -157,7 +157,7 @@ typedef struct { typedef struct { int mp_mrru; /* unused */ - struct sk_buff_head frags; /* fragments sl list */ + struct sk_buff * frags; /* fragments sl list -- use skb->next */ long frames; /* number of frames in the frame list */ unsigned int seq; /* last processed packet seq #: any packets * with smaller seq # will be dropped diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 3db5d8d37485..bd3dc67c589f 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h @@ -104,6 +104,11 @@ struct kvm_run { __u64 cr8; __u64 apic_base; +#ifdef __KVM_S390 + /* the processor status word for s390 */ + __u64 psw_mask; /* psw upper half */ + __u64 psw_addr; /* psw lower half */ +#endif union { /* KVM_EXIT_UNKNOWN */ struct { @@ -155,8 +160,6 @@ struct kvm_run { /* KVM_EXIT_S390_SIEIC */ struct { __u8 icptcode; - __u64 mask; /* psw upper half */ - __u64 addr; /* psw lower half */ __u16 ipa; __u32 ipb; } s390_sieic; @@ -453,6 +456,7 @@ struct kvm_irq_routing { }; #endif +#define KVM_CAP_S390_PSW 42 /* * ioctls for VM fds diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h index 3ddce03766ca..d73109243fda 100644 --- a/include/linux/kvm_para.h +++ b/include/linux/kvm_para.h @@ -13,6 +13,7 @@ #define KVM_ENOSYS 1000 #define KVM_EFAULT EFAULT #define KVM_E2BIG E2BIG +#define KVM_EPERM EPERM #define KVM_HC_VAPIC_POLL_IRQ 1 #define KVM_HC_MMU_OP 2 diff --git a/include/linux/mm.h b/include/linux/mm.h index 291bc1c9d0ed..ef3603991d6f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -25,6 +25,7 @@ extern unsigned long max_mapnr; #endif extern unsigned long num_physpages; +extern unsigned long totalram_pages; extern void * high_memory; extern int page_cluster; @@ -710,7 +711,6 @@ static inline int shmem_lock(struct file *file, int lock, } #endif struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags); -void shmem_set_file(struct vm_area_struct *vma, struct file *file); int shmem_zero_setup(struct vm_area_struct *); diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 9167c389779e..9d6c28cee241 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -46,10 +46,6 @@ struct mmc_ext_csd { unsigned int sectors; unsigned int card_type; #define MMC_DDR_MODE_MASK (0x3<<2) - unsigned char boot_info; - unsigned char boot_size_mult; - unsigned char boot_config; - unsigned char boot_bus_width; }; struct sd_scr { diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 37a51b3122df..cf97645775a0 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -250,16 +250,12 @@ struct _mmc_csd { * EXT_CSD fields */ -#define EXT_CSD_BOOT_BUS_WIDTH 177 /* R/W */ -#define EXT_CSD_BOOT_CONFIG 179 /* R/W */ #define EXT_CSD_BUS_WIDTH 183 /* R/W */ #define EXT_CSD_HS_TIMING 185 /* R/W */ #define EXT_CSD_CARD_TYPE 196 /* RO */ #define EXT_CSD_REV 192 /* RO */ #define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */ #define EXT_CSD_S_A_TIMEOUT 217 -#define EXT_CSD_BOOT_SIZE_MULT 226 /* RO, 1 bytes */ -#define EXT_CSD_BOOT_INFO 228 /* RO, 1 bytes */ /* * EXT_CSD field definitions @@ -279,29 +275,6 @@ struct _mmc_csd { #define EXT_CSD_BUS_WIDTH_4_DDR 5 /* Card is in 4 bit ddr mode */ #define EXT_CSD_BUS_WIDTH_8_DDR 6 /* Card is in 8 bit ddr mode */ -#define EXT_CSD_BOOT_BUS_WIDTH_MASK (0x1F) -#define EXT_CSD_BOOT_BUS_WIDTH_MODE_MASK (0x3 << 3) -#define EXT_CSD_BOOT_BUS_WIDTH_MODE_SDR_NORMAL (0x0) -#define EXT_CSD_BOOT_BUS_WIDTH_MODE_SDR_HIGH (0x1) -#define EXT_CSD_BOOT_BUS_WIDTH_MODE_DDR (0x2) -#define EXT_CSD_BOOT_BUS_WIDTH_RST_WIDTH (1 << 2) -#define EXT_CSD_BOOT_BUS_WIDTH_WIDTH_MASK (0x3) -#define EXT_CSD_BOOT_BUS_WIDTH_1_SDR_4_DDR (0x0) -#define EXT_CSD_BOOT_BUS_WIDTH_4_SDR_4_DDR (0x1) -#define EXT_CSD_BOOT_BUS_WIDTH_8_SDR_8_DDR (0x2) - -#define EXT_CSD_BOOT_ACK_ENABLE (0x1 << 6) -#define EXT_CSD_BOOT_PARTITION_ENABLE_MASK (0x7 << 3) -#define EXT_CSD_BOOT_PARTITION_DISABLE (0x0) -#define EXT_CSD_BOOT_PARTITION_PART1 (0x1 << 3) -#define EXT_CSD_BOOT_PARTITION_PART2 (0x2 << 3) -#define EXT_CSD_BOOT_PARTITION_USER (0x7 << 3) - -#define EXT_CSD_BOOT_PARTITION_ACCESS_MASK (0x7) -#define EXT_CSD_BOOT_PARTITION_ACCESS_DISABLE (0x0) -#define EXT_CSD_BOOT_PARTITION_ACCESS_PART1 (0x1) -#define EXT_CSD_BOOT_PARTITION_ACCESS_PART2 (0x2) - /* * MMC_SWITCH access modes */ diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 6547c3cdbc4c..82a9124f7d75 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h @@ -37,7 +37,6 @@ typedef int (*param_set_fn)(const char *val, struct kernel_param *kp); typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); /* Flag bits for kernel_param.flags */ -#define KPARAM_KMALLOCED 1 #define KPARAM_ISBOOL 2 struct kernel_param { diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index 844d77ddfb34..ce38f1caa5e1 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h @@ -100,7 +100,6 @@ struct __fat_dirent { /* <linux/videotext.h> has used 0x72 ('r') in collision, so skip a few */ #define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32) #define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32) -#define VFAT_IOCTL_GET_VOLUME_ID _IOR('r', 0x12, __u32) struct fat_boot_sector { __u8 ignored[3]; /* Boot strap short or near jump */ @@ -138,17 +137,6 @@ struct fat_boot_fsinfo { __le32 reserved2[4]; }; -struct fat_boot_bsx { - __u8 drive; /* drive number */ - __u8 reserved1; - __u8 signature; /* extended boot signature */ - __u8 vol_id[4]; /* volume ID */ - __u8 vol_label[11]; /* volume label */ - __u8 type[8]; /* file system type */ -}; -#define FAT16_BSX_OFFSET 36 /* offset of fat_boot_bsx in FAT12 and FAT16 */ -#define FAT32_BSX_OFFSET 64 /* offset of fat_boot_bsx in FAT32 */ - struct msdos_dir_entry { __u8 name[MSDOS_NAME];/* name and extension */ __u8 attr; /* attribute bits */ diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h index 0f92ad04942c..27f786e5f018 100644 --- a/include/linux/mxcfb.h +++ b/include/linux/mxcfb.h @@ -78,8 +78,6 @@ struct mxcfb_rect { #define TEMP_USE_AMBIENT 0x1000 -#define FB_POWERDOWN_DISABLE -1 - struct mxcfb_alt_buffer_data { __u32 phys_addr; __u32 width; /* width of entire buffer */ @@ -120,7 +118,6 @@ struct mxcfb_waveform_modes { #define MXCFB_SET_GAMMA _IOW('F', 0x28, struct mxcfb_gamma) #define MXCFB_GET_FB_IPU_DI _IOR('F', 0x29, u_int32_t) #define MXCFB_GET_DIFMT _IOR('F', 0x2A, u_int32_t) -#define MXCFB_GET_FB_BLANK _IOR('F', 0x2B, u_int32_t) /* IOCTLs for E-ink panel updates */ #define MXCFB_SET_WAVEFORM_MODES _IOW('F', 0x2B, struct mxcfb_waveform_modes) @@ -128,8 +125,6 @@ struct mxcfb_waveform_modes { #define MXCFB_SET_AUTO_UPDATE_MODE _IOW('F', 0x2D, __u32) #define MXCFB_SEND_UPDATE _IOW('F', 0x2E, struct mxcfb_update_data) #define MXCFB_WAIT_FOR_UPDATE_COMPLETE _IOW('F', 0x2F, __u32) -#define MXCFB_SET_PWRDOWN_DELAY _IOW('F', 0x30, int32_t) -#define MXCFB_GET_PWRDOWN_DELAY _IOR('F', 0x31, int32_t) #ifdef __KERNEL__ @@ -145,6 +140,5 @@ enum { int mxcfb_set_refresh_mode(struct fb_info *fbi, int mode, struct mxcfb_rect *update_region); -int mxc_elcdif_frame_addr_setup(dma_addr_t phys); #endif /* __KERNEL__ */ #endif diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 73b46b6b904f..dc4cc294b256 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -479,6 +479,9 @@ #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361 #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 +#define PCI_SUBVENDOR_ID_IBM 0x1014 +#define PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT 0x03d4 + #define PCI_VENDOR_ID_UNISYS 0x1018 #define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C @@ -877,6 +880,7 @@ #define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 #define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 #define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 +#define PCI_DEVICE_ID_APPLE_U4_PCIE 0x005b #define PCI_DEVICE_ID_APPLE_IPID2_AGP 0x0066 #define PCI_DEVICE_ID_APPLE_IPID2_ATA 0x0069 #define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a diff --git a/include/linux/quota.h b/include/linux/quota.h index 78c48895b12a..8fd8efcb6f2e 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h @@ -313,8 +313,9 @@ struct dquot_operations { int (*claim_space) (struct inode *, qsize_t); /* release rsved quota for delayed alloc */ void (*release_rsv) (struct inode *, qsize_t); - /* get reserved quota for delayed alloc */ - qsize_t (*get_reserved_space) (struct inode *); + /* get reserved quota for delayed alloc, value returned is managed by + * quota code only */ + qsize_t *(*get_reserved_space) (struct inode *); }; /* Operations handling requests from userspace */ diff --git a/include/linux/regulator/max17135.h b/include/linux/regulator/max17135.h index 348b82b62b9f..06eaf88d2536 100644 --- a/include/linux/regulator/max17135.h +++ b/include/linux/regulator/max17135.h @@ -50,8 +50,6 @@ struct max17135_platform_data { int gpio_pmic_vcom_ctrl; int gpio_pmic_wakeup; int gpio_pmic_intr; - int pass_num; - int vcom_uV; struct regulator_init_data *regulator_init; }; diff --git a/include/linux/sched.h b/include/linux/sched.h index 5c6993ea13c5..1e174cacf3e5 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1296,7 +1296,7 @@ struct task_struct { char comm[TASK_COMM_LEN]; /* executable name excluding path - access with [gs]et_task_comm (which lock it with task_lock()) - - initialized normally by flush_old_exec */ + - initialized normally by setup_new_exec */ /* file system info */ int link_count, total_link_count; #ifdef CONFIG_SYSVIPC @@ -1665,9 +1665,6 @@ extern cputime_t task_utime(struct task_struct *p); extern cputime_t task_stime(struct task_struct *p); extern cputime_t task_gtime(struct task_struct *p); -extern int task_free_register(struct notifier_block *n); -extern int task_free_unregister(struct notifier_block *n); - /* * Per process flags */ @@ -2002,11 +1999,18 @@ static inline int is_si_special(const struct siginfo *info) return info <= SEND_SIG_FORCED; } -/* True if we are on the alternate signal stack. */ - +/* + * True if we are on the alternate signal stack. + */ static inline int on_sig_stack(unsigned long sp) { - return (sp - current->sas_ss_sp < current->sas_ss_size); +#ifdef CONFIG_STACK_GROWSUP + return sp >= current->sas_ss_sp && + sp - current->sas_ss_sp < current->sas_ss_size; +#else + return sp > current->sas_ss_sp && + sp - current->sas_ss_sp <= current->sas_ss_size; +#endif } static inline int sas_ss_flags(unsigned long sp) @@ -2481,6 +2485,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p) #define TASK_STATE_TO_CHAR_STR "RSDTtZX" +static inline unsigned long task_rlimit(const struct task_struct *tsk, + unsigned int limit) +{ + return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur); +} + +static inline unsigned long task_rlimit_max(const struct task_struct *tsk, + unsigned int limit) +{ + return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max); +} + +static inline unsigned long rlimit(unsigned int limit) +{ + return task_rlimit(current, limit); +} + +static inline unsigned long rlimit_max(unsigned int limit) +{ + return task_rlimit_max(current, limit); +} + #endif /* __KERNEL__ */ #endif diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index f2c69a2cca17..ff06fb2b159f 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1761,6 +1761,8 @@ extern int skb_copy_datagram_const_iovec(const struct sk_buff *from, int to_offset, int size); extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); +extern void skb_free_datagram_locked(struct sock *sk, + struct sk_buff *skb); extern int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags); extern __wsum skb_checksum(const struct sk_buff *skb, int offset, diff --git a/include/linux/sockios.h b/include/linux/sockios.h index f4fa1a164c74..241f179347d9 100644 --- a/include/linux/sockios.h +++ b/include/linux/sockios.h @@ -65,7 +65,6 @@ #define SIOCDIFADDR 0x8936 /* delete PA address */ #define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */ #define SIOCGIFCOUNT 0x8938 /* get number of devices */ -#define SIOCKILLADDR 0x8939 /* kill sockets with this local addr */ #define SIOCGIFBR 0x8940 /* Bridging support */ #define SIOCSIFBR 0x8941 /* Set bridging options */ diff --git a/include/linux/tty.h b/include/linux/tty.h index e8c6c9136c97..b982a1771141 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -185,7 +185,12 @@ struct tty_port; struct tty_port_operations { /* Return 1 if the carrier is raised */ int (*carrier_raised)(struct tty_port *port); + /* Control the DTR line */ void (*dtr_rts)(struct tty_port *port, int raise); + /* Called when the last close completes or a hangup finishes + IFF the port was initialized. Do not use to free resources */ + void (*shutdown)(struct tty_port *port); + void (*drop)(struct tty_port *port); }; struct tty_port { @@ -457,7 +462,8 @@ extern int tty_port_block_til_ready(struct tty_port *port, extern int tty_port_close_start(struct tty_port *port, struct tty_struct *tty, struct file *filp); extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty); - +extern void tty_port_close(struct tty_port *port, + struct tty_struct *tty, struct file *filp); extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc); extern int tty_unregister_ldisc(int disc); extern int tty_set_ldisc(struct tty_struct *tty, int ldisc); diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 8f33ae3e00f3..4f6bb3d2160e 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -100,7 +100,6 @@ struct usb_function { struct usb_descriptor_header **hs_descriptors; struct usb_configuration *config; - int hidden; /* REVISIT: bind() functions can be marked __init, which * makes trouble for section mismatch analysis. See if diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index 0ec50ba62139..20b12f3207ae 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h @@ -148,6 +148,7 @@ struct usb_serial { struct usb_interface *interface; unsigned char disconnected:1; unsigned char suspending:1; + unsigned char attached:1; unsigned char minor; unsigned char num_ports; unsigned char num_port_pointers; @@ -261,6 +262,9 @@ struct usb_serial_driver { be an attached tty at this point */ void (*dtr_rts)(struct usb_serial_port *port, int on); int (*carrier_raised)(struct usb_serial_port *port); + /* Called by the usb serial hooks to allow the user to rework the + termios state */ + void (*init_termios)(struct tty_struct *tty); /* USB events */ void (*read_int_callback)(struct urb *urb); void (*write_int_callback)(struct urb *urb); diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h index 310e18a880ff..c42eeb32058a 100644 --- a/include/linux/usb/usbnet.h +++ b/include/linux/usb/usbnet.h @@ -86,6 +86,7 @@ struct driver_info { #define FLAG_FRAMING_AX 0x0040 /* AX88772/178 packets */ #define FLAG_WLAN 0x0080 /* use "wlan%d" names */ +#define FLAG_SEND_ZLP 0x0200 /* hw requires ZLPs are sent */ /* init device ... can sleep, or cause probe() failure */ diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h index 3d15fb9bc116..a4b947e470a5 100644 --- a/include/linux/usb_usual.h +++ b/include/linux/usb_usual.h @@ -56,7 +56,9 @@ US_FLAG(SANE_SENSE, 0x00008000) \ /* Sane Sense (> 18 bytes) */ \ US_FLAG(CAPACITY_OK, 0x00010000) \ - /* READ CAPACITY response is correct */ + /* READ CAPACITY response is correct */ \ + US_FLAG(BAD_SENSE, 0x00020000) \ + /* Bad Sense (never more than 18 bytes) */ #define US_FLAG(name, value) US_FL_##name = value , enum { US_DO_ALL_FLAGS }; |