]> Git Repo - linux.git/commitdiff
Merge tag 'char-misc-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <[email protected]>
Wed, 13 Jan 2016 18:23:36 +0000 (10:23 -0800)
committerLinus Torvalds <[email protected]>
Wed, 13 Jan 2016 18:23:36 +0000 (10:23 -0800)
Pull char/misc updates from Greg KH:
 "Here's the big set of char/misc patches for 4.5-rc1.

  Nothing major, lots of different driver subsystem updates, full
  details in the shortlog.  All of these have been in linux-next for a
  while"

* tag 'char-misc-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (71 commits)
  mei: fix fasync return value on error
  parport: avoid assignment in if
  parport: remove unneeded space
  parport: change style of NULL comparison
  parport: remove unnecessary out of memory message
  parport: remove braces
  parport: quoted strings should not be split
  parport: code indent should use tabs
  parport: fix coding style
  parport: EXPORT_SYMBOL should follow function
  parport: remove trailing white space
  parport: fix a trivial typo
  coresight: Fix a typo in Kconfig
  coresight: checking for NULL string in coresight_name_match()
  Drivers: hv: vmbus: Treat Fibre Channel devices as performance critical
  Drivers: hv: utils: fix hvt_op_poll() return value on transport destroy
  Drivers: hv: vmbus: fix the building warning with hyperv-keyboard
  extcon: add Maxim MAX3355 driver
  Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek()
  Drivers: hv: remove code duplication between vmbus_recvpacket()/vmbus_recvpacket_raw()
  ...

1  2 
drivers/hv/hyperv_vmbus.h

index 678663e2085fb15ab037f63c2760cc44e088085d,0411b7bfb3c0b8c7452ebb4bd57ec939d8185b42..4ebc796b4f33b83a5e6918c227d8c1bd437ed80e
  #include <linux/atomic.h>
  #include <linux/hyperv.h>
  
+ /*
+  * Timeout for services such as KVP and fcopy.
+  */
+ #define HV_UTIL_TIMEOUT 30
  /*
   * The below CPUID leaves are present if VersionAndFeatures.HypervisorPresent
   * is set by CPUID(HVCPUID_VERSION_FEATURES).
@@@ -63,6 -68,10 +68,6 @@@ enum hv_cpuid_function 
  /* Define version of the synthetic interrupt controller. */
  #define HV_SYNIC_VERSION              (1)
  
 -/* Define synthetic interrupt controller message constants. */
 -#define HV_MESSAGE_SIZE                       (256)
 -#define HV_MESSAGE_PAYLOAD_BYTE_COUNT (240)
 -#define HV_MESSAGE_PAYLOAD_QWORD_COUNT        (30)
  #define HV_ANY_VP                     (0xFFFFFFFF)
  
  /* Define synthetic interrupt controller flag constants. */
  #define HV_EVENT_FLAGS_BYTE_COUNT     (256)
  #define HV_EVENT_FLAGS_DWORD_COUNT    (256 / sizeof(u32))
  
 -/* Define hypervisor message types. */
 -enum hv_message_type {
 -      HVMSG_NONE                      = 0x00000000,
 -
 -      /* Memory access messages. */
 -      HVMSG_UNMAPPED_GPA              = 0x80000000,
 -      HVMSG_GPA_INTERCEPT             = 0x80000001,
 -
 -      /* Timer notification messages. */
 -      HVMSG_TIMER_EXPIRED                     = 0x80000010,
 -
 -      /* Error messages. */
 -      HVMSG_INVALID_VP_REGISTER_VALUE = 0x80000020,
 -      HVMSG_UNRECOVERABLE_EXCEPTION   = 0x80000021,
 -      HVMSG_UNSUPPORTED_FEATURE               = 0x80000022,
 -
 -      /* Trace buffer complete messages. */
 -      HVMSG_EVENTLOG_BUFFERCOMPLETE   = 0x80000040,
 -
 -      /* Platform-specific processor intercept messages. */
 -      HVMSG_X64_IOPORT_INTERCEPT              = 0x80010000,
 -      HVMSG_X64_MSR_INTERCEPT         = 0x80010001,
 -      HVMSG_X64_CPUID_INTERCEPT               = 0x80010002,
 -      HVMSG_X64_EXCEPTION_INTERCEPT   = 0x80010003,
 -      HVMSG_X64_APIC_EOI                      = 0x80010004,
 -      HVMSG_X64_LEGACY_FP_ERROR               = 0x80010005
 -};
 -
 -#define HV_SYNIC_STIMER_COUNT         (4)
 -
  /* Define invalid partition identifier. */
  #define HV_PARTITION_ID_INVALID               ((u64)0x0)
  
 -/* Define port identifier type. */
 -union hv_port_id {
 -      u32 asu32;
 -      struct {
 -              u32 id:24;
 -              u32 reserved:8;
 -      } u ;
 -};
 -
  /* Define port type. */
  enum hv_port_type {
        HVPORT_MSG      = 1,
@@@ -120,6 -168,27 +125,6 @@@ struct hv_connection_info 
        };
  };
  
 -/* Define synthetic interrupt controller message flags. */
 -union hv_message_flags {
 -      u8 asu8;
 -      struct {
 -              u8 msg_pending:1;
 -              u8 reserved:7;
 -      };
 -};
 -
 -/* Define synthetic interrupt controller message header. */
 -struct hv_message_header {
 -      enum hv_message_type message_type;
 -      u8 payload_size;
 -      union hv_message_flags message_flags;
 -      u8 reserved[2];
 -      union {
 -              u64 sender;
 -              union hv_port_id port;
 -      };
 -};
 -
  /*
   * Timer configuration register.
   */
@@@ -136,9 -205,31 +141,9 @@@ union hv_timer_config 
        };
  };
  
 -
 -/* Define timer message payload structure. */
 -struct hv_timer_message_payload {
 -      u32 timer_index;
 -      u32 reserved;
 -      u64 expiration_time;    /* When the timer expired */
 -      u64 delivery_time;      /* When the message was delivered */
 -};
 -
 -/* Define synthetic interrupt controller message format. */
 -struct hv_message {
 -      struct hv_message_header header;
 -      union {
 -              u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
 -      } u ;
 -};
 -
  /* Define the number of message buffers associated with each port. */
  #define HV_PORT_MESSAGE_BUFFER_COUNT  (16)
  
 -/* Define the synthetic interrupt message page layout. */
 -struct hv_message_page {
 -      struct hv_message sint_message[HV_SYNIC_SINT_COUNT];
 -};
 -
  /* Define the synthetic interrupt controller event flags format. */
  union hv_synic_event_flags {
        u8 flags8[HV_EVENT_FLAGS_BYTE_COUNT];
@@@ -261,7 -352,7 +266,7 @@@ enum hv_call_code 
  struct hv_input_post_message {
        union hv_connection_id connectionid;
        u32 reserved;
 -      enum hv_message_type message_type;
 +      u32 message_type;
        u32 payload_size;
        u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
  };
@@@ -496,7 -587,7 +501,7 @@@ extern int hv_post_message(union hv_con
                         enum hv_message_type message_type,
                         void *payload, size_t payload_size);
  
- extern u16 hv_signal_event(void *con_id);
+ extern int hv_signal_event(void *con_id);
  
  extern int hv_synic_alloc(void);
  
@@@ -528,14 -619,9 +533,9 @@@ int hv_ringbuffer_write(struct hv_ring_
                    struct kvec *kv_list,
                    u32 kv_count, bool *signal);
  
- int hv_ringbuffer_peek(struct hv_ring_buffer_info *ring_info, void *buffer,
-                  u32 buflen);
- int hv_ringbuffer_read(struct hv_ring_buffer_info *ring_info,
-                  void *buffer,
-                  u32 buflen,
-                  u32 offset, bool *signal);
+ int hv_ringbuffer_read(struct hv_ring_buffer_info *inring_info,
+                      void *buffer, u32 buflen, u32 *buffer_actual_len,
+                      u64 *requestid, bool *signal, bool raw);
  
  void hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info,
                            struct hv_ring_buffer_debug_info *debug_info);
@@@ -592,7 -678,7 +592,7 @@@ struct vmbus_connection 
  
        /* List of channels */
        struct list_head chn_list;
-       spinlock_t channel_lock;
+       struct mutex channel_mutex;
  
        struct workqueue_struct *work_queue;
  };
@@@ -673,11 -759,7 +673,7 @@@ static inline void hv_poll_channel(stru
        if (!channel)
                return;
  
-       if (channel->target_cpu != smp_processor_id())
-               smp_call_function_single(channel->target_cpu,
-                                        cb, channel, true);
-       else
-               cb(channel);
+       smp_call_function_single(channel->target_cpu, cb, channel, true);
  }
  
  enum hvutil_device_state {
This page took 0.070737 seconds and 4 git commands to generate.